origin-api — Claude Code skill: features and installation
This skill points Origin API questions to relevant documentation and flags rules to check first. Use it when building an Origin App or handling API calls and webhooks.
npx skills add cursor/plugins --skill origin-api -a claude-codeWhat origin-api does
For a question about Origin, the skill uses llms.txt to find the relevant documentation section. It points to openapi.yaml for the API contract and recommends reading only the part that answers the question. Network access to the Origin docs is required.
It calls out practical checks for webhook handling: verify the signature against the raw request body, deduplicate by delivery ID, and return 2xx before processing. It also highlights differences between native repositories and GitHub mirrors, event subscriptions, and the scopes an app needs. The docs take precedence over remembered API details, so without network access the skill cannot check current guidance. For migrating a GitHub App, it names the separate port-github-app-to-origin skill.
What it helps with
- find the Origin API documentation for an operation
- check which scopes an app needs
- identify events that require a subscription
- review webhook signature and retry handling
- account for GitHub mirror restrictions
Example prompts for the agent
- Find the Origin API method for reading repository data and list its required scopes.
- Review my Origin webhook handler for signature verification, duplicate deliveries, and response order.
- Explain which API calls and events are restricted on a GitHub mirror.
How to install origin-api
1Skills CLI (Vercel)
npx skills add cursor/plugins --skill origin-api -a claude-code2Manually: put the files in place
~/.claude/skills/origin-api/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/origin-api/
1Skills CLI (Vercel)
npx skills add cursor/plugins --skill origin-api -a codex2Manually: put the files in place
.agents/skills/origin-api/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add cursor/plugins --skill origin-api -a cursor2Manually: put the files in place
.cursor/skills/origin-api/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install cursor/plugins origin-api2Manually: put the files in place
.github/skills/origin-api/SKILL.md1Skills CLI (Vercel)
npx skills add cursor/plugins --skill origin-api -a gemini-cli2Platform CLI
gemini skills install https://github.com/cursor/plugins --path origin-apps/skills/origin-apiManually: put the files in place
.devin/skills/origin-api/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add cursor/plugins --skill origin-api -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about origin-api
How do I install origin-api in Claude Code?
Run npx skills add cursor/plugins --skill origin-api -a claude-code. The skill file is at ~/.claude/skills/origin-api/SKILL.md.
What does origin-api do?
It directs Cursor Origin API questions to relevant documentation and highlights checks for apps, API calls, and webhook handling.
Does origin-api need network access?
Yes. It needs access to the Origin documentation at https://cursor.com/docs/api/origin/* while running.
Source text
SKILL.md · MIT
---
name: origin-api
description: >-
Routes questions about the Cursor Origin API to the right section of the
Origin docs and names the few rules to check first. Use when a task mentions
Origin, the Origin API, Origin Apps, or Origin webhooks, including creating
an Origin App, authenticating as one, calling Origin endpoints, or handling
Origin webhook deliveries.
license: MIT
compatibility: >-
Needs network access to https://cursor.com/docs/api/origin/* at run time.
---
# Origin API
The docs are the source of truth. Do not name an endpoint, scope, event slug,
header, or limit from memory. Where this file and the docs disagree, the docs
win.
The docs live under `https://cursor.com/docs/api/origin/`. `llms.txt` is
the index and links every section, endpoint, and webhook payload.
`openapi.yaml` is the contract, and "Endpoint reference" explains its
`x-origin-*` extensions. `llms-full.txt` is the whole reference in one file.
`changelog` says what moved. For one question, start at `llms.txt` and
fetch only the section that answers it. `llms-full.txt` and `openapi.yaml`
are each several hundred kilobytes, too large to read into context whole.
When you need all of them, as a porting brief does, save them locally if you
can, outside any repository you are working in, search them for the section
heading or annotation you need, and read only the matching part. Cite
`operationId`s and section names.
## Rules to check first
1. **Native or mirror.** A repository is either native (created on Origin)
or a GitHub mirror. On a native repository an installation has its full
scopes and every write. On a GitHub mirror, every event except
`repository.pushed` still arrives, every call beyond metadata and
contents reads returns `403`, and merging a pull request or changing the
default branch is not available ("Mirrored repositories", "Events").
2. **Subscribe.** Only `installation.*` events arrive without a subscription.
A missing subscription produces silence, not an error ("Events").
3. **Verify, dedupe, acknowledge.** Verify the signature over the raw body
before parsing, dedupe on the delivery ID, return `2xx`, then process
("Signature verification", "Retries", "Automatic disable"). Origin signs
a digest, which Standard Webhooks does not, so a generic verifier fails.
4. **Scopes from the spec.** Request the union of `x-origin-scopes.scopes`
over the operations the app calls ("Scopes").
5. **Opaque tokens and IDs.** Do not build or parse page tokens or IDs
("Pagination", "IDs").
One section name the index does not make obvious: what happens to a
check-run post that arrives out of order is under "Ordering writes".
Porting an existing GitHub App: use `port-github-app-to-origin` in this
plugin.
© cursor · MIT · cursor/plugins