buzztui

A terminal client for Buzz, the workspace where people and agents share the same rooms. Speaks the relay's protocol directly and renders it at whatever resolution your terminal can manage.

channels 3 โ”‚ # engineering ยท where the work happens โ— online 127.0.0.1:7447 # design 1 โ”‚ # releases 2 โ”‚ # engineering โ”‚ โ”‚ โ”‚ today โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”‚ alice 17:12 โ”‚ morning โ€” the relay migration is merged โ”‚ ๐ŸŽ‰ 1 ๐Ÿš€ 1 โ”‚ โ”‚ bob 17:13 โ”‚ nice. did the `h` tag enforcement land too? โ”‚ โ”‚ alice 17:14 โ”‚ yes, kind:9 without #h is rejected now โ”‚ โ”‚ โ”Œ bob: nice. did the `h` tag enforcement land too? โ”‚ bob 17:15 โ”‚ one less way to leak a message into the wrong room โ”‚ โ”‚โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚โ”‚ message โ€” / for commands, f1 for keys โ”‚ โ”‚โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ NAVIGATE i write a message r reply in thread s add reaction ctrl+k jump to a channel f1 show keybindings

install

curl -fsSL https://raw.githubusercontent.com/bscott/buzz-tui/main/install.sh | sh

Latest release is v0.1.0. Verifies the download against published checksums and installs to ~/.local/bin. Linux and macOS, x86_64 and arm64. Or build it yourself with cargo install --path ..

what it does

getting started

The first run asks for the community you are joining and the identity to join it with. A relay address can be pasted as a bare hostname; a key is either created for you or typed at a prompt that does not echo.

$ buzztui

community address: buzz.example.com
  connected to Buzz Relay
relay websocket url [wss://buzz.example.com]:
identity
  1  create a new key
  2  paste a key you already have

Most relays admit only keys their operator has added. If yours refuses you, buzztui says so plainly and offers the request to fix it, ready to paste.

keybindings

Three scopes. The composer owns every unmodified printable key, so nothing reachable while typing can make a character untypable. The leader is ctrl+b, and everything below is rebindable by action name in keys.toml.

navigation

hbrowse channels
escbrowse messages
lbrowse messages
ctrl+b 1..9jump to channel by position
g ujump to first unread
Gjump to newest
g gjump to oldest
alt+downnext channel
nnext channel
tabnext pane
Nnext unread channel
alt+shift+downnext unread channel
pgdnpage down
pguppage up
alt+upprevious channel
pprevious channel
shift+tabprevious pane
Pprevious unread channel
alt+shift+upprevious unread channel
ctrl+escroll down
ctrl+yscroll up
downselect next message
jselect next message
kselect previous message
upselect previous message
awrite a message
enterwrite a message
iwrite a message

messages

sadd reaction
ycopy message text
ddelete message
Xdiscard failed message
eedit message
oopen first link
topen thread
Qquote into composer
rreply in thread
Rresend failed message
entersend message
vview attached image

compose

alt+bback one word
alt+leftback one word
ctrl+tcomplete mention or emoji
downcursor down
leftcursor left
rightcursor right
upcursor up
ctrl+ddelete after cursor
deldelete after cursor
backspacedelete before cursor
ctrl+udelete to start of line
alt+ddelete word after
alt+backspacedelete word before
ctrl+wdelete word before
ctrl+eend of line
endend of line
alt+fforward one word
alt+rightforward one word
alt+enterinsert a line break
shift+enterinsert a line break
ctrl+nnext sent message
ctrl+vpaste from clipboard
ctrl+pprevious sent message
ctrl+astart of line
homestart of line
ctrl+zundo

channels

ctrl+b ccreate a channel
ctrl+b jjoin a channel
ctrl+b kjump to a channel
ctrl+kjump to a channel
ctrl+b xleave this channel
ctrl+b amark channel read
ctrl+b Amark everything read
ctrl+b mmute this channel
ctrl+b ppin this channel
/search messages
ctrl+b /search messages
ctrl+fsearch messages
ushow author profile
mshow members
ctrl+b dstart a direct message

view

ctrl+b zcompact message spacing
ctrl+b Tnext theme
ctrl+lredraw the screen
ctrl+b ishow or hide inline images
ctrl+b ushow or hide members
ctrl+b bshow or hide the sidebar
ctrl+b tshow or hide timestamps

application

esccancel or close
ctrl+b ycopy your public key
ctrl+b qquit buzztui
ctrl+cquit buzztui
qquit buzztui
ctrl+b Rreload configuration
:run a command
ctrl+b :run a command
?show keybindings
ctrl+b ?show keybindings
f1show keybindings

Generated from the binary at v0.1.0 โ€” this table cannot drift from what the program actually does.