Raw MCP in. Native plugin out.

Turn a raw MCP
into a native plugin.

Pluxx turns a barebones MCP into a workflow-driven plugin for Claude Code, Cursor, Codex, and OpenCode. Start with init, or use autopilot when you want the one-shot path.

Quick startnpx @orchid-labs/pluxx init --from-mcp https://example.com/mcp --yes
~/projects/acme · pluxx
$ npx @orchid-labs/pluxx init --from-mcp https://mcp.playkit.sh/mcp --yes

Importing MCP...
Discovered 24 tools and drafted 8 workflow skills

  pluxx.config.ts      source-of-truth plugin config
  dist/claude-code/    native Claude bundle
  dist/cursor/         native Cursor bundle
  dist/codex/          native Codex bundle
  dist/opencode/       native OpenCode wrapper

Ready.
The fix

One config. Four bundles.

pluxx.config.tssingle source
import { definePlugin } from "pluxx";

export default definePlugin({
  name: "acme-plugin",
  targets: ["claude-code", "cursor", "codex", "opencode"],
  mcp: {
    acme: {
      url: "https://api.acme.com/mcp",
      auth: { type: "header", envVar: "ACME_API_KEY" },
    },
  },
});
01

One config

Shared instructions, skills, and customization in one place.

02

Native bundles

Installable outputs for every supported host.

03

Agent-assisted edits

Coding agents refine the right parts, never the substrate.

04

Sync, don't fork

Pull MCP updates without losing your edits.

Coverage

Four agents. One source.

01Ready

Claude Code

Plugin, hooks, skills, MCP — generated.

02Ready

Cursor

Rules, hooks, plugin manifest, MCP.

03Ready

Codex

Rich brand metadata, prompts, packaging.

04Ready

OpenCode

Code-first plugin wrapper, no extra repo.

The drift

Same MCP. Four different shapes.

SurfaceClaude CodeCursorCodexOpenCode
Manifest.claude-plugin/plugin.json.cursor-plugin/plugin.json.codex-plugin/plugin.jsonpackage.json + wrapper
MCP authheadersheadersbearer_token_env_varenv validation
Hookshooks/hooks.jsonhooks/hooks.json.codex/hooks.jsonJS event handlers
RulesCLAUDE.mdrules/*.mdcAGENTS.mdconfig-driven
BrandBasicBasicRich metadataMinimal
Workflow

Five commands. Start to ship.

  1. 01pluxx init

    Import

    Point at any MCP. Pluxx drafts the source project.

  2. 02pluxx doctor

    Verify

    Check the environment and generated structure.

  3. 03pluxx agent

    Refine

    Hand context to a coding agent — safely.

  4. 04pluxx build

    Ship

    Emit native plugin bundles. Install locally.

  5. 05pluxx sync

    Sync

    Pull MCP updates. Keep your human edits.

Shipped now

Real authoring leverage. Not just bundle generation.

Pluxx now covers migration, evals, consumer diagnostics, and deterministic MCP replay so the whole authoring loop is easier to trust and support.

01pluxx eval

Measure scaffold quality

Catch weak instructions, taxonomy drift, and prompt-pack regressions before you ship.

02pluxx migrate

Pull older plugins forward

Import an existing host-native plugin into one maintained Pluxx source project instead of rewriting it by hand.

03doctor --consumer

Debug the installed bundle

Inspect the built or installed plugin from the end-user side when auth, env wiring, or host pickup looks broken.

04mcp proxy

Record and replay MCP traffic

Capture deterministic MCP tapes for local debugging and CI instead of chasing flaky live sessions.

Journal

Proof in public. Launch notes in the open.

The first post is the Exa clean-room example: a live public proof that one Pluxx source project can bundle a real MCP plus native workflows across the core four.

Field Note
·8 min read

We rebuilt Exa's research plugin once and shipped it to four hosts

Exa maintains a Claude Code plugin and a Cursor plugin and has no presence on Codex or OpenCode. We took their public MCP, rebuilt the workflow layer in one source project, and let Pluxx compile native installs for every host.

Live proof
  • Claude Code app
  • Cursor CLI
  • Codex Desktop
  • OpenCode CLI

Bring your MCP. Ship a real plugin.

Open source. MIT-licensed. Yours to fork.

Read docsnpx @orchid-labs/pluxx init --from-mcp https://example.com/mcp --yes