Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Send your first message to Claude using the Anthropic SDK. Use when starting a new Claude integration, testing your setup, or learning the Messages API basics. Trigger with phrases like "anthropic hello world", "claude api example", "first claude call", "anthropic quick start".
.claude/skills/jeremylongshore-clade-hello-world/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 76% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -17% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -9% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 35% | 0% |
Send your first message to Claude and get a response using the Messages API.
clade-install-auth setupANTHROPIC_API_KEY environment variable settypescriptimport Anthropic from '@claude-ai/sdk'; const client = new Anthropic(); const message = await client.messages.create({ model: 'claude-sonnet-4-20250514', max_tokens: 1024, messages: [ { role: 'user', content: 'What is the capital of France?' } ], }); console.log(message.content[0].text); // "The capital of France is Paris."
typescriptconst message = await client.messages.create({ model: 'claude-sonnet-4-20250514', max_tokens: 1024, system: 'You are a helpful geography expert. Be concise.', messages: [ { role: 'user', content: 'What is the capital of France?' } ], });
typescriptconst message = await client.messages.create({ model: 'claude-sonnet-4-20250514', max_tokens: 1024, messages: [ { role: 'user', content: 'What is the capital of France?' }, { role: 'assistant', content: 'The capital of France is Paris.' }, { role: 'user', content: 'What is its population?' }, ], });
pythonimport anthropic client = anthropic.Anthropic() message = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=1024, messages=[ {"role": "user", "content": "What is the capital of France?"} ], ) print(message.content[0].text)
message.content[0].text — Claude's text responsemessage.model — model ID usedmessage.usage.input_tokens / message.usage.output_tokens — token countsmessage.stop_reason — end_turn, max_tokens, or tool_use| Error | Cause | Solution | |-------|-------|----------| | authentication_error | Bad API key | Check ANTHROPIC_API_KEY | | invalid_request_error | Missing required field | Both messages and max_tokens are required | | not_found_error | Invalid model ID | Use a valid model like claude-sonnet-4-20250514 |
| Model | Best For | Context | Cost (input/output per MTok) | |-------|----------|---------|------------------------------| | claude-opus-4-20250514 | Complex reasoning | 200K | $15 / $75 | | claude-sonnet-4-20250514 | Balanced quality + speed | 200K | $3 / $15 | | claude-haiku-4-5-20251001 | Fast, cheap tasks | 200K | $0.80 / $4 |
See Step 1 (basic message), Step 2 (system prompt), and Step 3 (multi-turn) above. Python example included in its own section.
Proceed to clade-model-inference for streaming and advanced patterns.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 9,415 | 5,765 | -39% | 1 | 1 | 0% | 1,176 | 1,969 | +67% | 0 | 0 | — |
case-02 | fail→pass | 11,280 | 7,857 | -30% | 1 | 1 | 0% | 2,202 | 2,504 | +14% | 0 | 0 | — |
case-03 | fail→pass | 5,926 | 4,766 | -20% | 1 | 1 | 0% | 1,052 | 1,851 | +76% | 0 | 0 | — |
case-04 | pass→pass | 7,627 | 5,141 | -33% | 1 | 1 | 0% | 1,510 | 1,828 | +21% | 0 | 0 | — |
case-05 | fail→pass | 11,376 | 4,961 | -56% | 1 | 1 | 0% | 2,253 | 1,866 | -17% | 0 | 0 | — |
case-06 | pass→pass | 6,460 | 3,461 | -46% | 1 | 1 | 0% | 1,219 | 1,661 | +36% | 0 | 0 | — |
case-12 | fail→pass | 9,095 | 2,261 | -75% | 1 | 1 | 0% | 1,362 | 1,245 | -9% | 0 | 0 | — |
case-07 | pass→pass | 10,268 | 6,266 | -39% | 1 | 1 | 0% | 1,773 | 2,095 | +18% | 0 | 0 | — |
case-08 | pass→pass | 10,742 | 4,532 | -58% | 1 | 1 | 0% | 1,854 | 1,730 | -7% | 0 | 0 | — |
case-09 | pass→pass | 7,256 | 2,062 | -72% | 1 | 1 | 0% | 1,283 | 1,227 | -4% | 0 | 0 | — |
case-10 | fail→pass | 7,644 | 3,811 | -50% | 1 | 1 | 0% | 1,278 | 1,729 | +35% | 0 | 0 | — |
case-11 | fail→pass | 9,042 | 3,813 | -58% | 1 | 1 | 0% | 1,473 | 1,513 | +3% | 0 | 0 | — |
case-13 | pass→pass | 5,420 | 2,010 | -63% | 1 | 1 | 0% | 978 | 1,271 | +30% | 0 | 0 | — |
case-14 | pass→pass | 4,810 | 2,419 | -50% | 1 | 1 | 0% | 799 | 1,332 | +67% | 0 | 0 | — |
case-15 | fail→pass | 5,454 | 1,725 | -68% | 1 | 1 | 0% | 837 | 1,251 | +49% | 0 | 0 | — |
case-16 | pass→pass | 5,008 | 2,065 | -59% | 1 | 1 | 0% | 772 | 1,273 | +65% | 0 | 0 | — |
case-17 | pass→pass | 9,687 | 3,451 | -64% | 1 | 1 | 0% | 1,643 | 1,466 | -11% | 0 | 0 | — |
case-18 | pass→pass | 2,096 | 1,712 | -18% | 1 | 1 | 0% | 296 | 1,176 | +297% | 0 | 0 | — |
case-19 | pass→pass | 2,900 | 1,602 | -45% | 1 | 1 | 0% | 403 | 1,152 | +186% | 0 | 0 | — |
case-20 | pass→pass | 13,218 | 9,914 | -25% | 1 | 1 | 0% | 2,409 | 2,969 | +23% | 0 | 0 | — |
case-21 | pass→pass | 11,636 | 6,689 | -43% | 1 | 1 | 0% | 2,044 | 2,349 | +15% | 0 | 0 | — |
case-22 | pass→pass | 14,387 | 17,266 | +20% | 1 | 1 | 0% | 2,831 | 4,498 | +59% | 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. 22 cases were attempted. The headline lift of +32 percentage points is the difference between those two pass rates over the 22 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.