448 lines
9.3 KiB
Groff
Executable File
448 lines
9.3 KiB
Groff
Executable File
.\" nirc-rs
|
|
.\" Copyright (C) 2025 Jeremy Anderson
|
|
.\" SPDX-License-Identifier: GPL-3.0-or-later
|
|
.TH NIRC 1 "2026-07-29" "nirc-rs 0.10.2" "User Commands"
|
|
.SH NAME
|
|
nirc \- multi-protocol terminal chat client (IRC, Matrix, ADC/DC++, Discord, Stout, Spacebar, Nerimity)
|
|
.SH SYNOPSIS
|
|
.B nirc
|
|
[\fIOPTIONS\fR]
|
|
.SH DESCRIPTION
|
|
.B nirc
|
|
is a terminal-based chat client built on the ratatui TUI framework. It
|
|
connects simultaneously to multiple chat protocols through a unified
|
|
interface. All configuration is stored in
|
|
.IR ~/.nirc/config.toml .
|
|
.PP
|
|
Supported protocols:
|
|
.TP
|
|
IRC
|
|
Full command set, TLS, SASL, IRCv3 capabilities (server-time, batch,
|
|
account-notify, extended-join), ISUPPORT parsing, auto-reconnect.
|
|
.TP
|
|
Matrix (0.2.0+)
|
|
E2EE via megolm, SSO/OIDC login, SAS emoji verification, message
|
|
reactions, device management, token persistence for session resume.
|
|
.TP
|
|
ADC/DC++ (0.4.0+)
|
|
Hub chat, file search, user listing, BINF self-announcement, HPAS
|
|
password authentication, keepalive, broadcast messages, C-C file
|
|
transfer.
|
|
.TP
|
|
Revolt/Stoat (0.5.0+)
|
|
REST + JSON WebSocket client with email/password or bot-token auth,
|
|
server join/leave, member listing, session token persistence.
|
|
.TP
|
|
Discord / Stout / Spacebar / Nerimity (0.6.0+)
|
|
REST + WebSocket clients for Discord-API-compatible and custom platforms.
|
|
.PP
|
|
Note: BitChat P2P support was withdrawn in 0.10.2 pending clarity on
|
|
Jack Dorsey's BitChat project and the India courts situation.
|
|
See
|
|
.I NOTICES.md
|
|
for the full rationale.
|
|
.SH OPTIONS
|
|
.TP
|
|
.B \-h, \-\-help
|
|
Print usage information.
|
|
.TP
|
|
.B \-V, \-\-version
|
|
Print version.
|
|
.TP
|
|
.B \-c, \-\-config <path>
|
|
Use an alternate configuration file.
|
|
.SH KEY BINDINGS
|
|
.TP
|
|
.B Tab
|
|
Next tab (with unread).
|
|
.TP
|
|
.B Shift+Tab
|
|
Previous tab.
|
|
.TP
|
|
.B Alt+1 \- Alt+9
|
|
Jump to tab 1\(en9.
|
|
.TP
|
|
.B Alt+N
|
|
New tab.
|
|
.TP
|
|
.B Alt+W
|
|
Close current tab.
|
|
.TP
|
|
.B Alt+L
|
|
Toggle winlist visibility.
|
|
.TP
|
|
.B F1
|
|
Debug console.
|
|
.TP
|
|
.B Ctrl+L
|
|
Clear current tab.
|
|
.TP
|
|
.B PageUp / PageDown
|
|
Scroll chat backlog.
|
|
.SH COMMANDS
|
|
Commands are entered in the input bar prefixed with a slash (\fB/\fR).
|
|
Messages without a leading slash are sent to the current tab's channel
|
|
or peer.
|
|
.SS Connection
|
|
.TP
|
|
.B /connect <protocol> <server>
|
|
Connect to a server.
|
|
.I Protocol
|
|
is one of
|
|
.BR irc ,
|
|
.BR matrix ,
|
|
.BR adc ,
|
|
.BR dc ,
|
|
.BR discord ,
|
|
.BR stout ,
|
|
.BR spacebar ,
|
|
.BR nerimity ,
|
|
.BR revolt .
|
|
(BitChat was removed in 0.10.2 — see NOTICES.md.)
|
|
.TP
|
|
.B /disconnect [protocol]
|
|
Disconnect from a specific protocol, or all.
|
|
.TP
|
|
.B /newconn [label] [protocol]
|
|
Open a new connection dialog.
|
|
.TP
|
|
.B /server [server] [port]
|
|
Switch servers on the current connection.
|
|
.TP
|
|
.B /quit [reason]
|
|
Disconnect from all protocols and exit.
|
|
.SS Messaging
|
|
.TP
|
|
.B /msg <target> <text>
|
|
Send a private message.
|
|
.TP
|
|
.B /me <action>
|
|
Send an action (/me) to the current channel.
|
|
.TP
|
|
.B /say <text>
|
|
Send text to the current window.
|
|
.TP
|
|
.B /notice <target> <text>
|
|
Send a notice.
|
|
.TP
|
|
.B /ctcp <target> [request] [message]
|
|
Send a CTCP query.
|
|
.TP
|
|
.B /raw <line>
|
|
.B /quote <line>
|
|
Send a raw IRC protocol line.
|
|
.SS Channels
|
|
.TP
|
|
.B /join <channel>
|
|
Join a channel or room.
|
|
.TP
|
|
.B /part [channel]
|
|
Leave the current (or specified) channel.
|
|
.TP
|
|
.B /names [channel]
|
|
List users in the current (or specified) channel.
|
|
.TP
|
|
.B /topic [channel] [topic]
|
|
View or set the channel topic.
|
|
.TP
|
|
.B /invite <nick> [channel]
|
|
Invite a user to a channel.
|
|
.TP
|
|
.B /list [channel]
|
|
List available channels.
|
|
.TP
|
|
.B /who [target]
|
|
List users matching a target.
|
|
.TP
|
|
.B /whois <target>
|
|
Get information about a user.
|
|
.SS Channel Operations (IRC)
|
|
.TP
|
|
.B /op <nick>
|
|
Give channel operator status.
|
|
.TP
|
|
.B /deop <nick>
|
|
Remove channel operator status.
|
|
.TP
|
|
.B /kick <nick> [reason]
|
|
Kick a user from the channel.
|
|
.TP
|
|
.B /mode <target> <mode> [params]
|
|
Set channel or user mode.
|
|
.SS Operator Commands (IRC)
|
|
.TP
|
|
.B /oper <name> <password>
|
|
Become an IRC operator.
|
|
.TP
|
|
.B /kill <nick> [reason]
|
|
Force-disconnect a user from the server.
|
|
.TP
|
|
.B /kline <mask> [duration] [reason]
|
|
Set a K-line ban.
|
|
.TP
|
|
.B /unkline <mask>
|
|
Remove a K-line ban.
|
|
.TP
|
|
.B /wallops <message>
|
|
Send a message to all operators.
|
|
.SS User Settings
|
|
.TP
|
|
.B /nick <newnick>
|
|
Change your nickname.
|
|
.TP
|
|
.B /away [message]
|
|
Set or clear away status.
|
|
.TP
|
|
.B /ignore [target]
|
|
Toggle ignore on a user (no argument lists ignored users).
|
|
.TP
|
|
.B /unblock <target>
|
|
Remove a user from the ignore list.
|
|
.SS File Transfers
|
|
.TP
|
|
.B /sendfile <target> <path>
|
|
Send a file to a user.
|
|
.TP
|
|
.B /acceptfile <transfer_id> <save_path>
|
|
Accept an incoming file transfer.
|
|
.TP
|
|
.B /listtransfers
|
|
Toggle the file transfer panel.
|
|
.SS Matrix Protocol
|
|
.TP
|
|
.B /matrix login [user_id] <password>
|
|
Password login to the current homeserver.
|
|
.TP
|
|
.B /matrix logout
|
|
Log out and clear local crypto state.
|
|
.TP
|
|
.B /matrix create <name> [alias]
|
|
Create a new room.
|
|
.TP
|
|
.B /matrix invite <user_id>
|
|
Invite a user to the current room.
|
|
.TP
|
|
.B /matrix members [room]
|
|
List room members.
|
|
.TP
|
|
.B /matrix whoami
|
|
Show current user ID and device ID.
|
|
.TP
|
|
.B /matrix devices
|
|
List our own devices.
|
|
.TP
|
|
.B /matrix verify <user_id> [device_id]
|
|
Start SAS emoji verification.
|
|
.TP
|
|
.B /matrix verify-confirm
|
|
Confirm a pending SAS verification.
|
|
.TP
|
|
.B /matrix verify-cancel
|
|
Cancel a pending SAS verification.
|
|
.TP
|
|
.B /matrix react <event_id> <emoji>
|
|
React to a message.
|
|
.TP
|
|
.B /matrix reply <event_id> <text>
|
|
Reply to a specific event.
|
|
.TP
|
|
.B /matrix backfill [count]
|
|
Backfill messages (default: 50).
|
|
.SS ADC/DC++ Protocol
|
|
.TP
|
|
.B /adc search <query>
|
|
Search the hub for files.
|
|
.TP
|
|
.B /adc users
|
|
List users on the hub.
|
|
.TP
|
|
.B /adc broadcast <message>
|
|
.B /dc bcast <message>
|
|
Send a broadcast message to the hub.
|
|
.TP
|
|
.B /adc get <sid> <path>
|
|
.B /adc dl <sid> <path>
|
|
Download a file from a user.
|
|
.SS Revolt Protocol
|
|
.TP
|
|
.B /revolt join <invite>
|
|
Join a server by invite code.
|
|
.TP
|
|
.B /revolt leave <server_id>
|
|
Leave a server.
|
|
.TP
|
|
.B /revolt members <server_id>
|
|
List server members.
|
|
.SS BitChat P2P \(em Removed in 0.10.2
|
|
BitChat support was withdrawn pending clarity on Jack Dorsey's BitChat
|
|
project and the India courts situation. See
|
|
.I NOTICES.md
|
|
for the full rationale. Existing config entries with
|
|
.B protocol = "bitchat"
|
|
are silently ignored at load time.
|
|
.SS Window Management
|
|
.TP
|
|
.B /win [N]
|
|
Switch to window N, or list all windows.
|
|
.TP
|
|
.B /win list
|
|
List all windows.
|
|
.TP
|
|
.B /win new
|
|
Create a new empty window.
|
|
.TP
|
|
.B /win close [name]
|
|
Close a window.
|
|
.TP
|
|
.B /win name <newname>
|
|
Rename the current window.
|
|
.TP
|
|
.B /jump [target]
|
|
Jump to a named window or next unread.
|
|
.TP
|
|
.B /jumpback
|
|
Return to the previous window.
|
|
.TP
|
|
.B /close [target]
|
|
Close a window or part a channel.
|
|
.TP
|
|
.B /open <name>
|
|
Open a query window.
|
|
.TP
|
|
.B /winlist [HIDDEN|VISIBLE|AUTO]
|
|
Toggle winlist visibility.
|
|
.SS Utilities
|
|
.TP
|
|
.B /set <var> [value]
|
|
Set a user variable (empty value clears it).
|
|
.TP
|
|
.B /get <var>
|
|
Print a user variable's value.
|
|
.TP
|
|
.B /alias <name> <command...>
|
|
Define an alias. Supports $1, $2, $* expansion.
|
|
.TP
|
|
.B /unalias <name>
|
|
Remove an alias.
|
|
.TP
|
|
.B /bind <key> <command...>
|
|
Bind a key to a command (e.g. ^R, M-Tab, F5).
|
|
.TP
|
|
.B /unbind <key>
|
|
Remove a key binding.
|
|
.TP
|
|
.B /eval <text...>
|
|
Expand $vars and re-evaluate as a command.
|
|
.TP
|
|
.B /source <file>
|
|
Load and execute a file of commands.
|
|
.TP
|
|
.B /echo <text>
|
|
Display text without sending it.
|
|
.TP
|
|
.B /clear
|
|
Clear the current tab.
|
|
.TP
|
|
.B /clearall
|
|
Clear all tabs.
|
|
.TP
|
|
.B /save
|
|
Save the current configuration.
|
|
.TP
|
|
.B /load [path]
|
|
Reload configuration from disk. With no argument, reloads from the
|
|
default config location
|
|
.RI ( ~/.nirc/config.toml ).
|
|
With a path argument, reloads from that file instead; the path supports
|
|
.B ~
|
|
expansion. Useful for picking up manual edits to the config file
|
|
without restarting the client, or for switching between config
|
|
profiles. On success, the theme, palette, nickname, and server
|
|
presets are re-applied live; on failure (file missing or malformed)
|
|
the current config is left untouched and an error is shown in the
|
|
Status tab. Pairs naturally with
|
|
.B /save
|
|
\(en edit the file in your editor, then
|
|
.B /load
|
|
to pick up the changes.
|
|
.TP
|
|
.B /help
|
|
Show command reference.
|
|
.SH CONFIGURATION
|
|
The configuration file is read from
|
|
.IR ~/.nirc/config.toml .
|
|
If absent, sensible defaults are used. Example:
|
|
.PP
|
|
.nf
|
|
[global]
|
|
nickname = "myname"
|
|
realname = "My Real Name"
|
|
.fi
|
|
.PP
|
|
.nf
|
|
[[servers]]
|
|
name = "libera"
|
|
protocol = "irc"
|
|
address = "irc.libera.chat"
|
|
port = 6697
|
|
tls = true
|
|
sasl = true
|
|
password = "hunter2"
|
|
.fi
|
|
.PP
|
|
.nf
|
|
[[servers]]
|
|
name = "matrix"
|
|
protocol = "matrix"
|
|
address = "https://matrix.org"
|
|
auto_join = ["#nirc:matrix.org"]
|
|
[servers.extra]
|
|
user_id = "@alice:matrix.org"
|
|
password = "hunter2"
|
|
.fi
|
|
.PP
|
|
.nf
|
|
# BitChat server entries are no longer accepted (removed in 0.10.2).
|
|
# Any [[servers]] block with protocol = "bitchat" is silently ignored.
|
|
# See NOTICES.md for the rationale.
|
|
.fi
|
|
.SH FILES
|
|
.TP
|
|
.I ~/.nirc/config.toml
|
|
User configuration.
|
|
.TP
|
|
.I ~/.nirc/matrix_tokens.json
|
|
Persisted Matrix access tokens.
|
|
.TP
|
|
.I ~/.nirc/revolt_tokens.json
|
|
Persisted Revolt session tokens.
|
|
.TP
|
|
.I ~/.nirc/vault.json
|
|
Encrypted identity vault.
|
|
.TP
|
|
.I ~/.nirc/plugins/
|
|
Dynamic plugin directory (libnirc_*.so / *.dylib).
|
|
.SH THEMES
|
|
Four built-in themes are available:
|
|
.BR default ,
|
|
.BR solarized ,
|
|
.BR gruvbox ,
|
|
.BR dracula .
|
|
Set via
|
|
.B theme
|
|
in the configuration file under
|
|
.BR [appearance] .
|
|
Custom color overrides are also supported.
|
|
.SH ENVIRONMENT
|
|
.TP
|
|
.B NIRC_CONFIG
|
|
Override the default configuration path.
|
|
.SH SEE ALSO
|
|
.BR irssi (1),
|
|
.BR weechat (1),
|
|
.BR matrix-org/matrix-nio (7)
|
|
.SH AUTHOR
|
|
Jeremy Anderson <noreply@dcos.net>
|
|
.SH BUGS
|
|
Report bugs at
|
|
.IR https://git.dcos.net/dcosnet/nirc-rs/issues . |