71f6699aa9462655ecd16a7e62947af1c4170f01
- Isolated window levels with 500-line scrollback per window - Window 1: status + private messages - Windows 2-9: channels - Status bar showing window, channel, nick prefix, channel modes - Automatic charset conversion (UTF-8/UTF-16 -> ISO-8859-1 on wire) - UTF-8 aware input editing with Ctrl-A/E/U/K/Y - CTCP VERSION reply with real OS info from uname() - Real name from passwd GECOS field - SIGWINCH handling for terminal resize - Ctrl-C quit confirmation (y + Enter) - /whois, /wii, /mode, /quit with default reason - Green prompt, timestamps on all messages
Mirk — Holck's IRC Client
A lightweight terminal IRC client written in C with automatic charset conversion and ircII-style window levels.
Features
- Automatic charset conversion — detects UTF-8, UTF-16 (BOM), and ISO-8859-1 input; always sends ISO-8859-1 on the wire
- Window levels — isolated windows with independent 500-line scrollback:
- Window 1: Status and private messages
- Windows 2–9: Channels
- Status bar — shows current window, channel, nick prefix (@/+), and channel modes
- UTF-8 terminal support — full multi-byte input editing
- CTCP VERSION reply with OS info
- SIGWINCH handling (terminal resize)
- Ident — works with system identd on port 113
- Real name from passwd GECOS field
Building
make
Requires only a C compiler and POSIX headers. No external dependencies.
Usage
./irc <nick> <server> [port]
Port defaults to 6667.
Key Bindings
| Key | Action |
|---|---|
| ESC+1–9 | Switch window |
| Ctrl-A | Beginning of line |
| Ctrl-E | End of line |
| Ctrl-U | Kill to beginning (yank buffer) |
| Ctrl-K | Kill to end (yank buffer) |
| Ctrl-Y | Yank (paste) |
| Ctrl-D | Quit (EOF) |
| Ctrl-C | Quit prompt (Y/N, default N) |
Commands
| Command | Description |
|---|---|
/join #channel |
Join channel (assigned to current window) |
/part [#channel] |
Part channel (defaults to current) |
/msg <target> <text> |
Send private message |
/nick <newnick> |
Change nickname |
/mode <target> <modes> |
Set mode |
/whois <nick> |
WHOIS query |
/wii <nick> |
Extended WHOIS (queries remote server) |
/quit [reason] |
Quit (default: "See you later") |
/raw <line> |
Send raw IRC command |
Typing text without a / prefix sends to the channel on the current window.
Window Workflow
- Press ESC+2 to switch to window 2
/join #channel— the channel is bound to that window- Press ESC+3,
/join #other— second channel on window 3 - ESC+1 to check status and private messages
Each window maintains its own scrollback. Switching redraws the full history.
CTCP VERSION Reply
Holck's Mirk, OS: Linux 6.x.x x86_64 :: This space available for rent
License
Public domain.
Description
Languages
C
99.6%
Makefile
0.4%