Borrowing it
Nothing to install: this file belongs to teabranch/open-responses-server. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/teabranch/open-responses-server/main/CLAUDE.mdgit clone --depth 1 https://github.com/teabranch/open-responses-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/teabranch/open-responses-server/claude-md)<a href="https://agentmods.dev/instructions/teabranch/open-responses-server/claude-md"><img src="https://agentmods.dev/badge/instructions/teabranch/open-responses-server/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/teabranch/open-responses-server/claude-md"><img src="https://agentmods.dev/badge/instructions/teabranch/open-responses-server/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.01233 | $0.01233 |
| Opus 5.5 | $0.00493 | $0.00493 |
| Sonnet 5.5 | $0.00247 | $0.00247 |
| Haiku 4.5 | $0.00123 | $0.00123 |
Grade A, and why
open-responses-server CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 106 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
What This Project Is
Open Responses Server is a proxy that translates OpenAI's Responses API into Chat Completions API calls, allowing any OpenAI-compatible backend (Ollama, vLLM, LiteLLM, Groq, etc.) to serve the Responses API. This enables tools like OpenAI's Codex CLI to work with self-hosted or third-party LLMs.
Build & Run
# Install from source (uses uv)
pip install uv
uv venv
uv pip install -e ".[dev]"
# Start the server
otc start
# Or directly:
uv run src/open_responses_server/cli.py start
Testing
# Run all tests (creates venv, installs deps, runs pytest + verification scripts)
./run_tests.sh
# Run tests manually (after activating venv)
python -m pytest tests/ -v
# Run a single test file
python -m pytest tests/test_server.py -v
# Run a specific test
python -m pytest tests/test_cli.py::TestCLI::test_start_server_imports -v
# Coverage
python -m pytest --cov=open_responses_server tests/
Linting
# The project uses flake8 + bandit + pylint
flake8 src/
pylint src/open_responses_server/
bandit -r src/
Architecture
The server is a FastAPI application with two main API paths that both proxy to a backend LLM:
Request flow:
Client (Codex, etc.)
|
v
api_controller.py -- FastAPI app with route definitions, CORS, startup/shutdown
|
+-- POST /responses --> responses_service.py
| Converts Responses API format to Chat Completions format,
| streams SSE events back in Responses API format
|
+-- POST /v1/chat/completions --> chat_completions_service.py
| Proxies with MCP tool injection and automatic tool-call loops
|
+-- GET/POST /{path} --> Generic proxy to backend (e.g. /v1/models)
Key modules:
api_controller.py- Route definitions.server_entrypoint.pyis the uvicorn entry point that imports fromapi_controller.responses_service.py- Converts Responses API requests to Chat Completions format (convert_responses_to_chat_completions), processes streaming Chat Completions responses back into Responses API SSE events (process_chat_completions_stream). Maintains in-memoryconversation_historykeyed byprevious_response_id.chat_completions_service.py- Handles/v1/chat/completionswith MCP tool injection. Implements a tool-call loop (up toMAX_TOOL_CALL_ITERATIONS) for both streaming and non-streaming modes.common/mcp_manager.py-MCPManagersingleton manages MCP server lifecycle (stdio, sse, streamable-http transports), tool discovery/caching with periodic refresh, and tool execution.MCPServerwraps individual server sessions.common/llm_client.py-LLMClientsingleton wrappinghttpx.AsyncClient, pointed atOPENAI_BASE_URL_INTERNAL.common/config.py- All configuration via environment variables (loaded from.envvia python-dotenv). Key vars:OPENAI_BASE_URL_INTERNAL,OPENAI_API_KEY,MCP_SERVERS_CONFIG_PATH,MAX_TOOL_CALL_ITERATIONS.models/responses_models.py- Pydantic models for Responses API request/response/streaming types.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 106 lines · 1,233 tokens per session scan A b3b78109f0fa
open-responses-server CLAUDE.md is an instructions file published in the GitHub repository teabranch/open-responses-server (184 stars, last pushed 6mo ago), licensed MIT. It adds 1,233 tokens to every session, about $0.0049 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
vscode copilot-instructions.md
Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).
deno copilot-instructions.md
Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.