Skip to content

Latest commit

 

History

History
76 lines (59 loc) · 3.27 KB

File metadata and controls

76 lines (59 loc) · 3.27 KB

SuperBased Observer — Gemini CLI extension

Local-first token, cost and cache observability for the Gemini CLI.

Requires the observer binary already on your PATH. This extension is wiring only — it declares an MCP server that runs observer; it does not download or bundle it. gemini-extension.json has no description field to carry that sentence, so it is stated here and in the listing copy.

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

Install

gemini extensions install https://github.com/superbasedapp/plugins

Installing from GitHub requires git, and the CLI copies the extension — run gemini extensions update superbased to pick up a new release. Uninstall with gemini extensions uninstall superbased; disable without removing via gemini extensions disable superbased (add --scope=workspace for just the current workspace). Inside the CLI, /extensions list shows what is loaded.

⚠️ The manifest has to be at the root of whatever you install. Gemini documents a GitHub URL or a local path, and nothing else — there is no documented way to install from a subdirectory of a repo. So publishing this directory means either its own repo, or a repo root that also carries the other surfaces (their root-level names — .claude-plugin/, .agents/ — do not collide with gemini-extension.json). That choice is an operator step; nothing here has been published or tested against a live install.

What it wires

Field Value
name superbased — also the install directory name (~/.gemini/extensions/superbased/).
version Stamped from the observer release tag.
mcpServers.observer observer serve — on-demand project/session/cost queries from inside Gemini.

No hooks and no custom commands are declared. Observer's hook registry has no Gemini target (internal/hook registers claude-code, cursor and codex only), so there is nothing to transpose — and the extensions reference documents no hooks key anyway. Gemini capture continues to work without hooks: observer's watcher reads ~/.gemini session logs, and observer gemini -- … routes turns through the local proxy for exact token counts.

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 Gemini MCP entry today — internal/mcp has no Gemini client row — so installing this extension cannot duplicate anything observer wrote. If a Gemini MCP registrar is added later, the two would both declare the observer server; Gemini resolves that in the user's favour (a same-named server in settings.json takes precedence over an extension's), but the tool schema would still load twice.

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

Links