Skip to main content
██╗  ██╗ ██████╗ ███╗   ██╗ ██████╗██╗  ██╗ ██████╗
██║  ██║██╔═══██╗████╗  ██║██╔════╝██║  ██║██╔═══██╗
███████║██║   ██║██╔██╗ ██║██║     ███████║██║   ██║
██╔══██║██║   ██║██║╚██╗██║██║     ██╔══██║██║   ██║
██║  ██║╚██████╔╝██║ ╚████║╚██████╗██║  ██║╚██████╔╝
╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═══╝ ╚═════╝╚═╝  ╚═╝ ╚═════╝

honcho-cli

A terminal for Honcho — memory that reasons.

Install

As a standalone tool (recommended):

uv tool install honcho-cli

Quick Start

honcho init        # confirm/set apiKey + Honcho URL in ~/.honcho/config.json
honcho start       # optional: local API + deriver + Postgres + Redis (Docker)
honcho doctor      # verify your config + connectivity
honcho             # show banner + command list

honcho init reads apiKey and environmentUrl from the top-level of ~/.honcho/config.json (the same file other Honcho tools — plugins, host integrations — share). If both are present, it confirms them with you; if either is missing (or you decline), it prompts for the missing value(s) and writes them back. Host-specific entries under hosts are left untouched.

Per-command scoping (workspace / peer / session) is handled via -w / -p / -s flags or HONCHO_* env vars — not persisted as CLI defaults.

Local stack

honcho start runs a personal Honcho server on your machine (API, deriver, Postgres, Redis) via Docker. Inference is cloud-side: set LLM_OPENAI_API_KEY, LLM_ANTHROPIC_API_KEY, or LLM_GEMINI_API_KEY (env overrides config.toml). Stack files live under ~/.honcho/profiles/local/ and are not committed to a project.

On first start, the CLI pulls ghcr.io/plastic-labs/honcho:latest and pins that digest in profile.json, then copies the image's config.toml.example to config.toml in the same directory. honcho start never overwrites config.toml after that — including when you re-pin the image. Delete the file yourself if you want a fresh copy from a new image.

Pass --setup basic or --setup advanced for an interactive wizard that writes curated LLM/feature overrides into the profile .env (env wins over config.toml). TTY only; re-runnable. basic asks provider + chat model; advanced also covers embeddings, deriver/dialectic models, dreams, and snappy deriver flush. Everything else stays in config.toml.

honcho start does not change environmentUrl in ~/.honcho/config.json (that file is shared with plugins). To talk to the local stack for one command:

HONCHO_BASE_URL=http://127.0.0.1:8000 honcho workspace list

To make local the default, run honcho init --base-url http://127.0.0.1:8000.

LLM_OPENAI_API_KEY=sk-... honcho start
honcho start --setup basic
honcho start --setup advanced
honcho status
honcho stop            # keep data
honcho stop --wipe     # also delete volumes

Commands

Onboarding

Command Description
honcho init Confirm/set apiKey + environmentUrl in ~/.honcho/config.json
honcho start Start a local Honcho stack (API, deriver, Postgres, Redis). Requires Docker and a cloud LLM key. --setup basic / --setup advanced runs an interactive config wizard (TTY only). Does not change environmentUrl.
honcho stop Stop the local stack. --wipe also deletes volumes.
honcho status Show every local stack (or --profile for one).
honcho doctor Health check: config, connectivity, workspace, peer, queue

Workspaces

Command Description
honcho workspace list List accessible workspaces
honcho workspace create <id> Create or get a workspace
honcho workspace inspect Peers, sessions, config for a workspace
honcho workspace search <query> Search messages across workspace
honcho workspace queue-status Deriver queue status (filter with --observer / --sender)
honcho workspace delete <id> Delete a workspace. Use --dry-run to preview, --cascade to also delete sessions, --yes to skip the confirm prompt

Peers

Command Description
honcho peer list List peers in the workspace
honcho peer create <id> Create or get a peer
honcho peer inspect <id> Card, session count, recent conclusions
honcho peer card <id> Raw peer card content
honcho peer chat <query> Query the dialectic about a peer (peer via -p / HONCHO_PEER_ID)
honcho peer representation <id> Formatted representation
honcho peer search <query> Search a peer's messages (peer via -p / HONCHO_PEER_ID)
honcho peer get-metadata <id> / set-metadata Metadata operations

Sessions

Command Description
honcho session list List sessions in the workspace (filter with --peer/-p)
honcho session create <id> Create or get a session (optionally --peers to add peers, --metadata)
honcho session inspect <id> Peers, message count, summaries, config
honcho session view <id> Transcript table (--last N, --page N --size M, --all, --reverse, --ids, -p)
honcho session context <id> What an agent would see
honcho session summaries <id> Short + long summaries
honcho session peers <id> / add-peers / remove-peers Peer management
honcho session search <id> <query> Search messages in a session
honcho session representation <id> Peer representation in a session
honcho session get-metadata <id> / set-metadata Metadata operations
honcho session delete <id> Destructive; requires --yes

Messages

Command Description
honcho message list List messages in a session (session via -s / HONCHO_SESSION_ID)
honcho message create <content> Create a message (requires --peer/-p, session via -s)
honcho message get <id> Get a single message (session via -s / HONCHO_SESSION_ID)

Conclusions (observations)

Command Description
honcho conclusion list List conclusions (filter with --observer / --observed)
honcho conclusion search <query> Semantic search (filter with --observer / --observed)
honcho conclusion create Create a conclusion
honcho conclusion delete <id> Delete a conclusion

Config

Command Description
honcho config Show current config (API key redacted)

Agent Usage

All commands output JSON when stdout isn't a TTY, or when --json is forced. Collection commands emit JSON arrays, and single-resource commands emit JSON objects:

honcho peer list --json
honcho workspace inspect --json | jq '.peers'
honcho doctor --json              # machine-parseable health checklist

Errors are structured:

{
  "error": {
    "code": "PEER_NOT_FOUND",
    "message": "Peer 'abc' not found in workspace 'my-ws'",
    "details": {"workspace_id": "my-ws", "peer_id": "abc"}
  }
}

Non-interactive onboarding:

# Pre-seed via flags / env vars; init still prompts for anything missing
HONCHO_API_KEY=hch-v3-xxx honcho init --base-url https://api.honcho.dev

Agent skill

honcho-cli ships with a skill that teaches agents the right commands and conventions for inspecting and debugging a Honcho deployment. Install it anywhere skills are accepted (Claude Code, other skill-aware agents):

npx skills add plastic-labs/honcho

The picker lists every skill for Honcho — select honcho-cli .

Environment Variables

All HONCHO_* env vars work at runtime — no config file required.

Precedence (highest first): flag → env var → config file → default.

Variable Flag Description
HONCHO_API_KEY --api-key (init) Admin JWT
HONCHO_BASE_URL --base-url (init) API URL
HONCHO_WORKSPACE_ID -w / --workspace Workspace scope
HONCHO_PEER_ID -p / --peer Peer scope
HONCHO_SESSION_ID -s / --session Session scope
HONCHO_JSON --json Force JSON output (1 / true)
HONCHO_PROFILE --profile (start/stop/status) Local stack profile (default: local)
LLM_OPENAI_API_KEY — Provider key for honcho start (also LLM_ANTHROPIC_API_KEY, LLM_GEMINI_API_KEY)
# Per-command flags
honcho peer card -w prod -p user

# Or export once per shell
export HONCHO_WORKSPACE_ID=prod
export HONCHO_PEER_ID=user
honcho peer card

# One-off against a different server
HONCHO_BASE_URL=http://localhost:8000 honcho workspace list

# CI/CD — env vars only, no config file needed
export HONCHO_API_KEY=hch-v3-xxx
export HONCHO_BASE_URL=https://api.honcho.dev
honcho workspace list

Configuration

The CLI shares ~/.honcho/config.json with sibling Honcho tools. It owns two top-level keys: apiKey and environmentUrl (the full Honcho API URL, e.g. https://api.honcho.dev or http://localhost:8000). Everything else at the top level — hosts, sessions, saveMessages, sessionStrategy, etc. — is left untouched.

{
  "apiKey": "hch-v3-...",
  "environmentUrl": "https://api.honcho.dev",
  "hosts": { "claude_code": { "...": "..." } }
}

workspace_id / peer_id / session_id are per-command only — never persisted to the config file.

Development

Install from source in editable mode so changes are picked up live:

git clone https://github.com/plastic-labs/honcho
cd honcho
uv tool install --force --editable --from ./honcho-cli honcho-cli

Re-run any time — changes to honcho-cli/src/ are reflected immediately without reinstalling.

License

MIT

Metadata

Release files for honcho-cli 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for honcho-cli 0.1.3
File Size Uploaded
honcho_cli-0.1.3.tar.gz 84.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for honcho-cli 0.1.3
File Interpreter ABI Platform
honcho_cli-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 147.1 kB

Release files / honcho_cli-0.1.3.tar.gz

Download URL honcho_cli-0.1.3.tar.gz
Size 84.3 kB
Tags Source
SHA-256 checksum
How to use checksums
cff5b861cca05df8d304b788c45a534e2aafdd92427e53565074bea965485312
BLAKE2b-256 checksum
How to use checksums
327423c2e6623d9217f1467ae0fb5c35db50cf84fd6e29af02c7b2b5be539400
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / honcho_cli-0.1.3-py3-none-any.whl

Download URL honcho_cli-0.1.3-py3-none-any.whl
Size 62.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2f9209a8b8948c5ec664340d85292864db8a6389e5691581c618cfc047b901a9
BLAKE2b-256 checksum
How to use checksums
60e34051a8e1ebce3310f6f389113d1377f1ab90a4d321b84c087e955b06f862
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.2.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page