Files
dat-thang/docs/cable-thang.1
T
divorce b735900f2e 0.0.002
ddat interop with dat js
cable interop with cabal js
ddat's frontend = dat-thang
cable fe = cable-thang
dillo support based on cel's dillo-dat
bootstrap node
xplatform support

Signed-off-by: divo <418@cryspace.space>
2026-10-19 00:17:02 -04:00

125 lines
4.3 KiB
Groff

.TH CABLE-THANG 1 "October 2026" "cable-thang" "User Commands"
.SH NAME
cable-thang \- SDL2 Cable room chat client
.SH SYNOPSIS
.B cable-thang
.RB [ cable-address ]
.RB [ --offline ]
.br
.B cable-thang --help
.SH DESCRIPTION
.B cable-thang
is the C and SDL2 room chat client. Create a new room address in the terminal
with
.BR cable --new ,
then launch the client with the printed address as its positional argument:
.B cable-thang cable://address .
Launching
.B cable-thang
without an address opens its SDL room window; choose CREATE ROOM to create and
enter a new room, or paste a
.B cable://
or
.B cabal://
room address there and press Enter to join it.
Cesspool handles discovery and authenticated peer transport, Sleep stores
persistent local feeds, and S7 constructs room records as S-expressions. Its
fixed-cell, terminal-style layout
shows joined channels, room messages, local nickname, room address, and
authenticated peers. It joins a room by address.
.PP
Click PLAY AUDIO to start sending live room audio; the button changes to STOP
AUDIO while active. Ctrl+Shift+A toggles the same control. The first media
path captures the default microphone and sends 96 kbps AAC-LC. Incoming audio
is decoded and played in the live waveform panel. Media packets are relayed
through Cable peers without being appended to chat history or Dat archives.
See the cable-live-streaming document for the packet and storage boundary.
.PP
Click PLAY VIDEO to start sending the local OBS MPEG-TS input at
udp://127.0.0.1:5000; the button changes to STOP VIDEO while active. Ctrl+Shift+V
toggles the same control. Configure OBS Custom
FFmpeg Output with MPEG-TS, libx264, and that UDP URL. This previews the local
source and sends 160x90 JPEG frames to authenticated room peers over Cesspool.
.PP
Room creation stores the room signing key and local user's persistent key in
.IR ~/.cable/rooms/<room-key>/ .
The room address is the same 32-byte key rendered as
.BR cable:// .
Joined channels and the local nickname are stored in the room's profile.
.PP
Without a configured Cesspool rendezvous, the room broadcasts discovery on
the local network automatically and shows LAN DISCOVERY. Messages are kept
in the local chat until a peer connects. Local network broadcasts do not cross
routers. For discovery over the Internet, a reachable Cesspool rendezvous node
is required; configure one with
.B cable bootstrap add host:port
or set
.BR CABLE_BOOTSTRAP .
If the local UDP network setup itself fails, the SDL2 client still opens and
reports the error in its status line. Use
.B --offline
to deliberately skip network startup.
.PP
The production client is C and S7. Dat archives and Cable rooms both use
Cesspool, with separate topics and record formats. Cabal CLI and Hypercore
interoperability helpers remain under the test tree and are not launched or
packaged by the production client.
.SH COMMANDS
.TP
.B /join \fIname\fR
Join or create a channel and announce the channel to connected Cable peers.
.TP
.B /nick \fIname\fR
Change the local nickname and announce it to connected Cable peers.
.TP
.B /channels
Show the number of joined channels in the status line.
.TP
.B /help
Show the available commands and key bindings in the status line.
.SH KEY BINDINGS
.TP
.B Ctrl+N
Select the next joined channel.
.TP
.B Ctrl+P
Select the previous joined channel.
.TP
.B Ctrl+C
Copy the room address to the clipboard.
.TP
.B Enter
Send a message to connected room peers, or execute a slash command.
.TP
.B Escape
Close the client.
.SH ENVIRONMENT
.TP
.B DDAT_BOOTSTRAP
Comma- or semicolon-separated Cesspool rendezvous endpoints shared by Dat and
Cable clients.
.TP
.B CABLE_BOOTSTRAP
Comma- or semicolon-separated Cesspool rendezvous endpoints in host:port form.
.TP
.B DDAT_PORT
Local UDP listening port for Dat archive Cesspool discovery.
.TP
.B cable bootstrap add host:port
Persist a Cesspool rendezvous endpoint in
.IR ~/.config/dat-gpt/bootstrap .
Use cable bootstrap list to inspect the shared Dat/Cable list.
.TP
.B cable bootstrap serve host port
Run a Cesspool rendezvous node in the foreground. It must be reachable over
UDP at the advertised IPv4 address and port.
.SH EXAMPLES
.nf
cable --new
cable-thang cabal://0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
cable-thang cable://0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef --offline
.fi
.SH SEE ALSO
.BR cabal-cli (1),
.BR cable (1)