{
  "markdown": "<!-- ASSEMBLED by scripts/assemble-plugins-repo.sh in the superbased-observer\n     repository. Do not edit by hand: the per-surface sections below are\n     copied verbatim out of each surface's own README, which is itself\n     generated by plugins/plugingen from the real `observer init`\n     registrars. -->\n\n# SuperBased — plugins for AI coding agents\n\nInstall [SuperBased Observer](https://superbased.app/) from inside the AI\ncoding agent you already use. Observer is local-first token, cost and cache\nobservability: it captures what your coding agents actually do, and keeps it\nin a SQLite database on your own machine.\n\n**Requires the `observer` binary already on your PATH** (`npm i -g @superbased/observer`, or\n`pipx install superbased-observer`). Every artifact in this repository is\n**wiring only** — each one declares an MCP server (and, for Claude Code,\nlifecycle hooks) that runs a binary you install separately. Nothing here\ndownloads, bundles or installs a binary.\n\nPlugin version: `1.28.0` — kept in lockstep with the observer release it\nwires.\n\n## What's in here\n\n| Surface | Install artifact | Detail |\n|---|---|---|\n| Claude Code | `.claude-plugin/marketplace.json` + [`superbased/`](superbased/) | [superbased/README.md](superbased/README.md) |\n| Codex | `.agents/plugins/marketplace.json` + [`plugins/superbased/`](plugins/superbased/) | [codex/README.md](codex/README.md) |\n| Gemini CLI | [`gemini-extension.json`](gemini-extension.json) (repository root) | [gemini/README.md](gemini/README.md) |\n| Goose | no manifest — Goose extensions *are* MCP servers | [goose/README.md](goose/README.md) |\n| Cursor | a one-click `cursor://` deeplink | [cursor/README.md](cursor/README.md) |\n| OpenCode | the `@superbased/opencode-plugin` npm package | [opencode/README.md](opencode/README.md) |\n| Kimi Code | [`kimi.plugin.json`](kimi.plugin.json) (repository root) | [kimi-code/README.md](kimi-code/README.md) |\n| Qoder | `.qoder-plugin/marketplace.json` + [`qoder/superbased/`](qoder/superbased/) | [qoder/README.md](qoder/README.md) |\n| Devin | `.devin-plugin/plugin.json` + `mcp_config.json` (repository root) | [devin/README.md](devin/README.md) |\n| Droid | `.factory-plugin/marketplace.json` + [`factory/superbased/`](factory/superbased/) | [droid/README.md](droid/README.md) |\n| OpenClaw | [`openclaw.plugin.json`](openclaw.plugin.json) (repository root) | [openclaw/README.md](openclaw/README.md) |\n| Antigravity | [`antigravity/superbased/`](antigravity/superbased/) (copied or `agy plugin install`ed) | [antigravity/README.md](antigravity/README.md) |\n| GitHub Copilot (VS Code) | a one-click `vscode:mcp/install` link | [copilot/README.md](copilot/README.md) |\n| Claude Desktop / Cowork | [`cowork/superbased/manifest.json`](cowork/superbased/manifest.json) — an `.mcpb` bundle, **unverified** | [cowork/README.md](cowork/README.md) |\n| Crush · Kiro CLI · Copilot CLI · Kilo Code · Roo Code · Open Interpreter · Command Code | a config block to paste (no package format exists) | see \"Config listings\" below |\n| Pi | nothing — capture is native and Pi has no MCP client | [pi/README.md](pi/README.md) |\n\nTwo more tools reach this repository through a surface it already carries,\n**per those vendors' own documentation** — we have not live-verified either,\nand neither has an artifact of its own here:\n\n- **Qwen Code** — `qwen extensions install <owner>/<repo>` is documented as\n  auto-converting a `gemini-extension.json`, which is why that manifest sits\n  at the repository root.\n- **Grok** — `docs.x.ai` states Grok reads Claude Code marketplaces, plugins,\n  MCPs and hooks with \"zero configuration needed\". Grok's own plugin schema is\n  not publicly documented, so inventing a second manifest would be a guess; the\n  Claude Code artifacts above are the Grok surface.\n\n## Install\n\n### Claude Code\n\n#### Install\n\n```\n/plugin marketplace add superbasedapp/plugins\n/plugin install superbased@superbased\n```\n\nFull detail: [superbased/README.md](superbased/README.md).\n\n### Codex\n\n#### Install\n\n```bash\ncodex plugin marketplace add superbasedapp/plugins\n```\n\nThen, inside Codex, open the plugin browser with `/plugins`, find\n**SuperBased Observer** under the `superbased` marketplace, and\ninstall it. Start a **new** thread afterwards — sessions already open do not\npick up newly installed plugin files.\n\nOther documented marketplace verbs: `codex plugin marketplace list`,\n`… upgrade [name]`, `… remove <name>`. Installs are cached under\n`~/.codex/plugins/cache/<marketplace>/<plugin>/<version>/`.\n\nFull detail: [codex/README.md](codex/README.md).\n\n### Gemini CLI\n\n#### Install\n\n```bash\ngemini extensions install https://github.com/superbasedapp/plugins\n```\n\nInstalling from GitHub requires `git`, and the CLI **copies** the extension —\nrun `gemini extensions update superbased` to pick up a new release.\nUninstall with `gemini extensions uninstall superbased`; disable\nwithout removing via `gemini extensions disable superbased`\n(add `--scope=workspace` for just the current workspace). Inside the CLI,\n`/extensions list` shows what is loaded.\n\n⚠️ **The manifest has to be at the root of whatever you install.** Gemini\ndocuments a GitHub URL or a local path, and nothing else — there is no\ndocumented way to install from a subdirectory of a repo. So publishing this\ndirectory means either its own repo, or a repo root that also carries the\nother surfaces (their root-level names — `.claude-plugin/`,\n`.agents/` — do not collide with `gemini-extension.json`). That choice\nis an operator step; nothing here has been published or tested against a\nlive install.\n\nIn THIS repository that root-placement choice is already made: `gemini-extension.json`\nsits at the top level, alongside the Claude Code and Codex catalogs.\n\nFull detail: [gemini/README.md](gemini/README.md).\n\n### Goose\n\n#### Install — the interactive way\n\n```bash\ngoose configure\n```\n\nThen answer the prompts:\n\n| Prompt | Answer |\n|---|---|\n| What would you like to configure? | **Add Extension** |\n| What type of extension would you like to add? | **Command-line Extension** |\n| What would you like to call this extension? | `observer` |\n| What command should be run? | `observer serve` |\n| Please set the timeout for this tool (in secs): | `300` |\n| Would you like to add environment variables? | **No** |\n\n#### Install — the config-file way\n\nAdd this to `~/.config/goose/config.yaml` (merge the `extensions:` key\nif you already have one):\n\n```yaml\nextensions:\n  observer:\n    type: stdio\n    name: observer\n    enabled: true\n    cmd: observer\n    args: [\"serve\"]\n    env_keys: []\n    envs: {}\n    timeout: 300\n```\n\nRestart Goose (edits to the config file do not reach an already-running\nsession), then check it with `goose info -v`.\n\n#### Try it for one session only\n\n```bash\ngoose session --with-extension \"observer serve\"\n```\n\nPer the Goose docs this does **not** install the extension — it is enabled\nfor that session only.\n\nFull detail: [goose/README.md](goose/README.md).\n\n### Cursor\n\n#### The link\n\n```\ncursor://anysphere.cursor-deeplink/mcp/install?name=observer&config=eyJjb21tYW5kIjoib2JzZXJ2ZXIiLCJhcmdzIjpbInNlcnZlIl19\n```\n\nAlso in `deeplink.txt` (single line, newline-terminated) for scripting.\n\nMarkdown form for a README or a web page:\n\n```markdown\n[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](cursor://anysphere.cursor-deeplink/mcp/install?name=observer&config=eyJjb21tYW5kIjoib2JzZXJ2ZXIiLCJhcmdzIjpbInNlcnZlIl19)\n```\n\nFull detail — including the security constraint on deeplinks: [cursor/README.md](cursor/README.md).\n\n### OpenCode\n\n#### Install\n\nAdd the package to the `plugin` array of your `opencode.json`\n(`~/.config/opencode/opencode.json` for every project, or a project-local\n`opencode.json`):\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"plugin\": [\"@superbased/opencode-plugin\"]\n}\n```\n\nOpenCode installs npm plugins with Bun at startup and caches them in\n`~/.cache/opencode/node_modules/` — there is no separate `npm install`\nstep.\n\n> **Not published yet.** `@superbased/opencode-plugin` is not on npm; this\n> directory is the package source. Publishing is an operator-gated step.\n\nFull detail: [opencode/README.md](opencode/README.md).\n\n### Kimi Code\n\n#### Install\n\nInside Kimi Code:\n\n```\n/plugins install https://github.com/superbasedapp/plugins\n```\n\nA bare GitHub repository URL resolves to the latest release, falling back to\nthe default branch. The other documented pinned forms also work:\n`…/tree/<ref>`, `…/releases/tag/<tag>` and `…/commit/<sha>`.\nDownloads go through `github.com` / `codeload.github.com` only.\n\nInstalled plugins live under `$KIMI_CODE_HOME/plugins/managed/<id>/`.\nManage them with `/plugins list`, `/plugins info superbased`,\n`/plugins enable|disable superbased`, `/plugins reload` and\n`/plugins remove superbased`. The MCP server this plugin declares can be\ntoggled on its own with `/plugins mcp enable|disable superbased observer`.\n\nKimi Code shows a trust badge per source; a third-party install (this one, until\nit is listed in an official catalog) defaults the confirmation prompt to\n**cancel**, so you have to confirm deliberately.\n\n⚠️ **The manifest has to be at the root of whatever you install.** The\ndocumented remote install takes a repository URL, so `kimi.plugin.json`\nbelongs at the repository root — the same constraint\n`gemini-extension.json` carries. In this source tree it lives under\n`kimi-code/superbased/` alongside the other surfaces; the\npublic repository puts it at the top level, where its name collides with\nnothing else that must live there.\n\nFull detail: [kimi-code/README.md](kimi-code/README.md).\n\n### Qoder\n\n#### Install\n\nAdd this repository as a marketplace, then install from it:\n\n```bash\nqodercli plugins marketplace add superbasedapp/plugins\nqodercli plugins install superbased@superbased\n```\n\n`marketplace add` also takes a git URL, a local directory or a\n`marketplace.json` URL, and `--scope` takes `user`\n(the default), `project` or `local`.\n\nOr install the plugin directory straight from a clone, with no marketplace at\nall:\n\n```bash\nqodercli plugins install ./qoder/superbased\n```\n\nAn absolute path or a `~/…` path works too, and `-s/--scope` takes\nthe same three values. Restart the CLI\nor run `/plugins reload` afterwards. Locally-installed plugins carry the\nid `superbased@local`; manage them with\n`qodercli plugins list|enable|disable|validate|update` and\n`qodercli plugins uninstall superbased@local`.\n\n##### Why there is a catalog here at all\n\nQoder looks for a marketplace manifest in a fixed order —\n`.qoder-plugin/marketplace.json`, then\n`.claude-plugin/marketplace.json`, then `marketplace.json` — and\nthis repository carries a `.claude-plugin/marketplace.json` at its root\nfor Claude Code. Without a Qoder catalog to take the first slot,\n`qodercli plugins marketplace add` on this repository would fall through\nto the Claude Code entry and install **that** plugin — which bundles\n`hooks/hooks.json` full of `observer hook claude-code …` commands\nwritten for a different tool. The catalog above takes the first slot and\nresolves to the Qoder plugin, which declares an MCP server and nothing else.\n(Droid documents the same fallback and gets the same treatment; see\n`../droid/`.)\n\nThe catalog entry carries no `version`: Qoder reads the pin from the\nplugin's own `.qoder-plugin/plugin.json`, exactly like the Codex and\nDroid catalogs.\n\nFull detail: [qoder/README.md](qoder/README.md).\n\n### Devin\n\n#### Install\n\n```bash\ndevin plugins install superbasedapp/plugins\n```\n\nA GitHub `owner/repo`, any git URL, or a local folder are the three\ndocumented sources; `-y`/`--yes` skips the confirmation prompt. Manage\nwith `devin plugins list|info|update|remove`.\n\n⚠️ **Repository-root placement.** A git-URL install takes the repository, so\nthe plugin's own files have to be at that repository's root. In this source\ntree they live under `devin/superbased/` next to the\nother surfaces; the public repository puts `.devin-plugin/` and\n`mcp_config.json` at the top level, where neither name collides with\nanother surface's root entry. If you would rather not take the whole\nrepository, clone it and install the directory:\n\n```bash\ndevin plugins install ./devin/superbased\n```\n\n**There is no Devin plugin marketplace to list in.** Cognition documents no\npublic catalog for the CLI (the \"MCP Marketplace\" is Devin Cloud's settings\npage — a different product surface), so a git-URL install is the whole\ndistribution channel, and no catalog file is generated.\n\nFull detail: [devin/README.md](devin/README.md).\n\n### Droid\n\n#### Install\n\n```bash\ndroid plugin marketplace add https://github.com/superbasedapp/plugins\ndroid plugin install superbased@superbased\n```\n\nOr browse with `/plugins` inside the CLI. A local checkout works too —\n`droid plugin marketplace add ./droid` then the same\ninstall line.\n\nFactory maintains its own official marketplace at\n`github.com/Factory-AI/factory-plugins`. Listing there is a public\nsubmission, not something this repository does on its own; the catalog above is\nthe self-hosted form, exactly like the Codex surface.\n\nFull detail: [droid/README.md](droid/README.md).\n\n### OpenClaw\n\n#### Install\n\n```bash\nopenclaw plugins install https://github.com/superbasedapp/plugins\n```\n\n`openclaw plugins install` accepts an npm spec, a git URL, a local path,\na tarball or a zip. From a local checkout:\n\n```bash\nopenclaw plugins install ./openclaw/superbased\n```\n\nInstalled plugins are extracted into `~/.openclaw/extensions/<id>/` and\nenabled in config. Manage them with\n`openclaw plugins list|info|update|enable|disable|doctor`. The plugin id is\n`superbased`, which is also the key under `plugins.entries` in\nyour OpenClaw config.\n\nFull detail: [openclaw/README.md](openclaw/README.md).\n\n### Antigravity\n\n#### Install\n\nClone or download this repository, then either let the CLI stage it:\n\n```bash\nagy plugin install ./antigravity/superbased\n```\n\n— which copies it into `~/.gemini/antigravity-cli/plugins/superbased/` —\nor copy the folder into one of the two documented plugin directories yourself\nand restart:\n\n```bash\n# active in every workspace\ncp -r antigravity/superbased ~/.gemini/config/plugins/\n\n# active in one workspace only\ncp -r antigravity/superbased <your-project>/.agents/plugins/\n```\n\nThen `agy plugin list` to confirm, and\n`agy plugin disable|enable|uninstall superbased` to manage it. The\nargument is the manifest's `name`, which is why this plugin sets it\nexplicitly instead of inheriting the folder name.\n\nFull detail — including why this one is NOT at the repository root: [antigravity/README.md](antigravity/README.md).\n\n### GitHub Copilot (VS Code)\n\n#### Install\n\nClick the link (or paste it into a browser; on Linux,\n`xdg-open \"<link>\"` works from a terminal):\n\n```\nvscode:mcp/install?%7B%22name%22%3A%22observer%22%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22observer%22%2C%22args%22%3A%5B%22serve%22%5D%7D\n```\n\nVS Code Insiders:\n\n```\nvscode-insiders:mcp/install?%7B%22name%22%3A%22observer%22%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22observer%22%2C%22args%22%3A%5B%22serve%22%5D%7D\n```\n\nVS Code opens the MCP install prompt with the server pre-filled; confirm it,\nand the entry lands in your user profile. `MCP: Add Server` from the\nCommand Palette and `code --add-mcp '<json>'` are the equivalent manual\nroutes.\n\n##### As a badge\n\nTo put the link in a README of your own:\n\n```markdown\n[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_observer-0098FF?logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22observer%22%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22observer%22%2C%22args%22%3A%5B%22serve%22%5D%7D)\n```\n\n(The image comes from shields.io, a third-party badge host; the link itself\nis first-party VS Code.)\n\n##### Or as a workspace file\n\nTo share the server with everyone working in a repository, commit this as\n`.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"observer\": {\n      \"type\": \"stdio\",\n      \"command\": \"observer\",\n      \"args\": [\n        \"serve\"\n      ]\n    }\n  }\n}\n```\n\n#### ⚠️ `servers` here, `mcpServers` in Copilot CLI\n\nVS Code's `mcp.json` uses the top-level key\n`servers`. GitHub Copilot **CLI** — a different\nproduct, documented in `../copilot-cli/` — uses\n`mcpServers` and states outright that it will not read\n`.vscode/mcp.json` *because* of the `servers`\nkey. Copy the block from the page that matches the product you are\nconfiguring; the wrong key fails silently.\n\nFull detail: [copilot/README.md](copilot/README.md).\n\n### Claude Desktop / Cowork — UNVERIFIED\n\n#### Install\n\n**The documented, grounded route** — merge this into\n`claude_desktop_config.json` and restart Claude Desktop:\n\n| OS | Path |\n|---|---|\n| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |\n| Windows | `%APPDATA%\\Claude\\claude_desktop_config.json` |\n| Linux | `~/.config/Claude/claude_desktop_config.json` |\n\n```json\n{\n  \"mcpServers\": {\n    \"observer\": {\n      \"command\": \"observer\",\n      \"args\": [\n        \"serve\"\n      ]\n    }\n  }\n}\n```\n\n**The bundle route** (unverified, see the box above): pack this directory\ninto a `.mcpb` and drag the result into **Settings → Extensions**.\n\nFull detail — including what is unverified and why: [cowork/README.md](cowork/README.md).\n\n## Config listings\n\nSome tools have no plugin or extension package at all: their one\nfirst-party extension surface is their own config file. For those, the\nartifact is the exact block to paste — generated from the same registrars\nas every manifest above, so a changed launch argument reaches it too.\n\n| Tool | File | Detail |\n|---|---|---|\n| Crush | `crush.json`'s `mcp` key | [crush/README.md](crush/README.md) |\n| Kiro CLI | `~/.kiro/settings/mcp.json` | [kiro-cli/README.md](kiro-cli/README.md) |\n| GitHub Copilot CLI | `~/.copilot/mcp-config.json` (key `mcpServers`, **not** VS Code's `servers`) | [copilot-cli/README.md](copilot-cli/README.md) |\n| Kilo Code | `kilo.jsonc`'s `mcp` key | [kilo-code/README.md](kilo-code/README.md) |\n| Roo Code | `.roo/mcp.json` | [roo-code/README.md](roo-code/README.md) |\n| Open Interpreter | `~/.openinterpreter/config.toml` | [open-interpreter/README.md](open-interpreter/README.md) |\n| Command Code | `~/.commandcode/mcp.json` — though `observer init` writes this one for you | [command-code/README.md](command-code/README.md) |\n\nAnd one tool needs nothing at all: **Pi** has no MCP client by design, and\nobserver already reads Pi's own session transcripts —\n[pi/README.md](pi/README.md) explains what would and would not be worth\nbuilding there.\n\n## Why the layout looks like this\n\nEvery one of these formats resolves its relative paths from a **repository\nroot**, so all three root-level entry points have to sit at the top of this\nrepository. Their names do not collide, which is what lets one repository\nserve all of them:\n\n| Root path | Belongs to | Why it must be at the root |\n|---|---|---|\n| `.claude-plugin/marketplace.json` | Claude Code | the catalog entry's `\"./superbased\"` source resolves against the directory holding `.claude-plugin/`; `../` is forbidden |\n| `.agents/plugins/marketplace.json` | Codex | Codex reads a repo-scoped catalog at `$REPO_ROOT/.agents/plugins/marketplace.json`, and the entry's `\"./plugins/superbased\"` source resolves against that root |\n| `gemini-extension.json` | Gemini CLI (and Qwen Code) | `gemini extensions install` documents a repository URL or a local path and nothing else — installing from a repository *subdirectory* is not documented |\n| `kimi.plugin.json` | Kimi Code | `/plugins install <github-url>` installs a repository, so the manifest is the repository's |\n| `openclaw.plugin.json` | OpenClaw | `openclaw plugins install <git spec>` likewise |\n| `.devin-plugin/plugin.json` + `mcp_config.json` | Devin | `devin plugins install owner/repo` makes the repository root the plugin root, and Devin reads its components from that root |\n| `.factory-plugin/marketplace.json` | Droid | `droid plugin marketplace add <source>` reads the catalog from the root — and Droid falls back to `.claude-plugin/marketplace.json` when it is absent, so shipping ours shadows that fallback with a plugin that declares only an MCP server. Its plugin lives at `factory/superbased/` so it cannot merge with the Claude Code plugin directory |\n| `.qoder-plugin/marketplace.json` | Qoder | `qodercli plugins marketplace add <source>` reads the catalog from the root, trying `.qoder-plugin/marketplace.json`, then `.claude-plugin/marketplace.json`, then `marketplace.json` — so without ours Qoder would install the Claude Code plugin, hooks and all. Only the catalog is at the root; the plugin it names stays at `qoder/superbased/`, which is also where Qoder's own documented local-path install points |\n\nEverything else is in a subdirectory, because nothing about those tools\nresolves from a repository root: the Qoder PLUGIN installs from a local\npath (only its catalog needs the root, see above),\nAntigravity stages a local directory into your own home (and deliberately\nstays out of `.agents/plugins/`, which is Codex's), the Claude Desktop\nbundle is packed rather than read in place, the Copilot link is a URI, and\nthe config listings are pages to read.\n\nThe per-surface READMEs below each install section were written against the\nsource tree, where every surface owns its own directory. Where one of them\ndraws a layout with a surface directory at the top (`codex/`, for example),\nthat directory **is this repository's root** here.\n\n## How this repository is produced\n\n**Generated:** every manifest (`.claude-plugin/marketplace.json`,\n`superbased/.claude-plugin/plugin.json`, `.agents/plugins/marketplace.json`,\n`plugins/superbased/.codex-plugin/plugin.json`, both `.mcp.json` files,\n`superbased/hooks/hooks.json`, `gemini-extension.json`), every\nper-surface README, `cursor/deeplink.txt` and\n`opencode/src/wiring.generated.ts`.\n\n**Hand-written:** the OpenCode npm package's glue — `opencode/package.json`,\n`opencode/tsconfig.json` and `opencode/src/index.ts` (the SDK plumbing a\ngenerator has no business owning; the wiring it consumes is generated).\n`LICENSE` is copied verbatim from the observer repository and\n`.gitignore` is a fixed block in the assembler.\n\n**Assembled:** this landing page. Its per-surface install sections are copied\nverbatim out of the per-surface READMEs above, so an install command cannot\ndrift between this page and the surface that owns it.\n\nThe manifests are generated by\n`plugins/plugingen` in the private `superbased-observer` repository, which\ndoes not re-describe observer's wiring — it **runs the real `observer init`\nregistrars** against a throwaway sandbox `HOME` and transposes exactly what\nthey wrote into each surface's format. A changed MCP argument or a new hook\nevent therefore reaches these manifests automatically, and a CI drift gate\nfails until the regenerated tree is committed.\n\nThis repository tree is then assembled from that output by\n`scripts/assemble-plugins-repo.sh`, which performs the\ndirectory-per-surface → repository-root transpose described above and stamps\nthe release version.\n\nThe one deliberate deviation from what `observer init` writes: init\nregisters the **absolute path** of the running binary, which a cache-copied\nplugin cannot know, so every manifest here resolves `observer` from `PATH`.\n\n## Honesty notes\n\n- **Wiring only.** Requires the `observer` binary already on your PATH. No artifact here ships, downloads or\n  bundles a binary, and each listing says so in those words.\n- **Local by default.** Captured data lands in `~/.observer/observer.db`.\n  The MCP server makes no network calls of its own; shipping anything off the\n  machine is a separate, opt-in Teams configuration none of these plugins\n  touch.\n- **No efficiency claims.** No listing here promises an efficiency, context\n  or cost benefit of any kind. Observer measures what your agents spend; it\n  does not claim to change it.\n- **Double-wiring.** Several of these surfaces declare the same MCP server\n  `observer init` writes into that tool's own config. Where a duplicate is\n  possible, the surface's README says so plainly and tells you what to do\n  about it. Claude Code is the one surface where `observer init` detects the\n  plugin and stands down by itself.\n\n## License\n\nApache-2.0 — see [LICENSE](LICENSE).\n",
  "bytes": 24259,
  "sha": "0dc3912179d223fdbcfcd260f070f1ccf00443df57d3d5be9ea26ed18229abf9",
  "repo_slug": "superbasedapp/plugins",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_superbasedapp_plugins_15cbbd76/readme"
}