Claude API Skill Review: The Official Reference Skill Is Also a Context Trap

skills/claude-api/SKILL.md is not a small hint file. In today's clone of anthropics/skills, it is 75,707 bytes before the agent reads a single reference document. The full claude-api skill directory I inspected is 973,337 bytes across 68 files. Using the simple file-size estimate this column uses — bytes ÷ 4 — that is roughly 243,334 tokens if the whole local source set is loaded. That's not a bill from a run. It's arithmetic from bytes on disk.

The interesting part is the tension: this is the most authoritative Claude API skill you can install, and the public issue tracker says its trigger and loading behavior can hurt exactly the users who need authoritative docs. That's a better story than another "official skill is useful" paragraph.

TL;DR / quotable facts

  • The claude-api skill's SKILL.md is 75,707 bytes, which estimates to about 18,927 tokens by the bytes ÷ 4 rule.
  • The inspected skills/claude-api source set is 973,337 bytes across 68 files, or about 243,334 estimated tokens if loaded in full.
  • The anthropics/skills repository had 171,582 stars, 20,383 forks, 1,172 open issues, and 20 SKILL.md files when re-checked on August 26, 2026.
  • The repository API reports license NONE, but the claude-api skill directory itself includes an Apache-2.0 LICENSE.txt.
  • The strongest public complaint is GitHub issue #1487, where a user reported a 624,401-character eager payload and a fresh session failing with "Prompt is too long."

What the skill actually says

The skill is a Claude API reference pack. It covers model IDs, SDK examples, streaming, tool use, managed agents, caching, token counting, migration, and auth. It explicitly tells the agent not to trust memory when writing Claude API code:

"Never guess SDK usage. Function names, class names, namespaces, method signatures, and import paths must come from explicit documentation."

It also forces a default opinion:

"Unless the user requests otherwise: For the Claude model version, please use Claude Opus 5..."

The safety gate in the frontmatter is where the review gets less flattering. The trigger says to load the skill whenever the prompt names Claude, Anthropic, Opus, Sonnet, Haiku, and several model-id shapes. The skip clause tries to avoid non-Anthropic provider work with a grep over the project. That sounds careful until you remember this skill is nearly a megabyte of local reference material and that broad trigger words show up in prose, changelogs, config files, and docs.

Security gate: what I read before reviewing it

I read every file in skills/claude-api. There are 68 text files: markdown references plus LICENSE.txt. I found no bundled executable script in this skill directory. There are many code samples, cURL examples, auth notes, environment-variable examples, and credential-handling instructions, because the skill teaches API usage. That is different from a skill that ships a helper script and asks the agent to run it. Still, teams should treat it as high influence: it can steer model choice, auth style, API surface, and migration behavior.

What it costs you in context

This review does not run the skill through our API and does not publish measured traffic costs. The context estimate here is only:

file bytes ÷ 4 ≈ estimated tokens

By that rule, SKILL.md alone is 75,707 ÷ 4 ≈ 18,927 tokens. The whole inspected directory is 973,337 ÷ 4 ≈ 243,334 tokens. The biggest individual file is shared/model-migration.md at 175,868 bytes, or about 43,967 estimated tokens. That file is useful when you are actually migrating code. It is silly baggage when you are editing a README line that merely mentions "Opus."

FileBytesEstimated tokens (bytes ÷ 4)
LICENSE.txt11,345 B~2,836
SKILL.md75,707 B~18,927
csharp/claude-api/README.md18,448 B~4,612
csharp/claude-api/batches.md413 B~103
csharp/claude-api/files-api.md679 B~170
csharp/claude-api/streaming.md793 B~198
csharp/claude-api/tool-use.md6,022 B~1,506
curl/examples.md9,201 B~2,300
curl/managed-agents.md8,761 B~2,190
go/claude-api/README.md7,780 B~1,945
go/claude-api/files-api.md713 B~178
go/claude-api/streaming.md1,039 B~260
go/claude-api/tool-use.md8,435 B~2,109
go/managed-agents/README.md18,949 B~4,737
java/claude-api/README.md11,322 B~2,830
java/claude-api/files-api.md969 B~242
java/claude-api/streaming.md661 B~165
java/claude-api/tool-use.md9,542 B~2,386
java/managed-agents/README.md16,956 B~4,239
php/claude-api/README.md6,123 B~1,531
php/claude-api/batches.md447 B~112
php/claude-api/files-api.md241 B~60
php/claude-api/streaming.md682 B~170
php/claude-api/tool-use.md8,099 B~2,025
php/managed-agents/README.md13,526 B~3,382
python/claude-api/README.md19,926 B~4,982
python/claude-api/batches.md5,586 B~1,396
python/claude-api/files-api.md4,373 B~1,093
python/claude-api/sdk-upgrade.md28,841 B~7,210
python/claude-api/streaming.md6,548 B~1,637
python/claude-api/tool-use.md19,419 B~4,855
python/managed-agents/README.md10,357 B~2,589
ruby/claude-api/README.md4,481 B~1,120
ruby/claude-api/streaming.md235 B~59
ruby/claude-api/tool-use.md1,063 B~266
ruby/managed-agents/README.md10,460 B~2,615
shared/agent-design.md8,600 B~2,150
shared/anthropic-cli.md16,210 B~4,052
shared/claude-platform-on-aws.md3,878 B~970
shared/error-codes.md12,182 B~3,046
shared/live-sources.md19,837 B~4,959
shared/managed-agents-api-reference.md33,634 B~8,408
shared/managed-agents-client-patterns.md10,881 B~2,720
shared/managed-agents-core.md32,934 B~8,234
shared/managed-agents-environments.md12,105 B~3,026
shared/managed-agents-events.md22,908 B~5,727
shared/managed-agents-memory.md10,006 B~2,502
shared/managed-agents-multiagent.md25,099 B~6,275
shared/managed-agents-onboarding.md10,460 B~2,615
shared/managed-agents-outcomes.md7,286 B~1,822
shared/managed-agents-overview.md12,635 B~3,159
shared/managed-agents-scheduled-deployments.md8,411 B~2,103
shared/managed-agents-self-hosted-sandboxes.md10,181 B~2,545
shared/managed-agents-tools.md23,108 B~5,777
shared/managed-agents-webhooks.md11,392 B~2,848
shared/model-migration.md175,868 B~43,967
shared/models.md12,146 B~3,036
shared/platform-availability.md5,945 B~1,486
shared/prompt-audit.md32,954 B~8,238
shared/prompt-caching.md16,291 B~4,073
shared/token-counting.md1,604 B~401
shared/tool-use-concepts.md33,807 B~8,452
typescript/claude-api/README.md15,179 B~3,795
typescript/claude-api/batches.md2,592 B~648
typescript/claude-api/files-api.md2,259 B~565
typescript/claude-api/streaming.md5,843 B~1,461
typescript/claude-api/tool-use.md19,116 B~4,779
typescript/managed-agents/README.md9,844 B~2,461

What the community reports

Public discussion outside GitHub is thin. HN Algolia returned no direct stories for the claude-api skill and no direct story for the repo URL plus this skill name. The useful evidence is the repository's own issue tracker, where the complaints are concrete and reproducible.

SourceDateWhat was reportedLink
GitHub issue #14872026-07-27A user reported Skill(claude-api) injecting a 624,401-character payload, about 156k tokens by chars ÷ 4, after a prompt that only mentioned model names in prose; the next turn failed with "Prompt is too long."issue
xg-gh-25 comment on #14872026-07-27The commenter called the pattern an anti-pattern for progressive disclosure and said their own pipeline moved to a two-phase index plus on-demand reference loading, with reported 12× cache-hit improvement.comment
GitHub issue #8812026-04-07 / 2026-06-13 updateThe original report said the frontmatter description is truncated in Claude Code listings; a later comment reported the YAML-parsed description at 1,068 characters, above a 1,024-character limit enforced by GitHub Copilot CLI.issue
GitHub issue #16032026-08-17A contributor checked model IDs listed in shared/models.md against the live API and reported five rows returning 404, including one listed under "Legacy Models (still active)."issue
GitHub issue #16242026-08-21The skip grep uses unanchored cohere, so ordinary words like "coherent" can make the skill skip in projects with no Cohere integration; the same report says the grep names Gemini in prose but misses gemini in the pattern.issue

The dissent is also worth saying plainly. The skill exists because API code rots fast. Model IDs change, SDKs shift, thinking parameters get renamed, and old examples on the internet remain indexed forever. A large curated reference can stop the agent from writing stale SDK calls. The issue is not that the reference exists. The issue is loading and triggering: a reference this large needs sharp routing and lazy reads.

How to install it

The repository README gives the Claude Code route through the plugin marketplace. I verified these commands from the README in this run:

/plugin marketplace add anthropics/skills
/plugin install claude-api@anthropic-agent-skills

The README also says the repository can be installed as document-skills or example-skills, and that Claude.ai paid plans already include the example skills. For this review, the relevant direct install command is the claude-api plugin above.

Where it earns its keep

Use this skill when the task is genuinely Claude API work: migrating SDK versions, implementing streaming, picking the right tool-use pattern, checking model IDs, or updating code across Python, TypeScript, Java, Go, Ruby, C#, PHP, and raw HTTP. The skill has real depth. The recent commit history backs that up: the SKILL.md path was updated on August 21 for a Python SDK 0.x to 1.x upgrade guide, August 13 for a prompt-audit subcommand, and August 7 for Managed Agents launch updates. This is not abandoned markdown.

Where it does not

Do not treat it as a harmless always-on Claude keyword skill. The trigger is too broad for the payload. A bare mention of "Opus" or "Sonnet" should not summon a giant API reference when the user is editing prose. The unanchored provider grep is also a real bug: a project that says "coherent state" can look like it mentions Cohere. That is the kind of tiny routing mistake that wastes context and makes users distrust skills.

My verdict: install it if you write Claude API code often, but keep an eye on when it triggers. For teams building their own skills, the lesson is sharper: big reference packs need a small stable index, narrow activation rules, and on-demand file reads. The official repo shows both the value of skills and the failure mode.

FAQ

Is the claude-api skill open source?

The repository API reports no repository-level SPDX license, but the skills/claude-api directory includes an Apache-2.0 LICENSE.txt. The article credits the directory license rather than guessing at the whole repo.

Did KissAPI run this skill and measure token or dollar cost?

No. This review does not run the skill through our API. The context numbers are estimates from file size: bytes ÷ 4.

What is the main criticism?

The skill is too large for broad keyword triggers. Public GitHub issues report eager loading, description-length limits, stale model rows, and a skip grep that matches ordinary words like "coherent."

Should I uninstall it?

Not if you write Claude API integrations. It is useful reference material. I would avoid letting it trigger on casual prose mentions, and I would prefer a future version that loads a small index first and reference docs only when needed.

Related links