Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Install and configure the Anthropic SDK for Claude API access. Use when setting up Claude integration, configuring API keys, or initializing the Anthropic client in your project. Trigger with phrases like "install anthropic", "setup claude api", "anthropic auth", "configure anthropic API key".
.claude/skills/jeremylongshore-clade-install-auth/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 138% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 18% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -33% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 148% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 53% | 0% |
Set up the Anthropic SDK and configure your API key to start using Claude models.
sk-ant-)bash# Node.js / TypeScript npm install @claude-ai/sdk # Python pip install anthropic
bash# Set environment variable (recommended) export ANTHROPIC_API_KEY="sk-ant-api03-..." # Or add to .env file echo 'ANTHROPIC_API_KEY=sk-ant-api03-...' >> .env
> Important: Never hardcode API keys. Use environment variables or a secrets manager. Keys start with sk-ant-.
typescriptimport Anthropic from '@claude-ai/sdk'; const client = new Anthropic(); // reads ANTHROPIC_API_KEY from env const message = await client.messages.create({ model: 'claude-sonnet-4-20250514', max_tokens: 64, messages: [{ role: 'user', content: 'Say "connected" in one word.' }], }); console.log(message.content[0].text); // "Connected"
pythonimport anthropic client = anthropic.Anthropic() # reads ANTHROPIC_API_KEY from env message = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=64, messages=[{"role": "user", "content": "Say 'connected' in one word."}], ) print(message.content[0].text) # "Connected"
@claude-ai/sdk in node_modules or anthropic in site-packagesANTHROPIC_API_KEY environment variable set| Error | Cause | Solution | |-------|-------|----------| | authentication_error (401) | API key missing, invalid, or revoked | Check key at console.anthropic.com → API Keys | | permission_error (403) | Key lacks access to requested model | Verify workspace has model access enabled | | ModuleNotFoundError | SDK not installed | pip install anthropic or npm i @claude-ai/sdk | | Could not resolve host | Network/DNS issue | Check internet connectivity and proxy settings |
typescriptimport Anthropic from '@claude-ai/sdk'; // Default: reads ANTHROPIC_API_KEY from environment const client = new Anthropic(); // Explicit key (for testing only — don't hardcode in production) const client = new Anthropic({ apiKey: 'sk-ant-api03-...' }); // Custom base URL (for proxies or Vertex AI) const client = new Anthropic({ baseURL: 'https://your-proxy.example.com', });
pythonimport anthropic # Default: reads ANTHROPIC_API_KEY from environment client = anthropic.Anthropic() # Explicit key client = anthropic.Anthropic(api_key="sk-ant-api03-...") # Async client client = anthropic.AsyncAnthropic()
After successful auth, proceed to clade-hello-world for your first Claude conversation.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 8,951 | 6,546 | -27% | 1 | 1 | 0% | 1,760 | 2,275 | +29% | 0 | 0 | — |
case-02 | fail→fail | 11,266 | 9,816 | -13% | 1 | 1 | 0% | 2,308 | 2,912 | +26% | 0 | 0 | — |
case-03 | fail→fail | 10,977 | 9,054 | -18% | 1 | 1 | 0% | 2,289 | 2,752 | +20% | 0 | 0 | — |
case-04 | fail→pass | 2,876 | 2,355 | -18% | 1 | 1 | 0% | 516 | 1,230 | +138% | 0 | 0 | — |
case-05 | pass→pass | 2,331 | 2,093 | -10% | 1 | 1 | 0% | 248 | 1,134 | +357% | 0 | 0 | — |
case-06 | pass→pass | 2,705 | 2,406 | -11% | 1 | 1 | 0% | 313 | 1,264 | +304% | 0 | 0 | — |
case-07 | fail→pass | 11,025 | 7,916 | -28% | 1 | 1 | 0% | 1,834 | 2,163 | +18% | 0 | 0 | — |
case-08 | pass→pass | 7,780 | 4,997 | -36% | 1 | 1 | 0% | 1,460 | 1,778 | +22% | 0 | 0 | — |
case-09 | pass→pass | 12,663 | 2,569 | -80% | 1 | 1 | 0% | 2,293 | 1,216 | -47% | 0 | 0 | — |
case-10 | pass→pass | 6,634 | 2,235 | -66% | 1 | 1 | 0% | 1,113 | 1,185 | +6% | 0 | 0 | — |
case-11 | fail→pass | 12,936 | 3,582 | -72% | 1 | 1 | 0% | 2,288 | 1,534 | -33% | 0 | 0 | — |
case-12 | pass→pass | 6,607 | 1,376 | -79% | 1 | 1 | 0% | 1,123 | 1,114 | -1% | 0 | 0 | — |
case-13 | fail→pass | 3,959 | 1,757 | -56% | 1 | 1 | 0% | 453 | 1,122 | +148% | 0 | 0 | — |
case-14 | fail→pass | 4,900 | 2,517 | -49% | 1 | 1 | 0% | 818 | 1,248 | +53% | 0 | 0 | — |
case-15 | fail→pass | 8,989 | 2,126 | -76% | 1 | 1 | 0% | 1,486 | 1,222 | -18% | 0 | 0 | — |
case-16 | fail→pass | 9,461 | 1,453 | -85% | 1 | 1 | 0% | 1,501 | 1,182 | -21% | 0 | 0 | — |
case-17 | fail→pass | 6,351 | 3,065 | -52% | 1 | 1 | 0% | 1,006 | 1,320 | +31% | 0 | 0 | — |
case-18 | pass→pass | 7,017 | 4,519 | -36% | 1 | 1 | 0% | 1,256 | 1,608 | +28% | 0 | 0 | — |
case-19 | pass→pass | 5,710 | 2,935 | -49% | 1 | 1 | 0% | 1,162 | 1,418 | +22% | 0 | 0 | — |
case-20 | pass→pass | 13,266 | 12,637 | -5% | 1 | 1 | 0% | 2,376 | 3,382 | +42% | 0 | 0 | — |
case-21 | pass→pass | 10,892 | 10,368 | -5% | 1 | 1 | 0% | 2,077 | 3,143 | +51% | 0 | 0 | — |
case-22 | pass→pass | 5,938 | 5,185 | -13% | 1 | 1 | 0% | 945 | 1,956 | +107% | 0 | 0 | — |
case-23 | pass→pass | 11,262 | 12,815 | +14% | 1 | 1 | 0% | 2,220 | 3,494 | +57% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +35 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.