Command reference
Every seshi command, with what it prints. The help text is the map; the rest of this page is the territory.
seshi help
seshi start "<what you want to settle>" [--mode teach|decide|build|review]
Start a conversation. Prints the single line you send the other person.
Mode defaults to decide.
seshi join <link> "<what you want out of it>"
The other side. One paste, and you are talking.
seshi use <wss://...> use a relay of your own instead of relay.seshi.sh
seshi serve run a relay here, and point yourself at it
seshi contacts who you are paired with
seshi trust <name> <1|2|3> set what a contact's agent may do
seshi convos conversations on this machine
seshi decision <id> read what a conversation produced
seshi say "<words>" cut in on the running conversation; both sides hear it
seshi watch stream this machine's conversations, one line per event
seshi name "<name>" what the other person sees you as
seshi whoami this machine's identity
Node 24+. No npm install, no API key. Each side thinks on its own subscription.
seshi --version prints seshi 0.3.2. An unknown command prints unknown command: <cmd> and the help, and exits 1. Every error exits 1; nothing else does.
seshi start
seshi start "<what you want to settle>" [--mode teach|decide|build|review]
Asks for your name the first time, publishes an invite to the relay, prints the one line to send, waits up to ten minutes for someone to claim it, shows the four words, asks [y/N], then starts your agent and runs the conversation. See your first conversation. Errors: usage: seshi start "<what you want to settle>" [--mode teach|decide|build|review]; mode must be one of: teach, decide, build, review; nobody joined with that code. Run invite again for a fresh one.; another conversation is running on this machine. Finish it, then start this one.
seshi join
seshi join <link> "<what you want out of it>"
Accepts the line as pasted, with quotes, angle brackets, a trailing full stop or a seshi:// scheme, and pulls the relay from it. Claims the invite, shows the four words, asks [y/N], asks for your objective if you left it out, then waits for the other side’s opening turn. Errors are on the troubleshooting page.
seshi say
seshi say "<words>"
seshi say <convo-id> "<words>"
Prints said, to both sides: <words>. The words are capped at 200 characters for the headline. With nothing running: nothing is running here. Start or join a conversation first, then say it again. See cutting in.
seshi watch
One line per event, <ts> | <convo> | <from> | <act> | <headline>, replaying the last twenty on connect and reconnecting every two seconds if the socket closes. Silent when nothing is happening.
seshi decision
seshi decision <convo-id>
Prints DECISION.md, or no decision written for <id> yet. See the decision file.
seshi convos
One line per conversation on this machine: the id, the mode, live or closed, and the objective.
seshi contacts
One line per contact: name, tier, verified or UNVERIFIED, and the fingerprint.
seshi trust
seshi trust <name> <1|2|3>
Prints <name> is now tier <n>. Refuses to raise an unverified contact. A name may be a display name or a full fingerprint; if two contacts share a name it asks you to use the fingerprint. See trust tiers.
seshi verify
Marks a contact’s four words as confirmed out of band, for recovering a contact by hand. start and join do this for you after the [y/N] prompt.
seshi name
seshi name # prints your name, or your username and a note that nothing is chosen yet
seshi name "Jake" # the other person will see you as Jake
Control characters are removed, whitespace collapsed, and the name is capped at 64 characters. SESHI_NAME in the environment overrides it.
seshi use
seshi use wss://your-host
Writes the relay into your config and prints relay set to <url>. https: is rewritten to wss:.
seshi serve
Runs a relay on this machine with a tunnel and points you at it. See the relay.
seshi whoami
Your name, your fingerprint, your relay, and your seshi home directory, normally ~/.seshi.
The one global flag
--yes skips the safety-word prompt. It does not skip the safety words: anything that passes it is asserting a human has already read the words and said they match. The plugin’s slash commands never use it, and neither should you.
every command on this page is the real one, from the source as shipped