CLI reference.
Same agent as the desktop app. Pipe it, script it, schedule it from any shell.
Launch the default UI (Ink — React-in-the-terminal). Streaming tool cards, todo sidebar, worker panel.
kuzyPlain Rich-based REPL. Same agent, no Ink UI. Use this in scripts, over SSH, or when Bun isn't installed.
kuzy --cliRun as a stdio JSON-Lines bridge. The Electron desktop talks to Python this way; you can pipe to it from any host.
kuzy --bridge < requests.jsonl > events.jsonlExpose Kuzy as an MCP server. Any compatible MCP client can query session history, skills, and memory.
kuzy --mcp-serveInteractive first-run setup. Detects available providers, helps you store an API key.
kuzy onboardingShow which providers Kuzy can see, or pin one as active.
kuzy provider status
kuzy provider set anthropicStore provider keys in the macOS Keychain (or 0o600 file fallback). Reads from env first, Keychain second, fallback file third.
kuzy secret set OPENROUTER_API_KEY sk-or-v1-...
kuzy secret get OPENROUTER_API_KEY
kuzy secret del OPENAI_API_KEYToggle local-only telemetry (writes to ~/.henry/telemetry.jsonl). Never leaves your machine.
kuzy telemetry statusCompare your version to the latest GitHub release tag. Cached for 24h at ~/.henry/update_check_cache.json.
kuzy update-checkPrint the version from pyproject.toml.
kuzy --versionHENRY_PYTHONPython interpreter the launcher should use. Default: python3 on PATH.HENRY_UIOverride the UI: ink (default) | legacy (Textual) | cli (Rich).OPENROUTER_API_KEYDefault BYOK provider key. Kuzy hosted users can leave this unset.KUZY_API_KEYsk-kuzy-... token issued by the hosted gateway. Used in place of BYOK keys.KUZY_API_URLHosted gateway origin. Default: https://api.kuzy.ai.KUZY_OUTBOUND_MESSAGES_PER_MINRate limit for outbound messages (Slack, Telegram, WhatsApp). Default: 5.HENRY_PROGRAM_NAMEInternal — set by the `kuzy` symlink so help text reads "kuzy" not "henry".One-shot via the bridge
The bridge mode reads newline-delimited JSON requests on stdin and writes events on stdout. Pipe a single user-message request in and tail events out.
echo '{"type":"user_message","content":"review my staged diff"}' \
| kuzy --bridgeCron-style scheduling
Inside a session, ask the agent to schedule itself with the set_reminder tool. For OS-level cron, wrap the bridge:
# crontab — Monday 09:00, drop a weekly summary in the active session log
0 9 * * MON echo '{"type":"user_message","content":"post weekly digest"}' | kuzy --bridge >> ~/kuzy.logPipe stdin
git diff main...HEAD | kuzy --cli "review this diff against our team standards"