Skip to content

ObsidianIRC/tobby

Repository files navigation

tobby

npm CI AUR License

CopyQ NBYveQ

The Terminal Obby — a keyboard-driven IRC client for the terminal.

Install

# Arch Linux (no dependencies): yay -S tobby-bin # Nix (any platform): nix run github:ObsidianIRC/tobby # or install permanently: nix profile install github:ObsidianIRC/tobby # npm (requires Bun): npm install -g @mattfillipe/tobby # or run without installing (requires Bun): npx @mattfillipe/tobby # or just run without running ssh h4ks.com

Quickstart

tobby # to see more options: tobby --help

Press 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 dev

Run tests and checks:

bun run lint:fix && bun run format && bun run test

Alternatively setup pre-commit hooks.

bun run prepare

Build distributable:

bun run build # outputs dist/index.js (minified) # install locally: npm install -g .

About

The Terminal Obby — a modern IRC client for the terminal

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages