@mattfillipe/tobby
v0.2.0
Published
The Terminal Obby — a modern IRC client for the terminal
Readme
tobby
The Terminal Obby — a keyboard-driven IRC client for the terminal.
Install
# Arch Linux (no dependencies):
yay -S tobby-bin
# npm (requires Bun):
npm install -g @mattfillipe/tobby
# or run without installing (requires Bun):
npx @mattfillipe/tobby
# or just run without running
ssh h4ks.comQuickstart
tobby
# to see more options:
tobby --helpPress Ctrl+K to open the action menu. From there you can connect to a server and join channels.
Join a channel with /join #channel or open the action menu with Ctrl+K and select "Join channel". To send a message, just start typing. Press Enter to send, or Shift+Enter for a new line.
To react, reply hit Ctrl+Space to enter message selection mode, navigate to the message with arrows or j/k, and press r to reply or e to add reactions.
Keyboard shortcuts
General
| Key | Action |
|---|---|
| Ctrl+K | Open action menu (connect, join, disconnect, …) |
| Ctrl+Space / Alt+K / Alt+↑ / Shift+↑ | Enter message selection / scroll mode |
| Ctrl+G | Toggle members sidebar |
| Ctrl+L | Clear current buffer |
| Ctrl+O | Toggle multiline expand |
| Ctrl+M | Toggle multiline always-on |
| Alt+[1-9] | Switch to buffer by number |
| Alt+N / Alt+P | Next / previous buffer |
| Tab | Tab-complete nicks and commands |
Message selection mode (Ctrl+Space / Alt+K / Alt+↑ / Shift+↑)
| Key | Action |
|---|---|
| j / k | Move down / up |
| g / G | Jump to top / bottom |
| y | Yank (copy) selected message |
| r | Reply to selected message |
| R | Add emoji reaction |
| Esc | Exit selection mode |
Multiline input
| Key | Action |
|---|---|
| Enter | New line |
| Ctrl+Enter | Send message |
Features
- IRCv3: multiline messages, emoji reactions, edit/delete, replies, SASL PLAIN/EXTERNAL,
echo-message,chathistory - Three-pane layout: server tree · message buffer · user list
- Channel browser (
/list) - Nick tab completion with fuzzy emoji picker for reactions
- Typing notifications
- vim-like keybindings for navigation and message selection
- Multi-line support with collapsible messages
- Persistent config and chat history (SQLite)
Development
git clone https://github.com/ObsidianIRC/tobby
cd tobby
git submodule update --init ObsidianIRC
bun install
bun run devRun tests and checks:
bun run lint:fix && bun run format && bun run testAlternatively setup pre-commit hooks.
bun run prepareBuild distributable:
bun run build # outputs dist/index.js (minified)
# install locally:
npm install -g .