OriginAIProduct specs for Claude Code, Cursor, and Codex

MCP & agent install

Login-first install for the Claude Code plugin, Cursor, Codex, Pi/Hermes, skills.sh, hosted MCP, and CI.

OriginAI offers three ways to connect an agent: a hosted MCP server, a Claude Code plugin (a local MCP bridge plus the skill), and CLI skill files for every major coding agent. All of them go through the same access-token API, with the same behavior — reads default to the latest release, and writes are guarded after your first publish.

Read this first: the auth model

WhoHow they authenticate
Humans (default)npx originai login~/.origin/settings.json
The Claude Code pluginLocal stdio MCP via npx originai mcp (reads your login store)
Skill / CLI agents (Codex, Pi, Hermes, OpenCode, skills.sh)The same login; agents call npx originai …
CI / remote-only MCP hostsORIGIN_TOKEN=oat_… (from Settings → Access tokens)

Don't treat "create an access token and export ORIGIN_TOKEN" as the default onboarding path — that's for CI and advanced setups. Create tokens only when you need them (see Access tokens), and never commit an oat_ value.

The public remote endpoint (advanced)

https://mcp.getoriginai.com
  • Transport: Streamable HTTP (MCP 2025-03-26).
  • Auth: Authorization: Bearer oat_….
  • The hostname is a Cloudflare reverse proxy, so clients never need to reach *.supabase.co.

The available tools

ToolPurpose
whoamiThe token owner and project count.
list_projectsYour projects and their latest release hash.
create_projectA new empty project (plan limits apply).
list_documentsThe file tree (default: the latest release).
get_documentOne file, with its content.
get_diffA unified diff between release hashes, optionally with full bodies.
grep_documents / find_documentsSearch content or file names.
write_document / delete_document / delete_documentsWorkspace writes; after a release these create or extend a Change Request (suggested: true + proposal_id). There is no create_change_request tool. Pass proposal_id / new_proposal to continue or open a CR. Optional require_suggest refuses direct writes with 409.
list_proposals / get_proposal / get_proposal_diff / describe_proposal / submit_proposal / commit_proposalChange-request loop. list_proposals includes decided_items[] with dismiss_reason and behind_latest when the CR is older than the latest release. describe_proposal records purpose + design rationale. Use get_proposal_diff when implementing a bound change request.
comment_proposal / list_proposal_comments / list_proposal_reviewsDiscuss a change request; read Ready / Not ready (agents never conclude).
sync_origin_jsonCompute the .origin.json pointer to write after implementing a published release. Write origin_json into the file — the tool does not touch the filesystem.
list_webhooks / create_webhook / delete_webhookOutbound release.published / proposal.decided / proposal.commented events.
validateValidate RPML (by source and/or file_id).
search_shots / get_shot / list_shot_facetsLayout-shot standards (IA + optional RPML). Call before generating a new screen.

Create a Change Request

Kernel names stay *_proposal. After a release:

  1. list_proposals with status: "all".
  2. validate, then write_document (first staged write creates the CR).
  3. describe_proposal — Issue (title, note) + Decisions/Changelog (rationale).
  4. submit_proposal. Never apply, dismiss, or record Ready / Not ready.

Prefer get_proposal_diff when implementing a change request, get_diff when implementing a published release. After implementing a published release, call sync_origin_json and write origin_json into .origin.json, or run npx originai sync. sync / sync_origin_json clears .origin.json proposal_id only after a new release hash exists.

Install by agent

npx originai login
/plugin marketplace add 21stware/originai-context
/plugin install origin@origin-claude-marketplace

For development inside the monorepo:

claude --plugin-dir /path/to/origin/packages/claude-plugin

Then link and verify:

npx originai link --project <project-id>
npx originai doctor

The plugin's .mcp.json runs a local MCP server:

{
  "mcpServers": {
    "origin": {
      "command": "npx",
      "args": ["-y", "originai", "mcp"]
    }
  }
}

There's no day-to-day export ORIGIN_TOKEN needed for Claude Code.

Cursor

npx originai login
npx originai link --project <project-id> --cursor --skill
npx originai mcp config --cursor

Paste the printed JSON into Cursor's MCP settings — the stdio bridge uses your login. A remote HTTP MCP with ORIGIN_TOKEN is optional, for automation.

OpenAI Codex

npx originai login
npx originai link --project <project-id> --codex --skill

Codex agents use the CLI via AGENTS.md and the skill. MCP is optional if your Codex host supports it.

Pi / Hermes / OpenCode (Agent Skills)

npx originai login
npx originai link --project <project-id> --skill

This writes .agents/skills/origin-product-spec-management/. Tools default to the CLI, with MCP optional.

skills.sh / Agent Skills / well-known

From GitHub (works with npx skills add):

npx skills add 21stware/originai-context
# the skill path in the repo is: skills/origin-product-spec-management/

From the site's well-known endpoint:

After installing the skill, agents still need to:

  1. npx originai login
  2. npx originai link --project <id> in the product repo.

The skill documents the MCP-first, CLI-fallback approach, and it embeds no tokens.

Claude Code — CLAUDE.md only (no plugin)

npx originai login
npx originai link --project <project-id> --claude-code --skill
# optional: npx originai mcp config --claude

Remote HTTP MCP (any client) — advanced

export ORIGIN_TOKEN=oat_…
{
  "mcpServers": {
    "origin": {
      "type": "http",
      "url": "https://mcp.getoriginai.com",
      "headers": {
        "Authorization": "Bearer ${ORIGIN_TOKEN}"
      }
    }
  }
}
npx originai link --project <project-id>

All instruction files at once

npx originai login
npx originai link --project <project-id> --all

CI

export ORIGIN_TOKEN=oat_…
npx originai get-diff
npx originai sync

Handy CLI helpers

npx originai login
npx originai doctor          # login + link + skill files + API
npx originai mcp             # stdio MCP server (the plugin default)
npx originai mcp config --cursor
npx originai install-help    # the full matrix

CLI vs MCP at a glance

OriginAI CLILocal originai mcpRemote HTTP MCP
Best forCodex / Pi / Hermes / CIThe Claude Code plugin, Cursor stdioRemote-only hosts
Authlogin or ORIGIN_TOKENSame as the CLI (login)Bearer ORIGIN_TOKEN
Sync pointersync updates release_hashsync_origin_json or CLI syncsync_origin_json or CLI sync
Skill / methodologylink --skillThe plugin bundles the skillOptional skill files

For maintainers (monorepo)

bun run --cwd packages/skills sync-assets
bun run claude-plugin:sync
bun run --cwd packages/claude-marketplace sync

The snippets' source of truth is packages/skills/src/install-snippets.ts, and the frontend tabs come from frontend/src/lib/agent-install.ts.

On this page