BitchatX uses a modal interface similar to vi/vim, with Normal Mode and Input Mode.
- Navigation and control mode
- Used for scrolling, quitting, and entering input mode
- Status shows:
[NORMAL] Press 'i' to enter input mode
- Text entry mode for typing messages and commands
- Used for writing messages and IRC commands
- Status shows:
[INPUT] ESC=normal, ENTER=send
i- Enter input mode (from normal mode)Esc- Exit to normal mode (from input mode)
q- Quit application (from normal mode only)Ctrl+C- Force quit (emergency exit)
↑(Up Arrow) - Scroll up through messages↓(Down Arrow) - Scroll down through messagesPage Up- Scroll up quickly (10 messages)Page Down- Scroll down quickly (10 messages)
Enter- Send message or execute command←(Left Arrow) - Move cursor left→(Right Arrow) - Move cursor rightHome- Move cursor to beginning of lineEnd- Move cursor to end of lineBackspace- Delete character before cursorDelete- Delete character after cursor
1. Start in Normal Mode
2. Press 'i' to enter Input Mode
3. Type message or command
4. Press Enter to send
5. Automatically return to Normal Mode
6. Use arrows to scroll through messages
7. Press 'q' to quit
[Normal Mode] → Press 'i' → [Input Mode] → Type "Hello!" → Press Enter → [Normal Mode]
[Normal Mode] → Press 'i' → [Input Mode] → Type "/join dr5reg" → Press Enter → [Normal Mode]
Shows current status:
BitchatX v0.1.0 | nickname | #channel | connected
Shows current mode:
[NORMAL] Press 'i' to enter input mode[INPUT] ESC=normal, ENTER=send
- Normal Mode: No visible cursor
- Input Mode: Cursor visible at current position
./bitchatx --nsec nsec1... # Login with Nostr key
./bitchatx --channel dr5reg # Auto-join channel
./bitchatx --no-logo # Skip startup animation/join dr5reg # Join channel
/nick cyberpunk # Change nickname
/list # List channels
/help # Show help
/quit # Exit app
- From Normal Mode: Press
q(fastest) - From Input Mode: Press
Escthenq - From Anywhere: Type
/quitor/exit
- Use
Page Up/Page Downfor fast scrolling - Use arrow keys for precise navigation
- Stay in Normal Mode for reading, switch to Input Mode only for typing
- Currently no command history (potential future feature)
- Use
/helpto see all available commands
- Copy: Depends on your terminal (usually Ctrl+Shift+C)
- Paste: Depends on your terminal (usually Ctrl+Shift+V)
- Text appears in input field when pasted
- Modal input (like some IRC clients)
/commandsfor actions- Channel-based messaging
- Normal/Input mode switching (like vi/vim)
ito insert,Escto exit input- Keyboard-driven navigation
- Location-based channels (geohashes)
- Ephemeral identity by default
- Modern terminal UI with real-time updates
- You're in Normal Mode
- Press
ito enter Input Mode
- You're in Input Mode
- Press
Escto enter Normal Mode
- You're in Input Mode
- Press
Escfirst, thenq - Or type
/quitand press Enter
- Normal behavior in Normal Mode
- Press
ito see cursor in Input Mode
This modal design keeps the interface clean and prevents accidental commands while allowing efficient navigation and text entry.