Skip to content

fix(honcho): schema key mismatch breaks self-hosted Honcho config#5184

Closed
Zyphyrs wants to merge 1 commit into
NousResearch:mainfrom
Zyphyrs:fix/honcho-config-key-mismatch
Closed

fix(honcho): schema key mismatch breaks self-hosted Honcho config#5184
Zyphyrs wants to merge 1 commit into
NousResearch:mainfrom
Zyphyrs:fix/honcho-config-key-mismatch

Conversation

@Zyphyrs

@Zyphyrs Zyphyrs commented Apr 5, 2026

Copy link
Copy Markdown

Problem

The Honcho memory plugin's get_config_schema() returns a field with key base_url (snake_case). This is what hermes memory setup writes to ~/.hermes/honcho.json.

However, HonchoClientConfig.from_global_config() in plugins/memory/honcho/client.py reads baseUrl (camelCase) from that same file:

base_url = (
    raw.get("baseUrl")    # ← camelCase
    or os.environ.get("HONCHO_BASE_URL", "").strip()
    or None
)

Impact

Users who run hermes memory setup to configure a self-hosted Honcho instance (e.g. http://localhost:8000) have their base URL silently ignored. The client falls back to the default https://api.honcho.dev cloud endpoint, then fails with Invalid API key because the user's API key was set for their self-hosted instance.

Symptoms:

  • hermes honcho status shows Connection... OK (because connectivity check passes differently)
  • But Peer data unavailable: Invalid API key appears
  • Honcho SDK internally hits https://api.honcho.dev instead of the configured URL

Fix

Align the schema key to baseUrl to match the reader. One-character change.

Verification

Tested locally against self-hosted Honcho 3.0.5 at http://localhost:8000:

Before fix (with base_url):

Peer data unavailable: Invalid API key

After fix (with baseUrl):

Connection... OK
No peer data yet (accumulates after first conversation)

Note

save_config() in the same file has the docstring "Write config to $HERMES_HOME/honcho.json (Honcho SDK native format)". The Honcho Python SDK uses camelCase (baseUrl), so the reader already uses the correct native format. The schema key was the outlier.

…ck to cloud

The Honcho plugin's get_config_schema() returned 'base_url' (snake_case)
which gets written to ~/.hermes/honcho.json. However, HonchoClientConfig.
from_global_config() reads 'baseUrl' (camelCase) from the same file.

Result: users who set a custom base URL via 'hermes memory setup' have
their URL silently ignored. The client falls back to https://api.honcho.dev,
then fails with 'Invalid API key' because the user's API key was set for
a self-hosted instance.

Fix: align schema key to 'baseUrl' to match the reader.

Verified against self-hosted Honcho 3.0.5 at http://localhost:8000
@teknium1

Copy link
Copy Markdown
Contributor

Thanks @Zyphyrs! The honcho schema key was already corrected to baseUrl on main (plugins/memory/honcho/init.py:262) in an earlier merge. Closing as redundant — appreciate the catch!

@teknium1 teknium1 closed this Apr 23, 2026
@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists comp/plugins Plugin system and bundled plugins labels Apr 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/plugins Plugin system and bundled plugins P2 Medium — degraded but workaround exists type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants