@orchid-labs/pluxx 0.1.0 → 0.1.3

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.
Files changed (110) hide show
  1. package/README.md +110 -515
  2. package/bin/pluxx.js +19 -28
  3. package/dist/agents.d.ts +16 -0
  4. package/dist/agents.d.ts.map +1 -0
  5. package/dist/cli/agent.d.ts +69 -0
  6. package/dist/cli/agent.d.ts.map +1 -1
  7. package/dist/cli/doctor.d.ts +3 -0
  8. package/dist/cli/doctor.d.ts.map +1 -1
  9. package/dist/cli/entry.d.ts +2 -0
  10. package/dist/cli/entry.d.ts.map +1 -0
  11. package/dist/cli/eval.d.ts +22 -0
  12. package/dist/cli/eval.d.ts.map +1 -0
  13. package/dist/cli/index.d.ts +26 -3
  14. package/dist/cli/index.d.ts.map +1 -1
  15. package/dist/cli/index.js +21810 -0
  16. package/dist/cli/init-from-mcp.d.ts +34 -3
  17. package/dist/cli/init-from-mcp.d.ts.map +1 -1
  18. package/dist/cli/install.d.ts +3 -0
  19. package/dist/cli/install.d.ts.map +1 -1
  20. package/dist/cli/lint.d.ts +7 -1
  21. package/dist/cli/lint.d.ts.map +1 -1
  22. package/dist/cli/mcp-proxy.d.ts +10 -0
  23. package/dist/cli/mcp-proxy.d.ts.map +1 -0
  24. package/dist/cli/migrate.d.ts.map +1 -1
  25. package/dist/cli/primitive-summary.d.ts +14 -0
  26. package/dist/cli/primitive-summary.d.ts.map +1 -0
  27. package/dist/cli/prompt.d.ts +1 -1
  28. package/dist/cli/publish.d.ts +6 -1
  29. package/dist/cli/publish.d.ts.map +1 -1
  30. package/dist/cli/sync-from-mcp.d.ts.map +1 -1
  31. package/dist/cli/test.d.ts +2 -0
  32. package/dist/cli/test.d.ts.map +1 -1
  33. package/dist/cli/verify-install.d.ts +25 -0
  34. package/dist/cli/verify-install.d.ts.map +1 -0
  35. package/dist/commands.d.ts +10 -0
  36. package/dist/commands.d.ts.map +1 -0
  37. package/dist/compiler-intent.d.ts +165 -0
  38. package/dist/compiler-intent.d.ts.map +1 -0
  39. package/dist/config/load.d.ts.map +1 -1
  40. package/dist/delegation.d.ts +11 -0
  41. package/dist/delegation.d.ts.map +1 -0
  42. package/dist/generators/amp/index.d.ts.map +1 -1
  43. package/dist/generators/base.d.ts +5 -0
  44. package/dist/generators/base.d.ts.map +1 -1
  45. package/dist/generators/claude-code/index.d.ts +2 -0
  46. package/dist/generators/claude-code/index.d.ts.map +1 -1
  47. package/dist/generators/cline/index.d.ts.map +1 -1
  48. package/dist/generators/codex/index.d.ts +5 -0
  49. package/dist/generators/codex/index.d.ts.map +1 -1
  50. package/dist/generators/cursor/index.d.ts +1 -0
  51. package/dist/generators/cursor/index.d.ts.map +1 -1
  52. package/dist/generators/gemini-cli/index.d.ts.map +1 -1
  53. package/dist/generators/github-copilot/index.d.ts.map +1 -1
  54. package/dist/generators/opencode/index.d.ts +1 -0
  55. package/dist/generators/opencode/index.d.ts.map +1 -1
  56. package/dist/generators/openhands/index.d.ts.map +1 -1
  57. package/dist/generators/roo-code/index.d.ts.map +1 -1
  58. package/dist/generators/shared/claude-family.d.ts.map +1 -1
  59. package/dist/generators/warp/index.d.ts.map +1 -1
  60. package/dist/index.d.ts +4 -1
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +5464 -548
  63. package/dist/mcp/introspect.d.ts +43 -1
  64. package/dist/mcp/introspect.d.ts.map +1 -1
  65. package/dist/permissions.d.ts.map +1 -1
  66. package/dist/schema.d.ts +91 -42
  67. package/dist/schema.d.ts.map +1 -1
  68. package/dist/text-files.d.ts +5 -0
  69. package/dist/text-files.d.ts.map +1 -0
  70. package/dist/validation/platform-rules.d.ts +35 -1
  71. package/dist/validation/platform-rules.d.ts.map +1 -1
  72. package/package.json +16 -14
  73. package/src/cli/agent.ts +0 -1030
  74. package/src/cli/dev.ts +0 -112
  75. package/src/cli/doctor.ts +0 -588
  76. package/src/cli/index.ts +0 -2414
  77. package/src/cli/init-from-mcp.ts +0 -1611
  78. package/src/cli/install.ts +0 -698
  79. package/src/cli/lint.ts +0 -1219
  80. package/src/cli/migrate.ts +0 -614
  81. package/src/cli/prompt.ts +0 -82
  82. package/src/cli/publish.ts +0 -401
  83. package/src/cli/runtime.ts +0 -86
  84. package/src/cli/sync-from-mcp.ts +0 -563
  85. package/src/cli/test.ts +0 -134
  86. package/src/compatibility/matrix.ts +0 -149
  87. package/src/config/define.ts +0 -20
  88. package/src/config/load.ts +0 -74
  89. package/src/generators/amp/index.ts +0 -63
  90. package/src/generators/base.ts +0 -188
  91. package/src/generators/claude-code/index.ts +0 -29
  92. package/src/generators/cline/index.ts +0 -35
  93. package/src/generators/codex/index.ts +0 -120
  94. package/src/generators/cursor/index.ts +0 -158
  95. package/src/generators/gemini-cli/index.ts +0 -83
  96. package/src/generators/github-copilot/index.ts +0 -32
  97. package/src/generators/hooks-warning.ts +0 -51
  98. package/src/generators/index.ts +0 -71
  99. package/src/generators/opencode/index.ts +0 -526
  100. package/src/generators/openhands/index.ts +0 -32
  101. package/src/generators/roo-code/index.ts +0 -35
  102. package/src/generators/shared/claude-family.ts +0 -215
  103. package/src/generators/warp/index.ts +0 -32
  104. package/src/hook-events.ts +0 -33
  105. package/src/index.ts +0 -23
  106. package/src/mcp/introspect.ts +0 -834
  107. package/src/permissions.ts +0 -258
  108. package/src/schema.ts +0 -312
  109. package/src/user-config.ts +0 -177
  110. package/src/validation/platform-rules.ts +0 -565
package/README.md CHANGED
@@ -1,573 +1,168 @@
1
1
  # pluxx
2
2
 
3
- **Build AI agent plugins once. Ship them everywhere.**
3
+ **The cross-host compiler for MCP-backed plugins.**
4
4
 
5
- pluxx generates native plugin packages for Claude Code, Cursor, Codex, and OpenCode from a single config file. One source of truth — platform-specific outputs with the right manifests, rules, install scripts, hook handling, and MCP config when your plugin needs it.
5
+ Import a raw MCP or an existing host-native plugin, keep one maintained source project, and compile native outputs for **Claude Code, Cursor, Codex, and OpenCode**.
6
6
 
7
- The product scope is intentionally tight:
7
+ Pluxx is the authoring, maintenance, and compilation layer for MCP teams that want one source of truth instead of separate per-host plugin repos.
8
8
 
9
- - Pluxx owns the common cross-host plugin-authoring primitives
10
- - Pluxx does not try to model every host-specific extension feature yet
9
+ - Docs: [docs.pluxx.dev](https://docs.pluxx.dev/)
10
+ - Website: [pluxx.dev](https://pluxx.dev/)
11
11
 
12
- pluxx is Bun-first today. Use `bunx` or run it from a Bun workspace. The npm package includes a small launcher for global installs, but it still requires Bun at runtime.
12
+ ## Why Pluxx
13
13
 
14
- ```bash
15
- bunx pluxx build
16
- ```
17
-
18
- ```
19
- dist/
20
- claude-code/ .claude-plugin/plugin.json, .mcp.json, CLAUDE.md, hooks/hooks.json, skills
21
- cursor/ .cursor-plugin/plugin.json, mcp.json, hooks/hooks.json, AGENTS.md, rules/
22
- codex/ .codex-plugin/plugin.json, .mcp.json, AGENTS.md, interface metadata
23
- ```
24
-
25
- ## Platform Support
26
-
27
- | Platform | Status | Validated |
28
- |----------|--------|-----------|
29
- | **Claude Code** | Primary | `claude plugin validate` PASSED |
30
- | **Cursor** | Primary | Docs-audited, hooks + rules covered in lint |
31
- | **Codex** | Primary | Docs-audited, plugin packaging aligned; hooks remain external Codex config |
32
- | **OpenCode** | Primary | Generates JS/TS wrapper, active docs-parity work |
33
- | GitHub Copilot | Beta | Reuses Claude Code format (confirmed compatible) |
34
- | OpenHands | Beta | Generates .plugin/ manifest, needs live testing |
35
- | Warp | Beta | Generates skills + AGENTS.md |
36
- | Gemini CLI | Beta | Generates gemini-extension.json |
37
- | Roo Code | Beta | Generates .roorules + skills |
38
- | Cline | Beta | Generates .clinerules + skills |
39
- | AMP | Beta | Generates AGENT.md + skills |
40
-
41
- **Primary** = first-class launch target, actively maintained.
42
- **Beta** = generated, but less validated against live tool behavior.
43
-
44
- The mechanically generated source of truth for support and verification is [docs/compatibility.md](./docs/compatibility.md).
45
-
46
- If you want the operational version of the docs, start with the [Practical handbook](./docs/practical-handbook.md).
47
- If you want the explicit authoring walkthrough, use [Create a Pluxx plugin](./docs/create-a-pluxx-plugin.md).
48
- If you want the meta guide for using Pluxx *inside* Claude/Codex/Cursor/OpenCode, use [Use Pluxx in host agents](./docs/use-pluxx-in-host-agents.md).
49
- If you want the tightened product scope for what Pluxx should model first, use [Core primitives](./docs/core-primitives.md).
50
- If you want the current execution queue with milestones, dependencies, and delegated subtasks, use [Roadmap](./docs/roadmap.md).
51
- If you want the implementation target for release orchestration, use [publish v1 contract](./docs/publish-v1-contract.md).
52
- If you are planning marketplace-aware release flows, use [Marketplace submission prep](./docs/marketplace-submission-prep.md).
53
-
54
- ## Why?
14
+ Every host has different plugin contracts and different places to express the same intent:
55
15
 
56
- Tools like `npx skills` install SKILL.md files across agents. That covers **skills**.
16
+ - manifests
17
+ - instructions and rules
18
+ - hook surfaces
19
+ - agents and subagents
20
+ - permission and approval controls
21
+ - MCP auth wiring
22
+ - brand and packaging metadata
57
23
 
58
- But a plugin is more than skills. A plugin bundles:
24
+ Without Pluxx, those details drift across multiple repos. With Pluxx, you keep one source project and compile honest host-native outputs.
59
25
 
60
- | Component | What pluxx handles |
61
- |-----------|---------------------|
62
- | **Manifests** | `.claude-plugin/plugin.json` vs `.cursor-plugin/plugin.json` vs `.codex-plugin/plugin.json` |
63
- | **MCP auth** | Claude Code uses `headers`, Codex uses `bearer_token_env_var` plus `env_http_headers` / `http_headers`, Cursor uses Claude Desktop format |
64
- | **Hooks** | Different event names, different JSON schemas, and in Codex's case a separate runtime config path |
65
- | **Rules** | `CLAUDE.md` vs `rules/*.mdc` vs `AGENTS.md` |
66
- | **Brand metadata** | Codex has icons, colors, screenshots, default prompts. Others don't. |
67
- | **Subagents** | Different formats per platform |
26
+ Pluxx is built around an explicit compiler model:
68
27
 
69
- Without pluxx you maintain separate copies for each platform. With pluxx you maintain one.
28
+ - `preserve` when a primitive maps cleanly to a host-native surface
29
+ - `translate` when the same intent belongs in a different host surface
30
+ - `degrade` when a host only supports a weaker equivalent
31
+ - `drop` when the host has no truthful native equivalent
70
32
 
71
- That value exists even if your plugin has no MCP at all. If you are hand-authoring skills, instructions, hooks, commands, or brand metadata, Pluxx still gives you one maintainable cross-host plugin project.
33
+ That keeps the cross-host story explicit instead of pretending every platform works the same way.
72
34
 
73
- The sharpest launch wedge is still MCP-first authoring: start from an existing MCP server, generate a maintainable plugin scaffold, then keep shipping from one config.
35
+ ## Platform Focus
74
36
 
75
- ## Core Primitives
37
+ Pluxx is currently centered on the core four:
76
38
 
77
- Pluxx treats these as the canonical authoring model:
39
+ - Claude Code
40
+ - Cursor
41
+ - Codex
42
+ - OpenCode
78
43
 
79
- - `skills`
80
- - `instructions`
81
- - `mcp`
82
- - `userConfig`
83
- - `commands`
84
- - `agents`
85
- - `hooks`
86
- - `permissions`
87
- - `brand`
88
- - `assets/scripts`
89
- - `taxonomy`
44
+ Other targets still exist as generated secondary/beta outputs, but the product and docs are intentionally optimized around the core four.
90
45
 
91
- These are the primitives that show up repeatedly in real plugins and real host integrations.
92
-
93
- ## What Pluxx Does Not Model Yet
94
-
95
- These features exist in one or more hosts, but they are not the current product center:
96
-
97
- - `outputStyles`
98
- - `lspServers`
99
- - `bin/` executables
100
- - `monitors`
101
- - `channels`
102
- - `apps` abstraction
103
- - plugin data-dir abstraction
104
- - statuslines
105
- - themes / keybindings
106
- - sandbox or other user/admin runtime policy
107
-
108
- Pluxx should document these and revisit them later, but it should not expand the core mental model around them yet.
109
-
110
- When you scaffold from an MCP server, pluxx now drafts workflow-oriented skills from the discovered tools so the first pass is closer to a usable plugin.
111
-
112
- The next layer is `Agent` mode: Pluxx prepares the scaffold, context pack, and prompt pack; Claude Code or Codex does the semantic refinement. The product direction is documented in [docs/agent-mode.md](./docs/agent-mode.md).
46
+ For the detailed compatibility and verification matrix, see [docs/compatibility.md](./docs/compatibility.md).
113
47
 
114
48
  ## Quick Start
115
49
 
116
50
  ```bash
117
- # Preferred: run via bunx
51
+ npx @orchid-labs/pluxx init --from-mcp https://example.com/mcp --name my-plugin --yes
118
52
 
119
- # Start a plugin by hand
120
- bunx pluxx init my-plugin
121
53
  cd my-plugin
122
- # Edit pluxx.config.ts, add skills in ./skills/, then build
123
-
124
- # Or scaffold directly from an MCP server
125
- bunx pluxx init --from-mcp https://example.com/mcp
126
-
127
- # Legacy SSE MCP import
128
- bunx pluxx init --from-mcp https://example.com/sse --transport sse
129
-
130
- # Local stdio MCP import
131
- bunx pluxx init --from-mcp "npx -y @acme/mcp"
132
-
133
- # pluxx will introspect the server and draft grouped skills like
134
- # account-research, contact-discovery, hiring-signals, or technographics
135
-
136
- # Headless / CI-friendly import
137
- bunx pluxx init --from-mcp https://example.com/mcp --yes --name acme --display-name "Acme" --author "Acme" --targets claude-code,codex --grouping workflow --hooks safe --json
138
-
139
- # Remote MCPs that use custom header auth
140
- bunx pluxx init --from-mcp https://mcp.playkit.sh/mcp --yes --auth-env PLAYKIT_API_KEY --auth-type header --auth-header X-API-Key --auth-template '${value}'
141
-
142
- # OAuth-first MCPs: complete provider OAuth first, then pass the resulting token env var
143
- bunx pluxx init --from-mcp https://example.com/mcp --yes --auth-env OAUTH_ACCESS_TOKEN --auth-type bearer
144
-
145
- # Inspect the generated project without mutating files
146
- bunx pluxx doctor
147
- bunx pluxx init --from-mcp https://example.com/mcp --yes --dry-run
148
-
149
- # Refresh MCP-derived files later while preserving the custom sections
150
- bunx pluxx sync --json
151
-
152
- # Prepare an agent-facing context pack and prompt pack
153
- bunx pluxx agent prepare
154
- bunx pluxx agent prompt taxonomy
155
-
156
- # Or run the full import -> refine -> verify path in one shot
157
- bunx pluxx autopilot --from-mcp https://example.com/mcp --runner codex --mode quick --yes
158
- bunx pluxx autopilot --from-mcp https://example.com/mcp --runner codex --mode standard --yes --name acme --display-name "Acme" --author "Acme"
159
- bunx pluxx autopilot --from-mcp https://example.com/mcp --runner codex --mode thorough --yes --verbose-runner
160
-
161
- # Or let Claude/Cursor/OpenCode/Codex consume the pack headlessly
162
- bunx pluxx agent run taxonomy --runner claude
163
- bunx pluxx agent run taxonomy --runner cursor
164
- bunx pluxx agent run taxonomy --runner codex
165
- bunx pluxx agent run review --runner opencode --attach http://localhost:4096 --no-verify
166
-
167
- # Validate, build, and smoke-test the generated plugin
168
- bunx pluxx lint
169
- bunx pluxx build
170
- bunx pluxx test
54
+ npx @orchid-labs/pluxx doctor
55
+ npx @orchid-labs/pluxx lint
56
+ npx @orchid-labs/pluxx build
57
+ npx @orchid-labs/pluxx test
171
58
  ```
172
59
 
173
- `--attach` is only supported for the `opencode` runner.
174
-
175
- Autopilot modes:
176
-
177
- - `quick`: deterministic scaffold first, and only a taxonomy pass when MCP metadata warnings make it necessary
178
- - `standard`: balanced default; only runs the expensive passes when quality signals or extra docs/context justify them
179
- - `thorough`: always runs taxonomy, instructions, and review before verification
180
-
181
- ## Product Boundary And Lifecycle
182
-
183
- Pluxx is for teams that want one maintained plugin source of truth across hosts.
60
+ Common output shape:
184
61
 
185
- The best fit today is MCP developers and teams shipping MCP-backed plugins, because MCP import, auth translation, and sync create the most cross-host pain. But hand-authored plugins are still a valid use case.
186
-
187
- Pluxx owns:
188
-
189
- - plugin authoring scaffold, whether imported from MCP or authored manually
190
- - validation (`lint`, `doctor`, `test`)
191
- - platform bundle generation (`build`)
192
- - local installation for testing (`install`)
193
- - ongoing MCP-to-plugin maintenance (`sync`) for MCP-derived projects
194
-
195
- Pluxx does not own:
196
-
197
- - deploying or hosting your MCP backend service
198
- - running your production MCP infrastructure
199
-
200
- The normal lifecycle is:
201
-
202
- 1. Start from an MCP import or a hand-authored plugin source repo.
203
- 2. Refine the source project.
204
- 3. Validate/build/install locally.
205
- 4. If the plugin is MCP-backed, repoint sync to the deployed HTTP/SSE MCP when production is ready.
206
- 5. Keep the same plugin repo as the long-term source of truth.
207
-
208
- Example local-to-production transition:
209
-
210
- ```bash
211
- # Local development MCP
212
- bunx pluxx init --from-mcp "npx -y @acme/mcp"
213
-
214
- # Later, after your MCP backend is deployed
215
- bunx pluxx sync --from-mcp https://mcp.acme.com/mcp
62
+ ```text
63
+ dist/
64
+ claude-code/
65
+ cursor/
66
+ codex/
67
+ opencode/
216
68
  ```
217
69
 
218
- Publish/distribution today is repo-first:
219
-
220
- 1. Commit the generated plugin source repo (`pluxx.config.ts`, `skills/`, `INSTRUCTIONS.md`, `.pluxx/mcp.json`).
221
- 2. Build platform bundles with `bunx pluxx build`.
222
- 3. Distribute those bundles through your target channels (internal repo, releases, or platform-specific publish paths).
223
-
224
- Pluxx is the distribution and maintenance layer for plugin artifacts; MCP service deployment remains your responsibility.
225
-
226
- Generated MCP skill files include deterministic example requests derived from tool names and required inputs, so the first scaffold is useful before any AI refinement.
227
-
228
- Agent Mode stays file-first: Pluxx writes `.pluxx/agent/context.md`, `.pluxx/agent/plan.json`, and the prompt packs, then optional runner adapters can hand those files to `claude`, `opencode`, or `codex` in headless mode. Durable project-level prompt and context customization now lives in `pluxx.agent.md`, so users do not need to edit generated `.pluxx/agent/*.md` files directly.
229
- Runner output is summarized by default for `pluxx agent run` and `pluxx autopilot`; use `--verbose-runner` when you want full headless runner streaming.
230
-
231
- The dogfood coverage matrix across messy metadata, local stdio, OAuth-first servers, and production auth patterns is documented in [docs/mcp-dogfood-matrix.md](./docs/mcp-dogfood-matrix.md).
232
-
233
- For dogfooding inside Codex, this repo also ships a local plugin/skill pack at [plugins/pluxx](/Users/brandonguerrero/Documents/Orchid Automation/Orchid Labs/pluxx/plugins/pluxx) with focused skills for import, taxonomy refinement, instructions, review, and sync.
234
- There is now also a first-class self-hosting source project at [example/pluxx](/Users/brandonguerrero/Documents/Orchid Automation/Orchid Labs/pluxx/example/pluxx) that uses one Pluxx config to generate Claude Code, Cursor, Codex, and OpenCode outputs for the Pluxx plugin itself.
70
+ For local stdio MCPs, pass the real executable command, not just the npm package name. The bin name can differ from the package name.
235
71
 
236
72
  ```bash
237
- # Optional: global install still shells out to Bun
238
- npm install -g pluxx
239
- pluxx init my-plugin
240
-
241
- # Scaffold a new plugin
242
- cd my-plugin
243
-
244
- # Edit pluxx.config.ts, create skills in ./skills/
245
-
246
- # Build for all platforms
247
- bunx pluxx build
248
-
249
- # Lint against all platform rules (47 checks)
250
- bunx pluxx lint
251
-
252
- # Diagnose local runtime + config health
253
- bunx pluxx doctor
254
-
255
- # Run config, lint, build, and smoke checks together
256
- bunx pluxx test
257
-
258
- # Build for specific platforms
259
- bunx pluxx build --target claude-code cursor codex opencode
260
-
261
- # Validate your config
262
- bunx pluxx validate
73
+ npx @orchid-labs/pluxx init --from-mcp "npx -y -p @acme/mcp acme-mcp" --yes
263
74
  ```
264
75
 
265
- ## Config
266
-
267
- ```typescript
268
- // pluxx.config.ts
269
- import { definePlugin } from 'pluxx'
270
-
271
- export default definePlugin({
272
- name: 'my-plugin',
273
- version: '1.0.0',
274
- description: 'What your plugin does',
275
- author: { name: 'Your Name' },
276
-
277
- // Skills (Agent Skills standard — shared across all platforms)
278
- skills: './skills/',
279
-
280
- // MCP servers (auth format auto-translated per platform)
281
- mcp: {
282
- 'my-server': {
283
- url: 'https://my-server.com/mcp',
284
- auth: {
285
- type: 'bearer',
286
- envVar: 'MY_API_KEY',
287
- },
288
- },
289
- },
290
-
291
- // Hooks (generated where the platform supports plugin-packaged hooks;
292
- // Codex currently keeps hook config in .codex/hooks.json outside plugin bundles)
293
- hooks: {
294
- sessionStart: [{
295
- command: '${PLUGIN_ROOT}/scripts/setup.sh',
296
- }],
297
- },
298
-
299
- // Instructions (generates CLAUDE.md, AGENTS.md, or .mdc rules)
300
- instructions: './INSTRUCTIONS.md',
301
-
302
- // Brand (used by platforms that support rich metadata)
303
- brand: {
304
- displayName: 'My Plugin',
305
- color: '#3B82F6',
306
- icon: './assets/icon.svg',
307
- defaultPrompts: ['Try my plugin with this prompt'],
308
- },
309
-
310
- // Target platforms
311
- targets: ['claude-code', 'cursor', 'codex', 'opencode'],
312
- })
313
- ```
76
+ ## Command Cheat Sheet
314
77
 
315
- ## What Gets Generated
78
+ ```text
79
+ Need a new project from an MCP?
80
+ pluxx init --from-mcp <source> --yes
316
81
 
317
- ### MCP Config Translation
82
+ Need the all-in-one path?
83
+ pluxx autopilot --from-mcp <source> --runner <runner>
318
84
 
319
- You write one auth config. pluxx generates the correct format for each platform:
85
+ Need deterministic checks?
86
+ pluxx doctor
87
+ pluxx lint
88
+ pluxx eval
89
+ pluxx build
90
+ pluxx test
320
91
 
321
- ```typescript
322
- // You write:
323
- mcp: {
324
- server: {
325
- url: 'https://api.example.com/mcp',
326
- auth: { type: 'bearer', envVar: 'API_KEY' },
327
- },
328
- }
329
- ```
92
+ Need local installs too?
93
+ pluxx build --install
94
+ pluxx test --install
95
+ pluxx uninstall
330
96
 
331
- ```jsonc
332
- // Claude Code gets:
333
- { "headers": { "Authorization": "Bearer ${API_KEY}" } }
97
+ Need agent refinement?
98
+ pluxx agent prepare [--website <url>] [--docs <url>]
99
+ pluxx agent run taxonomy --runner <runner>
100
+ pluxx agent run instructions --runner <runner>
101
+ pluxx agent run review --runner <runner>
334
102
 
335
- // Codex gets:
336
- {
337
- "env_http_headers": {
338
- "X-API-Key": "API_KEY"
339
- }
340
- }
103
+ Need to import an old host-native plugin?
104
+ pluxx migrate <path>
341
105
 
342
- // Cursor gets:
343
- { "headers": { "Authorization": "Bearer ${API_KEY}" } }
344
- ```
106
+ Need to inspect a shipped bundle?
107
+ pluxx doctor --consumer <bundle>
345
108
 
346
- ### Plugin Manifests
347
-
348
- Each platform gets its native manifest format:
349
-
350
- - **Claude Code**: `.claude-plugin/plugin.json` with skills, commands paths
351
- - **Cursor**: `.cursor-plugin/plugin.json` with explicit `rules/`, `hooks/hooks.json`, and `mcp.json` component paths
352
- - **Codex**: `.codex-plugin/plugin.json` with full `interface` block (brand color, icons, screenshots, default prompts, capabilities) plus external hooks via `.codex/hooks.json`
353
- - **OpenCode**: npm package + JS/TS plugin wrapper
354
-
355
- ### Instructions to Platform-Native Rules
356
-
357
- Your single `INSTRUCTIONS.md` becomes:
358
- - `CLAUDE.md` for Claude Code
359
- - `AGENTS.md` for Codex and Cursor
360
- - `.mdc` rule files in `rules/` for Cursor (with frontmatter) when you specify rules in platform overrides
361
-
362
- ### 47 Lint Checks
363
-
364
- `pluxx lint` catches platform-specific gotchas before you ship:
365
-
366
- - Codex rejects SKILL.md descriptions over 1024 characters
367
- - Claude Code silently truncates descriptions at 250 characters
368
- - Cursor and Cline require skill names to match their directory names
369
- - Codex allows max 3 default prompts, 128 chars each
370
- - Claude Code hook events must be PascalCase (26 valid events)
371
- - Manifest paths must start with `./` and cannot contain `../`
372
- - Plugin directories must be at root, not inside `.claude-plugin/`
373
- - Version must follow semver format
374
- - And 39 more checks across all platforms
375
-
376
- ### Read-Only Diagnostics And Verification
377
-
378
- - `pluxx doctor` checks Bun/runtime health, config loadability, configured paths, MCP auth/transport shape, scaffold metadata, and install trust advisories.
379
- - `pluxx test` runs the default verification stack for a plugin project: config load, lint, build, and generated-output smoke checks.
380
- - `--json` is available for machine-readable output on `init --from-mcp`, `sync`, `doctor`, `lint`, `build`, `install --dry-run`, and `test`.
381
- - `--dry-run` previews file writes for `init --from-mcp` and `sync`, install paths for `install`, and output targets for `build`.
382
-
383
- ### Platform Overrides
384
-
385
- For the 10% of cases where platforms diverge:
386
-
387
- ```typescript
388
- platforms: {
389
- 'claude-code': {
390
- skillDefaults: { effort: 'high' },
391
- },
392
- cursor: {
393
- rules: [{
394
- description: 'My conventions',
395
- alwaysApply: false,
396
- }],
397
- },
398
- codex: {
399
- interface: {
400
- capabilities: ['Interactive', 'Write'],
401
- privacyPolicyURL: 'https://example.com/privacy',
402
- },
403
- },
404
- }
405
- ```
406
-
407
- ## Real-World Examples
408
-
409
- ### Megamind (client intelligence plugin)
109
+ Need deterministic MCP replay?
110
+ pluxx mcp proxy --from-mcp <source> --record tape.json
111
+ pluxx mcp proxy --replay tape.json
410
112
 
411
- The [example/megamind](./example/megamind) directory contains a full plugin that was previously hand-maintained as two separate copies. With pluxx, one config generates outputs for all platforms.
412
-
413
- ```bash
414
- cd example/megamind
415
- bunx pluxx build
113
+ Need to refresh from the MCP later?
114
+ pluxx sync
416
115
  ```
417
116
 
418
- ### Prospeo (sales intelligence MCP)
117
+ Full docs tree:
419
118
 
420
- The [examples/prospeo-mcp](./examples/prospeo-mcp) directory wraps a real MCP server into a multi-platform plugin with 4 skills:
119
+ - [docs.pluxx.dev/getting-started/command-decision-tree](https://docs.pluxx.dev/getting-started/command-decision-tree)
421
120
 
422
- ```bash
423
- cd examples/prospeo-mcp
424
- bunx pluxx build # 52 files across 7 platforms
425
- bunx pluxx lint # Catches real platform gotchas
426
- ```
427
-
428
- ## Testing Locally
429
-
430
- ```bash
431
- # Check project health before generating anything
432
- bunx pluxx doctor
433
-
434
- # Build and install to Claude Code
435
- bunx pluxx build
436
- bunx pluxx install --target claude-code
437
-
438
- # Run the full plugin verification contract
439
- bunx pluxx test
440
-
441
- # Validate with Claude Code's own validator
442
- claude plugin validate ~/.claude/plugins/my-plugin
443
- # ✓ Validation passed
444
- ```
445
-
446
- ## CI / Automation
447
-
448
- Pluxx now ships a reusable GitHub workflow for plugin repos:
121
+ ## Core Commands
449
122
 
450
- ```yaml
451
- name: Plugin Check
123
+ Pluxx includes more than scaffold generation:
452
124
 
453
- on:
454
- pull_request:
455
- push:
456
- branches: [main]
125
+ - `pluxx eval` checks scaffold and prompt-pack quality
126
+ - `pluxx migrate <path>` imports an existing host-native plugin into a Pluxx project
127
+ - `pluxx doctor --consumer <bundle>` inspects built or installed plugin bundles from the user side
128
+ - `pluxx mcp proxy --record` and `--replay` give you deterministic MCP tapes for debugging and CI
457
129
 
458
- jobs:
459
- verify:
460
- uses: orchidautomation/pluxx/.github/workflows/pluxx-plugin-check.yml@main
461
- with:
462
- working-directory: .
463
- pluxx-version: latest
464
- ```
465
-
466
- For headless local automation, prefer:
467
-
468
- ```bash
469
- bunx pluxx init --from-mcp https://example.com/mcp --yes --json
470
- bunx pluxx sync --dry-run --json
471
- bunx pluxx test --json
472
- ```
130
+ ## Authoring Model
473
131
 
474
- See [docs/getting-started.md](./docs/getting-started.md) for the full getting-started walkthrough, including the MCP-first path.
132
+ Pluxx is intentionally opinionated around a compact cross-host model:
475
133
 
476
- ## Hook Trust Model
134
+ - skills
135
+ - instructions
136
+ - mcp
137
+ - commands
138
+ - hooks
139
+ - permissions
140
+ - userConfig
141
+ - agents
142
+ - brand and assets
143
+ - taxonomy
477
144
 
478
- Hook commands are shell commands that execute on your machine when hook events fire. If you install a third-party plugin with hooks, you are trusting that plugin author with local command execution.
145
+ Pluxx owns the deterministic scaffold, validation, and host compilation layer. Your host coding agent can refine taxonomy, instructions, and examples without breaking the structure.
479
146
 
480
- `pluxx install` now warns when the plugin config contains command hooks and prints each event/command pair before install proceeds.
147
+ ## Install And Runtime Notes
481
148
 
482
- Use `--trust` to bypass the confirmation prompt (useful in CI/non-interactive environments):
149
+ - npm package: `@orchid-labs/pluxx`
150
+ - preferred invocation: `npx @orchid-labs/pluxx ...`
151
+ - global install also works: `npm install -g @orchid-labs/pluxx`
152
+ - published CLI runtime: Node `>=18`
153
+ - source builds and maintainer workflows also run on Node `>=18`
483
154
 
484
- ```bash
485
- bunx pluxx install --trust
486
- ```
487
-
488
- ## CLI Commands
489
-
490
- | Command | What it does |
491
- |---------|-------------|
492
- | `pluxx init` | Interactive scaffold for a new plugin or `--from-mcp` import |
493
- | `pluxx doctor` | Read-only runtime, config, MCP, and trust diagnostics |
494
- | `pluxx build` | Generate plugin packages for all target platforms |
495
- | `pluxx lint` | 47 checks against all platform rules |
496
- | `pluxx test` | Run config, lint, build, and smoke checks together |
497
- | `pluxx sync` | Refresh MCP-derived scaffold files while preserving custom sections |
498
- | `pluxx validate` | Validate your config schema |
499
- | `pluxx install` | Symlink built plugins for local testing (prompts when hook commands exist) |
500
- | `pluxx install --trust` | Bypass hook trust confirmation |
501
- | `pluxx uninstall` | Remove symlinked plugins |
502
- | `pluxx dev` | Watch mode with auto-rebuild on file changes |
503
- | `pluxx migrate <path>` | Import an existing single-platform plugin |
504
-
505
- ## How It Works
506
-
507
- ```
508
- pluxx.config.ts <- You define your plugin once
509
- |
510
- v
511
- +---------+
512
- | Parse | Zod schema validation
513
- +----+----+
514
- |
515
- v
516
- +--------+
517
- | Lint | 47 platform-specific checks
518
- +----+---+
519
- |
520
- v
521
- +----------+
522
- | Generate | Platform-specific generators
523
- +-+--+--+--+
524
- | | |
525
- v v v
526
- Claude Cursor Codex + 8 beta platforms
527
- Code
528
- ```
155
+ ## Read Next
529
156
 
530
- ## Comparison
531
-
532
- | | pluxx | npx skills | SkillKit |
533
- |---|:---:|:---:|:---:|
534
- | Install skills to multiple agents | - | Yes | Yes |
535
- | Generate plugin manifests | Yes | - | - |
536
- | MCP config with auth translation | Yes | - | - |
537
- | Hook generation per platform | Yes | - | - |
538
- | Brand/interface metadata | Yes | - | - |
539
- | Rules/instructions generation | Yes | - | Translate only |
540
- | Cross-platform lint (47 checks) | Yes | - | - |
541
- | Subagent configs | Yes | - | - |
542
-
543
- **pluxx builds plugins. The others install skills.** They're complementary — use `npx skills` to distribute your skills, use pluxx to build the full plugin package.
544
-
545
- ## Built On
546
-
547
- - [Agent Skills](https://agentskills.io/) open standard (skills are pass-through, never modified)
548
- - [Zod](https://zod.dev/) for config validation with full TypeScript inference
549
- - [Bun](https://bun.sh/) for fast builds and TypeScript-native execution
550
-
551
- ## Roadmap
552
-
553
- - [x] Core schema with Zod validation
554
- - [x] Generators: Claude Code, Cursor, Codex (fully supported) + 8 beta platforms
555
- - [x] CLI: `build`, `validate`, `init`, `lint`, `install`, `uninstall`, `dev`, `migrate`
556
- - [x] MCP auth normalization across platforms
557
- - [x] 47 lint checks from official docs (Firecrawl-verified)
558
- - [x] Real-world examples (Megamind + Prospeo)
559
- - [ ] `pluxx lint --fix` — auto-apply suggested fixes
560
- - [x] `pluxx init --from-mcp` — auto-scaffold plugins from existing MCP servers
561
- - [x] `pluxx doctor` — project and runtime health checks
562
- - [x] `pluxx test` — verification command for plugin repos
563
- - [x] CI/CD GitHub Action / reusable workflow
564
- - [ ] canonical `userConfig` / install-time secret handling
565
- - [ ] canonical permissions model across primary targets
566
- - [ ] build-time target cap validation for primary targets
567
- - [ ] `pluxx publish` — push to platform marketplaces
568
- - [ ] `pluxx diff` — show what changed per platform
569
- - [ ] Plugin analytics dashboard
570
- - [ ] Promote beta platforms to fully supported
157
+ - [Getting started](./docs/getting-started.md)
158
+ - [Create a Pluxx plugin](./docs/create-a-pluxx-plugin.md)
159
+ - [How it works](./docs/how-it-works.md)
160
+ - [Use Pluxx in host agents](./docs/use-pluxx-in-host-agents.md)
161
+ - [Core primitives](./docs/core-primitives.md)
162
+ - [OSS wedge and trust layer](./docs/oss-wedge-and-trust-layer.md)
163
+ - [Compatibility matrix](./docs/compatibility.md)
164
+ - [First proof and demo asset pack](./docs/first-proof-demo-asset-pack.md)
165
+ - [Releasing Pluxx](./docs/releasing-pluxx.md)
571
166
 
572
167
  ## License
573
168