Skip to content

Latest commit

 

History

History
93 lines (71 loc) · 3.67 KB

File metadata and controls

93 lines (71 loc) · 3.67 KB

SuperBased Observer — Devin CLI plugin

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 daemon

Layout

superbased/
├── .devin-plugin/plugin.json   ← the manifest
└── mcp_config.json             ← the MCP server it ships, at the plugin ROOT

Install

devin plugins install superbasedapp/plugins

A 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.

⚠️ Repository-root placement. A git-URL install takes the repository, so the plugin's own files have to be at that repository's root. In this source tree they live under 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/superbased

There 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.

What it wires

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.

Double-wiring

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.

Links