Local-first token, cost and cache observability for Devin for Terminal.
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 daemonsuperbased/
├── .devin-plugin/plugin.json ← the manifest
└── mcp_config.json ← the MCP server it ships, at the plugin ROOT
devin plugins install superbasedapp/pluginsA GitHub owner/repo, any git URL, or a local folder are the three
documented sources; -y/--yes skips the confirmation prompt. Manage
with devin plugins list|info|update|remove.
devin/superbased/ next to the
other surfaces; the public repository puts .devin-plugin/ and
mcp_config.json at the top level, where neither name collides with
another surface's root entry. If you would rather not take the whole
repository, clone it and install the directory:
devin plugins install ./devin/superbasedThere is no Devin plugin marketplace to list in. Cognition documents no public catalog for the CLI (the "MCP Marketplace" is Devin Cloud's settings page — a different product surface), so a git-URL install is the whole distribution channel, and no catalog file is generated.
| Component | What it declares |
|---|---|
.devin-plugin/plugin.json |
Identity only: name (superbased), version, description, author, homepage, repository, license, keywords. |
mcp_config.json |
The observer MCP server: observer serve — on-demand project/session/cost queries from inside Devin. Servers in this file start with the session. |
The manifest's own mcpServers field is deliberately empty. Devin
reads it "in addition to the root conventions", and the root convention
mcp_config.json is what this plugin ships — setting both would declare
the same server twice from one plugin.
No hooks.json is declared. Devin's Claude-Code-compatible
hooks.v1.json is present but unwired in the shipped CLI (grounded live
against 3000.1.27), and observer has no Devin hook receiver either
(observer hook accepts claude-code, cursor, codex and hermes only). A
hooks file here would declare a command that cannot run, on an event that does
not fire. Devin capture works without it: observer's watcher reads Devin's
sessions.db message tree directly.
Captured data lands in the local ~/.observer/observer.db. The MCP server
makes no network calls of its own.
observer init writes no Devin MCP entry today — internal/mcp
has no Devin client row — so this plugin cannot duplicate anything observer
wrote. If you have separately run
devin mcp add observer -- observer serve, or hand-added the
server to ~/.config/devin/mcp_config.json / .devin/mcp_config.json,
remove one of the two — Devin would otherwise load the same tool schema twice
per turn.
The automatic detect-and-skip observer init performs for the Claude Code
plugin is claude-code-only (internal/claudeplugin); no equivalent probe
exists for Devin. Documented, not built.
- Docs: https://superbased.app/
- Source: https://github.com/superbasedapp/observer
- License: Apache-2.0