Skip to content

Latest commit

 

History

History
87 lines (66 loc) · 3.63 KB

File metadata and controls

87 lines (66 loc) · 3.63 KB

SuperBased Observer — OpenClaw plugin

Local-first token, cost and cache observability for OpenClaw.

Requires the observer binary already on your PATH. This plugin is wiring only — it 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

openclaw plugins install https://github.com/superbasedapp/plugins

openclaw plugins install accepts an npm spec, a git URL, a local path, a tarball or a zip. From a local checkout:

openclaw plugins install ./openclaw/superbased

Installed plugins are extracted into ~/.openclaw/extensions/<id>/ and enabled in config. Manage them with openclaw plugins list|info|update|enable|disable|doctor. The plugin id is superbased, which is also the key under plugins.entries in your OpenClaw config.

What it wires

Manifest field Value
id (required) superbased — the canonical plugin id, and the plugins.entries.<id> key.
configSchema (required) An object that accepts no properties. This plugin has no configuration of its own; observer's own knobs live in ~/.observer/config.toml, which the binary reads.
name / description / version Display metadata; the version is stamped from the observer release tag.
activation.onStartup true — the server is a static declaration and has to be present from the start of a session.
mcpServers.observer transport: stdio, observer serve — on-demand project/session/cost queries from inside OpenClaw.

Nothing else is declared. In particular there are no homepage, repository, license or keywords fields — OpenClaw's manifest reference does not have them, and states that npm install metadata belongs in package.json instead. There is no icon (we have no published image URL to point at, and OpenClaw falls back to a default) and no catalog block (those are ClawHub curation hints, not something an unlisted plugin should claim for itself).

No hooks are declared. Observer has no OpenClaw hook receiver — observer hook accepts claude-code, cursor, codex and hermes only — so a hook here would name a command that does not exist. OpenClaw capture works without hooks: observer's watcher reads both the <id>.jsonl message log and the <id>.trajectory.jsonl trace, which between them carry real per-call token counts.

Captured data lands in the local ~/.observer/observer.db. The MCP server makes no network calls of its own.

Your config always wins

OpenClaw documents that mcp.servers.<name> in your own config "can replace a plugin default or set enabled: false to omit it" — so an entry you wrote by hand overrides this plugin's, and you can switch the server off without uninstalling anything.

Double-wiring

observer init writes no OpenClaw config today — internal/mcp has no OpenClaw client row — so this plugin cannot duplicate anything observer wrote. If you have separately run openclaw mcp set observer …, that hand-written entry replaces this plugin's per the rule above rather than stacking with it.

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

Links