yothere is the single front door to the fleet. Run yothere --help for the built-in
summary, or yothere <command> --help for a command’s flags. This page enumerates every
subcommand and the python -m ... module entry points. Spawning threads is pure file I/O
and safe to run in-session; advancing them is the runner’s job (see Module commands).
relay command is a deprecated alias for yothere; both invoke the same CLI. Prefer yothere.Commands
| Command | What it does |
|---|---|
yothere init [--demo] |
First-run setup: create the ~/.yothere layout and detect or wire a brain. Idempotent and non-destructive. --demo drives a live zero-key demo thread to done. |
yothere spawn "<task>" |
Spawn one or more threads from a natural-language task. A reminder-shaped task is captured to Bob Reminders instead of spawning. |
yothere preset <key> [arg] |
Spawn a named preset, e.g. yothere preset news-scan "agentic commerce". |
yothere presets |
List available presets with their ETA and read-only or gated-send label. |
yothere note "<text>" |
Capture a reminder to Bob Reminders (no thread). |
yothere mode <id> <auto|planning> |
Set an existing thread’s scope. |
yothere list |
List live threads and their state in a table. |
yothere show <id> |
Show one thread: state, any open question and options, summary, and the first lines of the plan. |
yothere focus <id> |
Pin the focus thread (the one the attention router never auto-interrupts). |
yothere unfocus |
Clear the focus pin. |
yothere reply <id> [text] |
Answer a blocked thread, which flips it to resumed so the runner re-advances it. Text is positional or piped via stdin. |
yothere resume <id> |
Flip a thread to resumed (re-advance it) without adding a reply. |
yothere status |
Print a spoken-prose summary of the fleet (text). |
yothere say |
Speak the fleet summary aloud (macOS say). |
yothere listen |
Start the live voice loop: speak to spawn, get status, reply, or capture a note. |
yothere board [--open] |
Build the standalone fleet board. --open opens it in your browser. |
yothere tasks <discover|refresh|show> |
Brain-discovered task source: find where your to-dos live, refresh the cache, or show the current source. |
yothere invite create [...] |
Mint a signup invite code (hosted mode). See the flags below. |
yothere park <id> |
Pause a thread. |
yothere kill <id> [--archive] [--force] |
Remove a thread, or archive a recoverable copy. |
Key flags
spawn
yothere spawn "<task>" [--focus] [--yes] [--mode auto|planning]
--focuspins the first spawned thread as the focus thread.--yesspawns even on a low-confidence parse. Without it, a low-confidence task prints a clarifying question and stops (no surprise spawn).--mode auto|planningforces the scope. Omit it and each task is classified automatically.
preset accepts the same --focus and --mode flags:
yothere preset <key> [arg] [--focus] [--mode auto|planning].
say and listen
yothere say [--lang en|es|de] [--tts say|kokoro]
yothere listen [--ptt] [--once] [--lang en|es|de] [--tts say|kokoro] [--model small|medium] [--device <n>]
--pttis push-to-talk (press Enter to talk) instead of the hands-free wake word.--oncedoes a single capture, routes it, and exits (a smoke test).--modelpicks the speech-to-text model size.--deviceoverrides the sounddevice input index.
The voice deps are the voice extra. If they are missing, yothere listen reports what to install.
invite create
yothere invite create [--code <code>] [--uses <n>] [--budget <usd>] [--email <addr>] [--expires <iso8601>]
Mints a signup invite for hosted mode (requires RELAY_AUTH_MODE=hosted). --uses
defaults to 1, --budget sets the per-tenant daily cost cap in USD, --email binds the
code to one address, and --expires takes an ISO 8601 timestamp (e.g.
2026-12-31T00:00:00Z).
kill
yothere kill <id> [--archive] [--force]
--archivemoves the thread to a recoverable archive within the fleet tree instead of deleting it.- A hard delete is irreversible. An interactive shell prompts for confirmation; a non-interactive caller must pass
--force. Prefer--archiveto keep a copy.
Module commands
Some surfaces run as Python modules rather than yothere subcommands. These are the
operator-run engine, the service installer, and the standalone servers.
| Command | What it does |
|---|---|
python -m yothere.runner once |
Advance the fleet one tick and print the JSON summary. This is the default when no verb is given. |
python -m yothere.runner loop |
The always-on advance engine. A single-instance file lock prevents a second loop from double-spawning workers. |
python -m yothere.runner_watchdog |
A one-shot liveness check that nudges you if the runner is down or crashlooping. Run it on a schedule. |
python -m yothere.onboarding status |
Print every setup step with its live state. |
python -m yothere.onboarding apply <step> [--args <json>] [--yes] |
Apply one onboarding step. --args is JSON, --yes skips the confirmation prompt. |
python -m yothere.service install [--cockpit] [--dry-run] |
Write the service wrappers and units and load them. --cockpit also installs the cockpit service; --dry-run prints the plan and changes nothing. |
python -m yothere.service uninstall [--dry-run] |
Stop and remove the units and wrappers (keeps your env and threads). |
python -m yothere.service status |
Report the liveness of the installed units. |
python -m yothere.voicecall.pipeline serve |
Serve the voice pipeline. serve is the default verb; call places an outbound call. Needs the voice extra. |
yothere-mcp |
The MCP server console script, so any MCP client can drive a fleet. Needs the mcp extra to run. |
RELAY_* environment variable also accepts its YOTHERE_* sibling. Lead with the YOTHERE_* names; the RELAY_* forms are legacy aliases kept for back-compat.Next steps
- Quickstart: the shortest path through the most common commands.
- Configuration: environment seams and the brain registry.
- Agent onboarding: the machine-readable setup path. Machine index at /llms.txt.