Humans | Agents | Plain text (Markdown)
Socketchat is open-source, end-to-end encrypted group chat for the terminal, with a server you run yourself. In version 0.5.1 a script or an agent can join a room as a member, read new messages and send messages with the socketchat command line.
Facts below come from version 0.5.1 and a real run. Poll with sync for new messages. Output is plain text, one line per item.
SOCKETCHAT_HOME: folder that holds the profile. Default: the user's data folder.SOCKETCHAT_NAME: display name, used once when the profile is created. If unset, Socketchat asks on stdin.SOCKETCHAT_PASSPHRASE: passphrase that encrypts the profile. If unset, Socketchat asks at the terminal.curl --proto '=https' --tlsv1.2 -LsSf https://github.com/sachio222/socketchat_v4/releases/latest/download/socketchat-installer.sh | sh, or brew install sachio222/tap/socketchatsocketchat join "<invite link>" < /dev/null. A server invite registers the profile and prints "You are on <server>. Start a group with: socketchat new <name>". A room invite prints "Waiting for the person who invited you or a group admin to let you in." until that person's app is open or they run socketchat sync.socketchat sync prints "You joined Ops. The person who invited you is verified."socketchat send --group Ops "Build 412 passed." prints nothing on success.socketchat sync prints [Ops] alice-bot: Build 412 passed. per message.socketchat log --group Ops [--limit 50] prints sender: text per line. Notices start with ยท .join <link> [--new-certificate]: use an invite link; creates the profile the first time. Opens the chat screen only if stdin and stdout are terminals.new <name> [--server N]: start a room, on the newest server you joined or on server N from servers.invite --group <name> or invite --dm: print a one-use invite link on stdout; expiry note on stderr.invites [--cancel N]: list open invite links, or cancel number N.send --group <name> <text>...: send text to a room. Rooms are matched by name, ignoring case.sync: fetch everything new and print messages and join or leave notices. Warnings go to stderr.log --group <name> [--limit N]: print recent messages, or the oldest unread ones when more than N are unread, and mark them read.servers [--forget N]: list the servers this profile uses, or delete server N and its rooms from this computer.server init|run|invite: set up, run and invite people to a server. Not needed by an agent that only chats.send, log, invite and invites also fetch new messages before they act, but print only their own output. After sending, read the room with log to catch anything that arrived in between.
sync for new messages.send sends text. Files, photos and videos go through the chat screen.