diff --git a/honcho_integration/cli.py b/honcho_integration/cli.py index bcd0f1daa..6489cd099 100644 --- a/honcho_integration/cli.py +++ b/honcho_integration/cli.py @@ -121,20 +121,20 @@ def cmd_setup(args) -> None: hermes_host.setdefault("aiPeer", HOST) - # Memory mode (host-scoped) - current_mode = hermes_host.get("memoryMode") or cfg.get("memoryMode", "hybrid") + # Memory mode + current_mode = cfg.get("memoryMode", "hybrid") print(f"\n Memory mode options:") print(" hybrid — write to both Honcho and local MEMORY.md (default)") print(" honcho — Honcho only, skip MEMORY.md writes") print(" local — MEMORY.md only, Honcho disabled") new_mode = _prompt("Memory mode", default=current_mode) if new_mode in ("hybrid", "honcho", "local"): - hermes_host["memoryMode"] = new_mode + cfg["memoryMode"] = new_mode else: - hermes_host["memoryMode"] = "hybrid" + cfg["memoryMode"] = "hybrid" - # Write frequency (host-scoped) - current_wf = str(hermes_host.get("writeFrequency") or cfg.get("writeFrequency", "async")) + # Write frequency + current_wf = str(cfg.get("writeFrequency", "async")) print(f"\n Write frequency options:") print(" async — background thread, no token cost (recommended)") print(" turn — sync write after every turn") @@ -142,22 +142,22 @@ def cmd_setup(args) -> None: print(" N — write every N turns (e.g. 5)") new_wf = _prompt("Write frequency", default=current_wf) try: - hermes_host["writeFrequency"] = int(new_wf) + cfg["writeFrequency"] = int(new_wf) except (ValueError, TypeError): - hermes_host["writeFrequency"] = new_wf if new_wf in ("async", "turn", "session") else "async" + cfg["writeFrequency"] = new_wf if new_wf in ("async", "turn", "session") else "async" - # Recall mode (host-scoped) - current_recall = hermes_host.get("recallMode") or cfg.get("recallMode", "hybrid") + # Recall mode + current_recall = cfg.get("recallMode", "hybrid") print(f"\n Recall mode options:") print(" hybrid — pre-warmed context + memory tools available (default)") print(" context — pre-warmed context only, memory tools suppressed") print(" tools — no pre-loaded context, rely on tool calls only") new_recall = _prompt("Recall mode", default=current_recall) if new_recall in ("hybrid", "context", "tools"): - hermes_host["recallMode"] = new_recall + cfg["recallMode"] = new_recall - # Session strategy (host-scoped) - current_strat = hermes_host.get("sessionStrategy") or cfg.get("sessionStrategy", "per-session") + # Session strategy + current_strat = cfg.get("sessionStrategy", "per-session") print(f"\n Session strategy options:") print(" per-session — new Honcho session each run, named by Hermes session ID (default)") print(" per-repo — one session per git repository (uses repo root name)") @@ -165,7 +165,7 @@ def cmd_setup(args) -> None: print(" global — single session across all directories") new_strat = _prompt("Session strategy", default=current_strat) if new_strat in ("per-session", "per-repo", "per-directory", "global"): - hermes_host["sessionStrategy"] = new_strat + cfg["sessionStrategy"] = new_strat cfg.setdefault("enabled", True) cfg.setdefault("saveMessages", True) diff --git a/honcho_integration/client.py b/honcho_integration/client.py index 015c44585..3f3f174d1 100644 --- a/honcho_integration/client.py +++ b/honcho_integration/client.py @@ -201,16 +201,8 @@ class HonchoClientConfig: or raw.get("recallMode") or "hybrid" ), - session_strategy=( - host_block.get("sessionStrategy") - or raw.get("sessionStrategy") - or "per-session" - ), - session_peer_prefix=( - host_block.get("sessionPeerPrefix") - if "sessionPeerPrefix" in host_block - else raw.get("sessionPeerPrefix", False) - ), + session_strategy=raw.get("sessionStrategy", "per-session"), + session_peer_prefix=raw.get("sessionPeerPrefix", False), sessions=raw.get("sessions", {}), raw=raw, ) diff --git a/website/docs/user-guide/features/honcho.md b/website/docs/user-guide/features/honcho.md index 242fffa21..b189c898c 100644 --- a/website/docs/user-guide/features/honcho.md +++ b/website/docs/user-guide/features/honcho.md @@ -37,16 +37,16 @@ The setup wizard walks through API key, peer names, workspace, memory mode, writ ### Manual Setup -#### 1. Get an API Key - -Go to [app.honcho.dev](https://app.honcho.dev) > Settings > API Keys. - -#### 2. Install the Client Library +#### 1. Install the Client Library ```bash pip install 'honcho-ai>=2.0.1' ``` +#### 2. Get an API Key + +Go to [app.honcho.dev](https://app.honcho.dev) > Settings > API Keys. + #### 3. Configure Honcho reads from `~/.honcho/config.json` (shared across all Honcho-enabled applications): @@ -54,23 +54,17 @@ Honcho reads from `~/.honcho/config.json` (shared across all Honcho-enabled appl ```json { "apiKey": "your-honcho-api-key", + "workspace": "hermes", "peerName": "your-name", - "enabled": true, - "hosts": { - "hermes": { - "workspace": "hermes", - "aiPeer": "hermes", - "memoryMode": "hybrid", - "writeFrequency": "async", - "recallMode": "hybrid", - "sessionStrategy": "per-directory" - } - } + "aiPeer": "hermes", + "memoryMode": "hybrid", + "writeFrequency": "async", + "recallMode": "hybrid", + "sessionStrategy": "per-directory", + "enabled": true } ``` -The `hosts` structure lets multiple integrations share the same config file. Each host (Hermes, Claude Code, Cursor, etc.) reads its own block while sharing global fields like `apiKey` and `peerName`. - Or set the API key as an environment variable: ```bash