.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// . 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)