@dodopayments/opencode-plugin 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.mcp.json CHANGED
@@ -1,23 +1,13 @@
1
1
  {
2
2
  "mcpServers": {
3
3
  "dodopayments-api": {
4
- "type": "stdio",
5
- "command": "npx",
6
- "args": [
7
- "-y",
8
- "mcp-remote@latest",
9
- "https://mcp.dodopayments.com/mcp"
10
- ],
4
+ "type": "http",
5
+ "url": "https://mcp.dodopayments.com/mcp",
11
6
  "enabled": true
12
7
  },
13
8
  "dodo-knowledge": {
14
- "type": "stdio",
15
- "command": "npx",
16
- "args": [
17
- "-y",
18
- "mcp-remote@latest",
19
- "https://knowledge.dodopayments.com/mcp"
20
- ],
9
+ "type": "http",
10
+ "url": "https://knowledge.dodopayments.com/mcp",
21
11
  "enabled": true
22
12
  }
23
13
  }
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![npm](https://img.shields.io/npm/v/@dodopayments/opencode-plugin.svg?style=flat-square)](https://www.npmjs.com/package/@dodopayments/opencode-plugin)
6
6
  [![Discord](https://img.shields.io/discord/1305511580854779984?label=discord&style=flat-square)](https://discord.gg/bYqAp4ayYh)
7
7
 
8
- The official Dodo Payments plugin for AI coding agents. Installs seventeen integration skills and two MCP servers across **Claude Code**, **Codex CLI**, **Cursor**, **VS Code / GitHub Copilot**, and **OpenCode** from a single source of truth.
8
+ The official Dodo Payments plugin for AI coding agents. Installs the Dodo Payments integration skills and two MCP servers across **Claude Code**, **Codex CLI**, **Cursor**, **VS Code / GitHub Copilot**, **Grok Build**, **Meta Muse Code**, **Gemini CLI**, **Antigravity**, **Junie**, **OpenCode**, and more, from a single source of truth.
9
9
 
10
10
  This plugin conforms to the [Agent Plugins 1.0.0](https://agent-plugins.org/specification) specification: a root [`plugin.json`](./plugin.json), skills as immediate children of [`skills/`](./skills), and MCP servers in [`mcp.json`](./mcp.json). Clients with native Agent Plugins support load it directly; the provider-specific manifests in this repo are generated compatibility shims for clients that do not.
11
11
 
@@ -13,10 +13,28 @@ This plugin conforms to the [Agent Plugins 1.0.0](https://agent-plugins.org/spec
13
13
 
14
14
  - **Dodo Payments API MCP server** - Live API access (payments, subscriptions, customers, products, refunds, licenses, usage). Authenticates via browser OAuth, no local credentials required.
15
15
  - **Dodo Knowledge MCP server** - No credentials. Semantic search over the current Dodo Payments documentation.
16
- - **Seventeen agent skills** - Written as `SKILL.md` files with YAML frontmatter. Your agent loads the relevant skill on its own when a task calls for it.
16
+ - **Agent skills** - Integration guides (listed [below](#included-skills)), written as `SKILL.md` files with YAML frontmatter. Your agent loads the relevant skill on its own when a task calls for it.
17
17
 
18
18
  ## Install
19
19
 
20
+ | Client | Skills | MCP | How |
21
+ |---|---|---|---|
22
+ | Claude Code | ✅ | ✅ | [Marketplace](#claude-code) |
23
+ | Codex CLI / ChatGPT | ✅ | ✅ | [Marketplace](#codex-cli) |
24
+ | Cursor (and Grok Bot) | ✅ | ✅ | [Clone](#cursor) |
25
+ | VS Code / GitHub Copilot | ✅ | ✅ | [Plugins view](#vs-code--github-copilot) · [Copilot CLI](./docs/clients/more-clients.md) |
26
+ | Grok Build | ✅ | ✅ | [`grok plugin install`](./docs/clients/grok.md) |
27
+ | grok.com, xAI API | — | ✅ | [Connector / API tool](./docs/clients/grok.md) |
28
+ | Meta Muse Code | ✅ | ✅ | [`muse plugins install`](./docs/clients/muse.md) |
29
+ | Gemini CLI | ✅ | ✅ | [Extension](#gemini-cli) |
30
+ | Google Antigravity | ✅ | ✅ | [`agy plugin install`](./docs/clients/antigravity-and-junie.md#antigravity) |
31
+ | JetBrains Junie | ✅ | ✅ | [Extension](./docs/clients/antigravity-and-junie.md#junie) |
32
+ | Kiro | ✅ | ✅ | [Power](#kiro) |
33
+ | OpenCode | ✅ | ✅ | [npm](#opencode) |
34
+ | Qwen Code, Devin, Goose, Factory Droid, Augment, OpenHands, OpenClaw, Hermes | ✅ | ✅ | [More clients](./docs/clients/more-clients.md) |
35
+ | Cline, Kilo, Zed, Warp, Amp, Continue, Kimi, … | ✅ | ✅ | [`npx skills` + `npx add-mcp`](./docs/clients/more-clients.md#skills-and-mcp-separately) |
36
+ | Claude.ai, ChatGPT, Perplexity, Mistral | — | ✅ | [Custom connector](./docs/clients/more-clients.md#mcp-only-assistants) |
37
+
20
38
  ### Claude Code
21
39
 
22
40
  ```bash
@@ -75,16 +93,13 @@ git clone https://github.com/dodopayments/dodo-agent-plugin.git
75
93
 
76
94
  Point Kiro at the cloned folder. Skills load from `skills/`, MCP servers from `mcp.json`, and Kiro-specific presentation comes from the `dev.kiro` extension namespace in `plugin.json`.
77
95
 
78
- ### Gemini CLI (MCP only)
79
-
80
- Gemini CLI has no agent-skill primitive, so **only the two MCP servers are available** - the seventeen skills are not. `dodo-knowledge` still covers a good share of what the skills provide, and it stays current automatically.
96
+ ### Gemini CLI
81
97
 
82
98
  ```bash
83
- git clone https://github.com/dodopayments/dodo-agent-plugin.git \
84
- ~/.gemini/extensions/dodopayments
99
+ gemini extensions install https://github.com/dodopayments/dodo-agent-plugin
85
100
  ```
86
101
 
87
- Restart Gemini CLI. `gemini-extension.json` at the repo root is the manifest.
102
+ `gemini-extension.json` at the repo root is the manifest, and Gemini auto-discovers the `skills/` directory next to it. Verified on Gemini CLI 0.63.0: `gemini skills list` shows every skill and `gemini mcp list` shows both servers.
88
103
 
89
104
  ### VS Code / GitHub Copilot
90
105
 
@@ -94,7 +109,7 @@ git clone https://github.com/dodopayments/dodo-agent-plugin.git
94
109
 
95
110
  Then open the Chat view, go to **Plugins**, and add the cloned folder. Skills load from `skills/`, and both MCP servers load from `.mcp.json`.
96
111
 
97
- > VS Code 1.125.1 does not key off the Agent Plugins `$schema` - the string appears nowhere in its bundle. Its loader picks a manifest by probing, in order, `.plugin/plugin.json`, then `.claude-plugin/plugin.json`, then a root `plugin.json`, and defaults MCP to `.mcp.json` rather than `mcp.json`. Because this repo ships a generated `.claude-plugin/plugin.json`, VS Code loads it through that branch. Everything works - seventeen skills and two MCP servers - but via the compatibility manifests rather than the spec ones, so VS Code gets the `mcp-remote` bridge rather than the native transports in `mcp.json`.
112
+ > VS Code 1.125.1 does not key off the Agent Plugins `$schema` - the string appears nowhere in its bundle. Its loader picks a manifest by probing, in order, `.plugin/plugin.json`, then `.claude-plugin/plugin.json`, then a root `plugin.json`, and defaults MCP to `.mcp.json` rather than `mcp.json`. Because this repo ships a generated `.claude-plugin/plugin.json`, VS Code loads it through that branch. Everything works - all skills and both MCP servers - via the compatibility manifests rather than the spec ones.
98
113
 
99
114
  ### OpenCode
100
115
 
@@ -107,7 +122,7 @@ OpenCode distributes via npm. Add the plugin to your `opencode.json`:
107
122
  }
108
123
  ```
109
124
 
110
- Restart OpenCode. Both MCP servers (`dodopayments-api`, `dodo-knowledge`) are registered automatically via the plugin's `config` hook. No manual `mcp` block required.
125
+ Restart OpenCode. Both MCP servers (`dodopayments-api`, `dodo-knowledge`) are registered automatically via the plugin's `config` hook as native remote servers. No manual `mcp` block required. Run `opencode mcp auth dodopayments-api` to sign in to the API server.
111
126
 
112
127
  **Skills need the package installed locally plus one extra line.** OpenCode does not scan installed packages for skills, so point it at the package's `skills/` directory yourself. `skills.paths` entries resolve against the project directory, so the package must be present in the project's `node_modules` - OpenCode's own plugin cache is not the same location:
113
128
 
@@ -127,7 +142,7 @@ npm install --save-dev @dodopayments/opencode-plugin
127
142
 
128
143
  An absolute path works too, and avoids the local-install requirement.
129
144
 
130
- Verify with `opencode run "List every skill available to you by name."` - you should see all seventeen. A skills path that does not exist is ignored silently, so check rather than assume.
145
+ Verify with `opencode run "List every skill available to you by name."` - you should see every skill listed under [Included Skills](#included-skills). A skills path that does not exist is ignored silently, so check rather than assume.
131
146
 
132
147
  > Versions before 0.5.0 documented these skills as auto-discovered. They were not: nothing in OpenCode scans an installed package, so OpenCode users had MCP servers but no skills. Setting `config.skills` from the plugin's `config` hook does not fix this either - the skill index is built before `config` hooks run, so it never registers anything.
133
148
 
@@ -209,7 +224,7 @@ Skills source: [`dodopayments/skills`](https://github.com/dodopayments/skills),
209
224
  | `dodopayments-api` | Live API access (payments, subscriptions, customers, products, refunds, licenses, usage) | OAuth (browser) |
210
225
  | `dodo-knowledge` | Semantic search over the Dodo Payments documentation | None |
211
226
 
212
- Both servers speak Streamable HTTP. The canonical `mcp.json` declares them natively (`type: "streamable-http"`), which is what spec-native clients such as Codex CLI and Cursor use. The generated compatibility manifests — `.mcp.json`, read by Claude Code, VS Code and Cursor's legacy path — wire the same two endpoints through `mcp-remote` instead, so they run in clients that cannot yet dial Streamable HTTP directly.
227
+ Both servers speak Streamable HTTP over HTTPS, and every manifest dials them natively - no `npx mcp-remote` bridge and no Node dependency. The canonical `mcp.json` uses the spec's `type: "streamable-http"`; the generated `.mcp.json` (Claude Code, Cursor, VS Code, Grok Build, Devin, Goose, Droid) uses the same endpoints spelled `type: "http"`, the name that dialect uses; Muse, Antigravity, Junie and Gemini get their own spellings from the generator.
213
228
 
214
229
  ## Configure (optional, Claude Code)
215
230
 
@@ -269,9 +284,8 @@ These clients load MCPs from the static `.mcp.json` shipped with the plugin. To
269
284
  {
270
285
  "mcpServers": {
271
286
  "dodopayments-api": {
272
- "type": "stdio",
273
- "command": "npx",
274
- "args": ["-y", "mcp-remote@latest", "https://mcp.dodopayments.com/mcp"],
287
+ "type": "http",
288
+ "url": "https://mcp.dodopayments.com/mcp",
275
289
  "enabled": false
276
290
  }
277
291
  }
@@ -327,9 +341,9 @@ npm run verify # generated artifacts in sync + Agent Plugins conformance
327
341
  |---|---|
328
342
  | `plugin.json` | **Canonical.** Agent Plugins v1.0.0 manifest and the version source of truth |
329
343
  | `mcp.json` | **Canonical.** Agent Plugins v1.0.0 MCP config |
330
- | `skills/` | **Canonical.** Seventeen skills, vendored as real files |
344
+ | `skills/` | **Canonical.** Skills, vendored as real files; the declared set lives in `.skills-source.json` |
331
345
  | `overlays/*.json` | Hand-authored provider extras the closed spec schema cannot express |
332
- | `.claude-plugin/`, `.cursor-plugin/`, `.agents/`, `.mcp.json`, `plugins/dodopayments/` | **Generated.** Do not hand-edit - run `npm run build` |
346
+ | `.claude-plugin/`, `.cursor-plugin/`, `.codex-plugin/`, `.muse-plugin/`, `.agents/`, `.mcp.json`, `gemini-extension.json`, `plugins/dodopayments/`, `providers/` | **Generated.** Do not hand-edit - run `npm run build` |
333
347
  | `scripts/build.mjs` | The single generator (`--check` for drift) |
334
348
  | `scripts/conformance.mjs` | Agent Plugins conformance validator |
335
349
  | `.skills-source.json` | Upstream provenance for the vendored skills |
@@ -343,7 +357,7 @@ The repo is configured to publish the OpenCode npm package on every GitHub Relea
343
357
  **One-time setup (already done for this repo):**
344
358
 
345
359
  - npm scope `@dodopayments` exists and is owned by Dodo Payments.
346
- - GitHub Actions secret `NPM_TOKEN` is provisioned with publish rights to the `@dodopayments` scope.
360
+ - npm Trusted Publishing (OIDC) is configured for `@dodopayments/opencode-plugin` against `publish-opencode.yml`. No npm token is stored in the repo.
347
361
 
348
362
  **Release workflow:**
349
363
 
@@ -358,7 +372,7 @@ The repo is configured to publish the OpenCode npm package on every GitHub Relea
358
372
 
359
373
  **CI checks:**
360
374
 
361
- - `Verify` runs on every pull request and push to `main`: artifact drift, Agent Plugins conformance, live JSON Schema validation, a "seventeen skills, zero symlinks" assertion, and an npm payload check.
375
+ - `Verify` runs on every pull request and push to `main`: artifact drift, Agent Plugins conformance, live JSON Schema validation, an "every declared skill, zero symlinks" assertion, per-client manifest checks (Muse, Antigravity, Junie, Gemini), and an npm payload check.
362
376
  - The release workflow re-runs the same gates before publishing.
363
377
 
364
378
  ## Resources
package/mcp.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
3
+ "mcpServers": {
4
+ "dodopayments-api": {
5
+ "type": "streamable-http",
6
+ "url": "https://mcp.dodopayments.com/mcp"
7
+ },
8
+ "dodo-knowledge": {
9
+ "type": "streamable-http",
10
+ "url": "https://knowledge.dodopayments.com/mcp"
11
+ }
12
+ }
13
+ }
@@ -1,6 +1,6 @@
1
1
  # @dodopayments/opencode-plugin
2
2
 
3
- Official OpenCode plugin for Dodo Payments. Ships seventeen integration skills and auto-registers two MCP servers.
3
+ Official OpenCode plugin for Dodo Payments. Ships the Dodo Payments integration skills and auto-registers two MCP servers.
4
4
 
5
5
  This package is part of [`dodopayments/dodo-agent-plugin`](https://github.com/dodopayments/dodo-agent-plugin) - the universal Dodo Payments plugin that also installs into Claude Code, Codex, and Cursor.
6
6
 
@@ -25,7 +25,7 @@ npm install --save-dev @dodopayments/opencode-plugin
25
25
  Restart OpenCode.
26
26
 
27
27
  - Both MCP servers are registered automatically via the plugin's `config` hook.
28
- - The `skills.paths` entry is what makes the seventeen skills visible - OpenCode does not scan installed packages for skills. The path resolves against the **project** directory, not OpenCode's plugin cache, which is why the local install above is required. An absolute path works too and avoids that requirement.
28
+ - The `skills.paths` entry is what makes the skills visible - OpenCode does not scan installed packages for skills. The path resolves against the **project** directory, not OpenCode's plugin cache, which is why the local install above is required. An absolute path works too and avoids that requirement.
29
29
  - The plugin module exports only its default function. OpenCode's loader throws `Plugin export is not a function` on any non-function named export, skips the plugin, and swallows the error - leaving you with no MCP servers. Verified on OpenCode 1.18.15.
30
30
  - The first call to `dodopayments-api` opens a browser for OAuth. `dodo-knowledge` needs no auth.
31
31
 
@@ -37,7 +37,7 @@ opencode run "List every skill available to you by name."
37
37
 
38
38
  ## What you get
39
39
 
40
- Seventeen agent skills (auto-loaded when relevant): `dodo-best-practices`, `framework-adapters`, `testing-and-go-live`, `checkout-integration`, `subscription-integration`, `mobile-checkout`, `webhook-integration`, `credit-based-billing`, `usage-based-billing`, `license-keys`, `product-catalog-management`, `discounts-and-promotions`, `localized-pricing`, `customer-management`, `refunds-and-disputes`, `billing-sdk`, `better-auth-integration`.
40
+ Agent skills (auto-loaded when relevant): `dodo-best-practices`, `framework-adapters`, `testing-and-go-live`, `checkout-integration`, `subscription-integration`, `mobile-checkout`, `webhook-integration`, `credit-based-billing`, `usage-based-billing`, `license-keys`, `product-catalog-management`, `discounts-and-promotions`, `localized-pricing`, `customer-management`, `refunds-and-disputes`, `billing-sdk`, `better-auth-integration`.
41
41
 
42
42
  Two MCP servers (registered automatically):
43
43
 
@@ -30,19 +30,21 @@
30
30
  //
31
31
  // The endpoint URLs below MUST match the canonical mcp.json. This file is
32
32
  // hand-written rather than generated - OpenCode's config shape is its own
33
- // (`type: "local"`, `command: [...]`) - so `build.mjs --check` cannot cover
33
+ // (`type: "remote"`, `url`) - so `build.mjs --check` cannot cover
34
34
  // it. `scripts/conformance.mjs` asserts the URL sets are identical instead.
35
- // The `mcp-remote` bridge is deliberate here, matching the generated
36
- // `.mcp.json`: only the canonical mcp.json uses native streamable-http.
35
+ // `type: "remote"` is OpenCode's native Streamable HTTP transport; OpenCode
36
+ // runs OAuth discovery itself. Verified on 1.18.34 from a project-level
37
+ // opencode.json with these exact entries: dodo-knowledge connects, and
38
+ // dodopayments-api reports "needs authentication" (`opencode mcp auth`).
37
39
  const DODO_MCP_SERVERS = {
38
40
  "dodopayments-api": {
39
- type: "local",
40
- command: ["npx", "-y", "mcp-remote@latest", "https://mcp.dodopayments.com/mcp"],
41
+ type: "remote",
42
+ url: "https://mcp.dodopayments.com/mcp",
41
43
  enabled: true,
42
44
  },
43
45
  "dodo-knowledge": {
44
- type: "local",
45
- command: ["npx", "-y", "mcp-remote@latest", "https://knowledge.dodopayments.com/mcp"],
46
+ type: "remote",
47
+ url: "https://knowledge.dodopayments.com/mcp",
46
48
  enabled: true,
47
49
  },
48
50
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dodopayments/opencode-plugin",
3
- "version": "0.5.1",
4
- "description": "Dodo Payments skills and MCP server hints for OpenCode.",
3
+ "version": "0.6.0",
4
+ "description": "Dodo Payments agent skills and MCP servers for OpenCode.",
5
5
  "type": "module",
6
6
  "main": "opencode-plugin/index.js",
7
7
  "exports": {
@@ -10,6 +10,7 @@
10
10
  "files": [
11
11
  "opencode-plugin/",
12
12
  "skills/",
13
+ "mcp.json",
13
14
  ".mcp.json",
14
15
  "LICENSE"
15
16
  ],