Skip to content

Latest commit

 

History

History
101 lines (78 loc) · 3.7 KB

File metadata and controls

101 lines (78 loc) · 3.7 KB

SuperBased Observer — Kilo Code

Local-first token, cost and cache observability for Kilo Code — both the VS Code extension (kilocode.kilo-code) and the kilo CLI, which have shared one config surface since 7.0.33.

Kilo has no MCP package format: servers are declared in its own config file. So this is a config listing — the exact block to paste.

Requires the observer binary already on your PATH. This is wiring only — the block below declares an MCP server that runs observer; it does not download or bundle it.

npm i -g @superbased/observer     # or: pipx install superbased-observer
observer start                    # run the local daemon

Install

Merge this into ~/.config/kilo/kilo.jsonc (every project) or a project's own kilo.jsonc / .kilo/kilo.jsonc (project wins). If you already have an mcp key, add the observer entry to it rather than replacing it:

{
  "mcp": {
    "observer": {
      "type": "local",
      "command": [
        "observer",
        "serve"
      ],
      "enabled": true
    }
  }
}

In the extension you can do the same through Settings → MCP → Add Server (local stdio). Restart Kilo afterwards.

⚠️ Upgrading past 7.0.33? Entries in the older mcp_settings.json (VS Code globalStorage) are not migrated into kilo.jsoncKilo-Org/kilocode#6481. If your MCP servers disappeared after an update, re-add them here.

What it wires

Key Value Why
type local Kilo's discriminator for a command-launched server (the other is remote).
command observer serve An ARRAY here — argv, not command+args. Note the difference from every other listing in this repository.
enabled true Written verbatim by observer's own OpenCode registrar, which is where this entry comes from.

Kilo documents environment (not env) and timeout too. Neither is emitted: observer's server takes no environment, and the documented default timeout is ample for a local process.

This block is not hand-typed. Kilo CLI is a documented fork of OpenCode and kept its config shape, so the entry is the one observer's real OpenCode MCP registrar writes, transposed. A changed launch argument reaches this page the moment that registrar changes.

The observer server exposes observer's project, session, cost and cache queries as tools, reading the local ~/.observer/observer.db. It makes no network calls of its own.

Kilo capture is unaffected either way: observer's watcher reads Kilo's own kilo.db and the legacy extension's task files whether or not this entry exists.

Using the Kilo CLI? There is a plugin as well

Kilo's plugin API is first-party-documented as identical to OpenCode's, and observer's OpenCode npm plugin declares this same server from a plugin array entry — see ../opencode/. That is a package install rather than a config paste. Use one or the other, not both.

Double-wiring

observer init writes no Kilo config today — internal/mcp has no Kilo client row — so this hand-added entry cannot duplicate anything observer wrote. It CAN duplicate the OpenCode plugin above if you install both: that plugin's config hook adds the same key, and a second copy pasted here loads the same tool schema twice.

The automatic detect-and-skip observer init performs for the Claude Code plugin is claude-code-only (internal/claudeplugin); no equivalent probe exists for Kilo. Documented, not built.

Links