docs(sillytavern): update for PR#10 surface + review fixes

- Add Prerequisites section with SillyTavern install link + Node >= 18
  requirement (was buried in Next Steps; users hit install step with no
  awareness ST needed to exist first).

- Expand restart step into a callout: restart required for server-plugin
  reload, not for client-side edits.

- Configure step now documents the three editable inputs (API key,
  Workspace ID, Your peer name) and where each saves.

- Fix 'three-cubes icon' -> 'puzzle piece icon'.

- Installer step list fleshed out: 6 steps (was 4), including config.yaml
  bootstrap and enableServerPlugins flip. Dropped the false claim that
  the plugin seeds a minimal ~/.honcho/config.json on first run.

- Global Config section rewritten: resolution order now generalized to
  apiKey / workspace / peerName (was apiKey-only); documents panel
  write-back to hosts.sillytavern.*; dropped aiPeer references (it's a
  telemetry-only field, not user-facing).

- Add a Disable / Enable global config subsection covering the opt-out
  toggle and the Inherit / Push local / Cancel diff dialog.

- Troubleshooting: two new rows (stale peer name on new chat, cancelled
  diff dialog).
This commit is contained in:
Erosika 2026-04-23 12:43:49 -04:00
parent 2ffe30bd4f
commit d8d625f470
1 changed files with 46 additions and 32 deletions

View File

@ -9,19 +9,15 @@ Give your SillyTavern characters long-term memory. Honcho remembers who you are,
The extension has two parts: a **client extension** (browser) that hooks into SillyTavern events, and a **server plugin** (Node.js) that proxies requests to the Honcho API.
## Prerequisites
- **SillyTavern running locally** (Node ≥ 18). New to it? See the [SillyTavern installation docs](https://docs.sillytavern.app/installation/).
- A **Honcho API key** from [app.honcho.dev](https://app.honcho.dev).
- An **LLM backend** (OpenAI, Claude, OpenRouter, local llama.cpp, etc.) connected via SillyTavern's plug icon in the top nav. Honcho stores memory; it doesn't generate text.
## Quick Start
<Note>
Honcho stores memory; it doesn't generate text. You'll also need an LLM backend (OpenAI, Claude, OpenRouter, local llama.cpp, etc.) connected via SillyTavern's plug icon in the top nav. Configure that separately before expecting replies in chat.
</Note>
### Step 1: Get Your Honcho API Key
1. Go to **[app.honcho.dev](https://app.honcho.dev)**
2. Sign up or log in
3. Copy your API key
### Step 2: Install
### Step 1: Install
From your **SillyTavern directory**:
@ -35,36 +31,43 @@ bash <(curl -fsSL https://raw.githubusercontent.com/plastic-labs/sillytavern-hon
irm https://raw.githubusercontent.com/plastic-labs/sillytavern-honcho/main/install.ps1 | iex
```
<Note>
Server plugins must be enabled for the Honcho plugin to load. The installer configures this automatically on fresh checkouts; if you skipped the installer or started SillyTavern before running it, manually set `enableServerPlugins: true` in `config.yaml` and restart.
</Note>
The installer:
1. Clones the extension into `public/scripts/extensions/third-party/sillytavern-honcho`
2. Symlinks the server plugin to `plugins/honcho-proxy`
3. Installs the `@honcho-ai/sdk` dependency
4. Detects your `~/.honcho/config.json` if it exists (if not, the plugin seeds a minimal one on first run)
4. Bootstraps `config.yaml` if it doesn't exist (briefly runs `npm start` to generate defaults)
5. Sets `enableServerPlugins: true` in `config.yaml`
6. Detects your `~/.honcho/config.json` if it exists
### Step 3: Restart SillyTavern
### Step 2: Restart SillyTavern
Stop and restart SillyTavern so the server plugin loads. If you have in-progress chats open, save them first — the running session ends when you stop the server.
<Note>
**Restart is required.** SillyTavern loads server plugins at startup only. After running `install.sh`, stop SillyTavern (⌃C) and start it again. You'll need to restart again whenever `plugin/index.js` changes. Client-side (browser) updates pick up on a hard refresh — no restart needed for those.
</Note>
### Step 4: Configure
### Step 3: Configure
Open **Extensions** (three-cubes icon, top-right) and expand **Honcho Memory**:
Open **Extensions** (puzzle piece icon) and expand **Honcho Memory**:
1. Check **Enable Honcho Memory**
2. Click the API key field to set your key (if auto-detected from `~/.honcho/config.json`, you can still enter one here to override)
3. Enter your workspace ID
4. Status indicator should show **Ready**
2. Click the API key field to set your key (auto-populated if present in `~/.honcho/config.json`; the UI value overrides the file)
3. Enter your **Workspace ID** (saves to `hosts.sillytavern.workspace`)
4. Enter **Your peer name** (saves to `hosts.sillytavern.peerName`; auto-synced from your SillyTavern persona on first boot)
5. Status indicator should show **Ready**
## Global Config (Multi-Tool Setups)
If you already use Honcho with other tools (Claude Code, Cursor, Hermes), the extension reads from `~/.honcho/config.json` on startup when resolvable keys are present. Resolution order: `hosts.sillytavern.apiKey` → root-level `apiKey` → fall through to the Extensions-panel key if neither resolves. The Extensions-panel key (SillyTavern's secret manager) takes priority at request time, so entering one in the UI overrides the config file without touching it.
If you already use Honcho with other tools (Claude Code, Cursor, Hermes), the extension reads from `~/.honcho/config.json` on startup.
Note that "sillytavern" appears in two namespaces here: as the default Honcho workspace ID (a Honcho concept — what you see in the dashboard; configurable) and as the `hosts.sillytavern` host key in the config file (a local convention for which tool's settings are which).
**Resolution order** for `apiKey`, `workspace`, and `peerName`:
Flat form:
1. `hosts.sillytavern.<field>` (host-specific override)
2. Root-level `<field>` (shared default across tools)
3. For `apiKey` only: fall through to the Extensions-panel key (SillyTavern's secret manager), which takes priority at request time — entering one in the UI overrides the file without touching it.
**Writes** are always scoped to `hosts.sillytavern` — the extension never mutates settings for other tools. Panel edits for Workspace ID and peer name save back to `hosts.sillytavern.workspace` and `hosts.sillytavern.peerName` respectively (debounced). Empty values clear the host override and fall through to the root value.
Flat form (single-tool setup):
```json
{
@ -75,25 +78,34 @@ Flat form:
}
```
Writes are always scoped to `hosts.sillytavern` — the extension never mutates settings for other tools.
Nested form (when multiple tools share the file):
Nested form (multiple tools sharing the file):
```jsonc
{
"apiKey": "hch-v2-...",
"peerName": "alice",
"workspace": "default",
"hosts": {
"sillytavern": {
"workspace": "sillytavern",
"aiPeer": "Assistant" // Updated automatically per character
"peerName": "alice-rp"
},
"claude_code": { "..." : "..." },
"cursor": { "..." : "..." }
"claude_code": { "...": "..." },
"cursor": { "...": "..." }
}
}
```
### Disable / Enable global config
A toggle button in the panel opts out of auto-detection entirely. When disabled, the extension skips the config fetch on load, hides the source line, and saves peer-name edits to the local SillyTavern extension settings instead of the global file. Re-enabling opens a diff-aware dialog if local and global values diverge, offering:
- **Inherit** — pull global values into this SillyTavern install
- **Push local** — overwrite the global host entry with your local values
- **Cancel** — leave both untouched
Empty local values are never pushed, so a blank field cannot accidentally delete a host key.
## How It Works
### Context Architecture
@ -180,6 +192,8 @@ The server plugin reads API credentials from SillyTavern's secrets store first,
| SDK import error | Run `cd plugins/honcho-proxy && npm install` |
| Extension loads but nothing happens | Enable the checkbox and ensure workspace ID is set |
| Plugin on disk but "Honcho Memory" drawer doesn't appear at all | Set `enableServerPlugins: true` in `config.yaml`; the panel can't show plugins the server never loaded |
| Peer name on a new chat still shows an old value | Clear the panel override field (falls back to root / ST persona) or set a new value |
| Re-enabling global config didn't populate the UI | You canceled on the diff dialog — click Enable again and choose Inherit |
---