How Claude Agent SDK’s scores are calculated
The full audit trail, recomputed from the verdict data at build time through the same code that produced the leaderboard: verdict × quality × story weight per cell, cells sum to dimension scores, dimensions blend into the PA Score. Every number on the product page is reproducible from this page alone; for why the formula looks like this, see the methodology.
verdict factors: full ×1.0 · partial ×0.6 · disputed ×0.3 · none ×0.0 · n/a excluded from both sides · cell points = weight × quality × factor · cell max = weight × 10
PA Score38/100
Agent-ready 66.6 × 0.30 = 19.98
API quality 2.6 × 0.20 = 0.52
Openness 17.4 × 0.20 = 3.48
Built-in AI 60.4 × 0.15 = 9.06
Automation 33.8 × 0.15 = 5.07
(19.98 + 0.52 + 3.48 + 9.06 + 5.07) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 38.11 ÷ 1.00 = 38.1
Scores are stored to 1 decimal; the product page’s pills round to whole numbers for display. Each dimension below shows the stories, verdicts, and cited evidence behind its number.
Agent-ready66.6/100×0.30 of the PA blend
Outside-in: can YOUR agent reach and drive this product — API, MCP, CLI, headless runs, agent docs.
Point an agent at llms.txt or agent-oriented docsweight 2
2 (weight) × 9 (quality) × 1.0 (full) = 18.0 of 20 max
- [probe] https://code.claude.com/llms.txt“PROBE llms.txt: HTTP 200 at https://code.claude.com/llms.txt # Claude Code Docs > Official documentation for Claude Code, Anthropic's agentic coding tool available in the terminal,”
- [probe] https://code.claude.com/docs/en/agent-sdk/overview.md“PROBE docs-md: HTTP 200 at https://code.claude.com/docs/en/agent-sdk/overview.md > ## Documentation Index > Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt > Use this f”
- [probe] https://code.claude.com/docs/en/cli-reference“official CLI documented at https://code.claude.com/docs/en/cli-reference”
Run the product headlessly / in CI for automationweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hosting.md“Deploy the Agent SDK in production: subprocess architecture, session persistence, scaling, observability, and multi-tenant isolation for Docker, Kubernetes, and sandbox providers.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hosting.md“The Agent SDK spawns and supervises a claude CLI subprocess that owns a shell, a working directory, and session files on disk.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/quickstart.md“Use the Agent SDK to build an AI agent that reads your code, finds bugs, and fixes them, all without manual intervention.”
- [github] https://github.com/anthropics/claude-agent-sdk-python“The Claude Code CLI is automatically bundled with the package - no separate installation required! The SDK will use the bundled CLI by default.”
- [community] https://news.ycombinator.com/item?id=48125552“Damn. I just built an entire headless automated workflow around `claude -p`”
Plug MCP servers into this product so it can use their toolsweight 3
3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/mcp.md“With MCP, your agent can query databases, integrate with APIs like Slack and GitHub, and connect to other services without writing custom tool implementations.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/permissions.md“The Claude Agent SDK provides permission controls to manage how Claude uses tools. Use permission modes and rules to define what's allowed automatically, and the canUseTool callback to handle everything else at runtime.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/custom-tools.md“Custom tools extend the Agent SDK by letting you define your own functions that Claude can call during a conversation.”
Connect an agent via an official MCP serverweight 3
n/a — not applicable to this product: excluded from numerator and denominator
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Use an official CLIweight 2
2 (weight) × 7 (quality) × 1.0 (full) = 14.0 of 20 max
- [github] https://github.com/anthropics/claude-agent-sdk-python“The Claude Code CLI is automatically bundled with the package - no separate installation required! The SDK will use the bundled CLI by default.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hosting.md“The Agent SDK spawns and supervises a claude CLI subprocess that owns a shell, a working directory, and session files on disk.”
- [probe] https://code.claude.com/docs/en/cli-reference“official CLI documented at https://code.claude.com/docs/en/cli-reference”
- [community] https://news.ycombinator.com/item?id=48125552“Damn. I just built an entire headless automated workflow around `claude -p`”
- [community] https://news.ycombinator.com/item?id=48125552“There is no difference between claude -p and typing into their 'harness' in tmux. They want to make you pay for API which is subsidizing these plans... Forcing people to use their garbage harness — 0 observability, no extensibility and poor DX.”
- [community] https://news.ycombinator.com/item?id=48125552“I've been using claude -p with a harness called codelayer. Their [default] harness is completely garbage when it comes at displaying full details of tool calls and session management... pressing ctrl-o does not display any detail of messages above the scroll buffer. It also flashes and rescrolls like bonkers.”
Drive the product through a documented public APIweight 3
3 (weight) × 9 (quality) × 1.0 (full) = 27.0 of 30 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/overview“The Agent SDK gives you the same tools, agent loop, and context management that power Claude Code, programmable in Python and TypeScript.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hooks.md“Hooks are callback functions that run your code in response to agent events, like a tool being called, a session starting, or execution stopping.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/subagents.md“Subagents are separate agent instances that your main agent can spawn to handle focused subtasks. Use them to isolate context, run multiple analyses in parallel, and apply specialized instructions”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/mcp.md“With MCP, your agent can query databases, integrate with APIs like Slack and GitHub, and connect to other services without writing custom tool implementations.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/custom-tools.md“Custom tools extend the Agent SDK by letting you define your own functions that Claude can call during a conversation.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hosting.md“Deploy the Agent SDK in production: subprocess architecture, session persistence, scaling, observability, and multi-tenant isolation for Docker, Kubernetes, and sandbox providers.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/python.md“Use ClaudeSDKClient for interactive applications such as chat interfaces, or when the next action depends on Claude's response.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/migration-guide.md“Migrating from the OpenAI Agents SDK instead? The OpenAI Agents SDK migration recipe maps each primitive onto the Claude Agent SDK through a single worked example.”
- [github] https://github.com/anthropics/claude-agent-sdk-python“The Claude Code CLI is automatically bundled with the package - no separate installation required! The SDK will use the bundled CLI by default.”
- [community] https://news.ycombinator.com/item?id=48125552“Damn. I just built an entire headless automated workflow around `claude -p`”
Issue scoped/least-privilege API credentials for an agentweight 2
2 (weight) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/permissions.md“The Claude Agent SDK provides permission controls to manage how Claude uses tools. Use permission modes and rules to define what's allowed automatically, and the canUseTool callback to handle everything else at runtime.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/user-input.md“Pass a canUseTool callback in your query options. The callback fires whenever Claude needs user input, receiving the tool name and input as arguments”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/permissions.md“The Claude Agent SDK provides permission controls to manage how Claude uses tools.”
Build against official SDKsweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/overview“The Agent SDK gives you the same tools, agent loop, and context management that power Claude Code, programmable in Python and TypeScript.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/overview“Built-in tools | Read, write, edit files, run commands, and search the web”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/custom-tools.md“Custom tools extend the Agent SDK by letting you define your own functions that Claude can call during a conversation.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/python.md“Use ClaudeSDKClient for interactive applications such as chat interfaces, or when the next action depends on Claude's response.”
- [github] https://github.com/anthropics/claude-agent-sdk-python“The Claude Code CLI is automatically bundled with the package - no separate installation required! The SDK will use the bundled CLI by default.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/migration-guide.md“Migrating from the OpenAI Agents SDK instead? The OpenAI Agents SDK migration recipe maps each primitive onto the Claude Agent SDK through a single worked example.”
- [community] https://news.ycombinator.com/item?id=48125552“I've been using claude -p with a harness called codelayer. Their [default] harness is completely garbage when it comes at displaying full details of tool calls and session management... pressing ctrl-o does not display any detail of messages above the scroll buffer. It also flashes and rescrolls like bonkers.”
Subscribe to events via webhooksweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Agent-ready = 119.8 ÷ 180 × 100 = 66.6
API quality2.6/100×0.20 of the PA blend
The programmable surface once an agent is there — machine-readable spec, interactive docs, sandbox, versioning discipline.
Explore an interactive API reference with runnable examplesweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Download a machine-readable API spec (OpenAPI or equivalent)weight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Test against a sandbox environment without touching production dataweight 1
1 (weight) × 3 (quality) × 0.6 (partial) = 1.8 of 10 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hosting.md“Deploy the Agent SDK in production: subprocess architecture, session persistence, scaling, observability, and multi-tenant isolation for Docker, Kubernetes, and sandbox providers.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hooks.md“With hooks, you can: Block dangerous operations before they execute, like destructive shell commands or unauthorized file access”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/permissions.md“The Claude Agent SDK provides permission controls to manage how Claude uses tools. Use permission modes and rules to define what's allowed automatically, and the canUseTool callback to handle everything else at runtime.”
Rely on versioned APIs with a documented deprecation policyweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
API quality = 1.8 ÷ 70 × 100 = 2.6
Openness17.4/100×0.20 of the PA blend
Can you leave, inspect, or self-host — data export, open source, portability.
Do everything through the API that I can do in the UIweight 2
2 (weight) × 7 (quality) × 0.6 (partial) = 8.4 of 20 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/overview“The Agent SDK gives you the same tools, agent loop, and context management that power Claude Code, programmable in Python and TypeScript.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/claude-code-features.md“The Agent SDK is built on the same foundation as Claude Code, which means your SDK agents have access to the same filesystem-based features: project instructions (`CLAUDE.md` and rules), skills, hooks, and more.”
- [community] https://news.ycombinator.com/item?id=48125552“There is no difference between claude -p and typing into their 'harness' in tmux. They want to make you pay for API which is subsidizing these plans... Forcing people to use their garbage harness — 0 observability, no extensibility and poor DX.”
- [community] https://news.ycombinator.com/item?id=48125552“I've been using claude -p with a harness called codelayer. Their [default] harness is completely garbage when it comes at displaying full details of tool calls and session management... pressing ctrl-o does not display any detail of messages above the scroll buffer. It also flashes and rescrolls like bonkers.”
Export all of my data in open formats and leaveweight 3
3 (weight) × 5 (quality) × 0.6 (partial) = 9.0 of 30 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/sessions.md“A session is the conversation history the SDK accumulates while your agent works. ... The SDK writes it to disk automatically so you can return to it later.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/session-storage.md“A `SessionStore` adapter lets you mirror those transcripts to your own backend, such as an object store, a key-value store, or a database, so a session created on one host can be resumed on another host running from a matching working directory.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hosting.md“The Agent SDK spawns and supervises a claude CLI subprocess that owns a shell, a working directory, and session files on disk.”
Read the product's source under an open licenseweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
- [github] https://github.com/anthropics/claude-agent-sdk-python“The Claude Code CLI is automatically bundled with the package - no separate installation required! The SDK will use the bundled CLI by default.”
- [community] https://news.ycombinator.com/item?id=48125552“You can no longer use your Claude subscription with apps that use the Claude Agent SDK, e.g. claude -p, Conductor, T3code, etc.”
- [community] https://news.ycombinator.com/item?id=48125552“There is no difference between claude -p and typing into their 'harness' in tmux. They want to make you pay for API which is subsidizing these plans... Forcing people to use their garbage harness — 0 observability, no extensibility and poor DX.”
Self-host the core productweight 3
3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hosting.md“Deploy the Agent SDK in production: subprocess architecture, session persistence, scaling, observability, and multi-tenant isolation for Docker, Kubernetes, and sandbox providers.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hosting.md“The Agent SDK spawns and supervises a claude CLI subprocess that owns a shell, a working directory, and session files on disk.”
- [community] https://news.ycombinator.com/item?id=48125552“You can no longer use your Claude subscription with apps that use the Claude Agent SDK, e.g. claude -p, Conductor, T3code, etc.”
- [community] https://news.ycombinator.com/item?id=48125552“Currently the credit doesn't apply to interactive Claude Code, web/desktop/mobile apps, Claude Cowork, etc. Next month, interactive claude code will no longer be allowed [under the SDK plan].”
- [community] https://hn.algolia.com/api/v1/items/48600598“My frustration with Anthropic has been around the uncertainty of all of this. What constitutes fair usage, what can I play with and not risk being banned... now that's all been paused.”
Openness = 17.4 ÷ 100 × 100 = 17.4
Built-in AI60.4/100×0.15 of the PA blend
Inside-out: how agentic the product itself is for its users — built-in assistants, autonomous features.
Get AI-generated insights and suggestions from my data inside the productweight 2
2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max
- [claimed-docs] https://claude.com/blog/building-agents-with-the-claude-agent-sdk“Finance agents: Build agents that can understand your portfolio and goals, as well as help you evaluate investments by accessing external APIs, storing data and running code to make calculations.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/quickstart.md“Use the Agent SDK to build an AI agent that reads your code, finds bugs, and fixes them, all without manual intervention.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/subagents.md“Subagents are separate agent instances that your main agent can spawn to handle focused subtasks. Use them to isolate context, run multiple analyses in parallel, and apply specialized instructions”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/subagents.md“Subagents are separate agent instances that your main agent can spawn to handle focused subtasks.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/structured-outputs.md“Structured outputs let you define the exact shape of data you want back from an agent. ... you still get validated JSON matching your schema at the end.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/structured-outputs.md“Structured outputs let you define the exact shape of data you want back from an agent.”
Set up automations that run autonomously in the backgroundweight 2
2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hosting.md“Deploy the Agent SDK in production: subprocess architecture, session persistence, scaling, observability, and multi-tenant isolation for Docker, Kubernetes, and sandbox providers.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hosting.md“The Agent SDK spawns and supervises a claude CLI subprocess that owns a shell, a working directory, and session files on disk.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/streaming-vs-single-mode.md“Streaming input mode is the preferred way to use the Claude Agent SDK. It provides full access to the agent's capabilities and enables rich, interactive experiences.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/sessions.md“A session is the conversation history the SDK accumulates while your agent works. ... The SDK writes it to disk automatically so you can return to it later.”
- [community] https://news.ycombinator.com/item?id=48125552“Damn. I just built an entire headless automated workflow around `claude -p`”
- [community] https://news.ycombinator.com/item?id=48125552“There is no difference between claude -p and typing into their 'harness' in tmux. They want to make you pay for API which is subsidizing these plans... Forcing people to use their garbage harness — 0 observability, no extensibility and poor DX.”
- [community] https://hn.algolia.com/api/v1/items/48600598“My frustration with Anthropic has been around the uncertainty of all of this. What constitutes fair usage, what can I play with and not risk being banned... now that's all been paused.”
Delegate tasks to a built-in AI assistant inside the productweight 3
3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/overview“The Agent SDK gives you the same tools, agent loop, and context management that power Claude Code, programmable in Python and TypeScript.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/overview“Built-in tools | Read, write, edit files, run commands, and search the web”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/subagents.md“Subagents are separate agent instances that your main agent can spawn to handle focused subtasks. Use them to isolate context, run multiple analyses in parallel, and apply specialized instructions”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/quickstart.md“Use the Agent SDK to build an AI agent that reads your code, finds bugs, and fixes them, all without manual intervention.”
- [claimed-docs] https://claude.com/blog/building-agents-with-the-claude-agent-sdk“Finance agents: Build agents that can understand your portfolio and goals, as well as help you evaluate investments by accessing external APIs, storing data and running code to make calculations.”
Operate the product with natural-language commandsweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/overview“The Agent SDK gives you the same tools, agent loop, and context management that power Claude Code, programmable in Python and TypeScript.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/custom-tools.md“Custom tools extend the Agent SDK by letting you define your own functions that Claude can call during a conversation.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/user-input.md“Pass a canUseTool callback in your query options. The callback fires whenever Claude needs user input, receiving the tool name and input as arguments”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/python.md“Use ClaudeSDKClient for interactive applications such as chat interfaces, or when the next action depends on Claude's response.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/streaming-vs-single-mode.md“It allows the agent to operate as a long lived process that takes in user input, handles interruptions, surfaces permission requests, and handles session management.”
- [github] https://github.com/anthropics/claude-agent-sdk-python“The Claude Code CLI is automatically bundled with the package - no separate installation required! The SDK will use the bundled CLI by default.”
Built-in AI = 54.4 ÷ 90 × 100 = 60.4
Automation33.8/100×0.15 of the PA blend
Depth of automation primitives — rules, scheduling, bulk operations, webhooks.
Perform bulk operations across many items at onceweight 2
2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/subagents.md“Subagents are separate agent instances that your main agent can spawn to handle focused subtasks. Use them to isolate context, run multiple analyses in parallel, and apply specialized instructions”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/custom-tools.md“Custom tools extend the Agent SDK by letting you define your own functions that Claude can call during a conversation.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/subagents.md“Subagents are separate agent instances that your main agent can spawn to handle focused subtasks.”
- [community] https://news.ycombinator.com/item?id=48125552“Damn. I just built an entire headless automated workflow around `claude -p`”
Define rules that trigger actions automatically on eventsweight 3
3 (weight) × 7 (quality) × 1.0 (full) = 21.0 of 30 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hooks.md“Hooks are callback functions that run your code in response to agent events, like a tool being called, a session starting, or execution stopping.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hooks.md“With hooks, you can: Block dangerous operations before they execute, like destructive shell commands or unauthorized file access”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/permissions.md“The Claude Agent SDK provides permission controls to manage how Claude uses tools. Use permission modes and rules to define what's allowed automatically, and the canUseTool callback to handle everything else at runtime.”
Schedule recurring jobs or workflowsweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/sessions.md“A session is the conversation history the SDK accumulates while your agent works. ... The SDK writes it to disk automatically so you can return to it later.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/hosting.md“Deploy the Agent SDK in production: subprocess architecture, session persistence, scaling, observability, and multi-tenant isolation for Docker, Kubernetes, and sandbox providers.”
- [claimed-docs] https://code.claude.com/docs/en/agent-sdk/streaming-vs-single-mode.md“It allows the agent to operate as a long lived process that takes in user input, handles interruptions, surfaces permission requests, and handles session management.”
Version, review, and roll back my automationsweight 1
1 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 10 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Automation = 27.0 ÷ 80 × 100 = 33.8