open-responses — Claude Code skill for the Open Responses spec
A skill for building and debugging Open Responses-compliant APIs: protocol, items, state machines, streaming events and the agentic loop.
npx skills add OpenRouterTeam/skills --skill open-responses -a claude-codeWhat open-responses does
Open Responses is an open specification for one HTTP protocol across LLM providers. This skill covers implementing, consuming and debugging an API that follows it. Requests go to POST /v1/responses with a bearer token; responses come back as JSON or as an SSE stream that ends with data: [DONE].
Three reference files carry the detail. references/protocol-and-items.md holds the HTTP protocol, item and content types, control parameters and error handling. references/state-machines-and-streaming.md has the state diagrams and the full event catalog. references/extensions.md explains custom items, custom events and vendor-prefixed schema extensions. Grep works for lookups — try function_call, tool_choice or previous_response_id.
The core protocol is stateless: multi-turn context is rebuilt through previous_response_id, and persistence is an optional provider extension. That distinction matters when you debug a server that seems to forget earlier turns. And remember this is the standard, not an SDK — whether your provider actually complies is a separate question.
What it helps with
- check a request and response shape against the spec
- trace the SSE event order for text or a tool call
- thread a multi-turn conversation with
previous_response_id - add a vendor extension without breaking the schema
- find the right item type or parameter in the reference files
Example prompts for the agent
- Check my
POST /v1/responseshandler against the Open Responses spec - Why does
response.output_item.donearrive earlier than I expect? Walk me through the state diagram - Show me how to link two requests with
previous_response_id
How to install open-responses
1Skills CLI (Vercel)
npx skills add OpenRouterTeam/skills --skill open-responses -a claude-code2Manually: put the files in place
~/.claude/skills/open-responses/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/open-responses/
1Skills CLI (Vercel)
npx skills add OpenRouterTeam/skills --skill open-responses -a codex2Manually: put the files in place
.agents/skills/open-responses/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add OpenRouterTeam/skills --skill open-responses -a cursor2Manually: put the files in place
.cursor/skills/open-responses/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install OpenRouterTeam/skills open-responses2Manually: put the files in place
.github/skills/open-responses/SKILL.md1Skills CLI (Vercel)
npx skills add OpenRouterTeam/skills --skill open-responses -a gemini-cli2Platform CLI
gemini skills install https://github.com/OpenRouterTeam/skills --path open-responsesManually: put the files in place
.devin/skills/open-responses/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add OpenRouterTeam/skills --skill open-responses -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 open-responses
How do I install open-responses in Claude?
Run npx skills add OpenRouterTeam/skills --skill open-responses -a claude-code. The skill file lands at ~/.claude/skills/open-responses/SKILL.md.
What does the open-responses skill do?
It helps you implement, consume and debug an Open Responses-compliant API: the protocol, item types, state machines, streaming events, tools and the agentic loop.
Is this an SDK or the specification itself?
The specification. Open Responses is provider-agnostic, so any provider can implement it — compliance depends on the API you call.