Follow Discord
Sweep 22 Oct 2026 · 21:04Z Build v2.1.309 528 read Stable v2.1.308 Latest v2.1.308 Next v2.1.309 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · api

skills-guide changedbuild-with-claude/skills-guide

Nearest release: v2.1.239, published 2 hours before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Recorded here
Lines+79added
Lines−114removed
From line 250 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits22to this page, all time

The whole hunk

from line 250, old and new numbered
/
lines
from line 250
250250 ```
251251 
252252 ```php PHP
253 // The PHP SDK supports container skills only through $client->beta->messages with the skills beta.
254253 $client = new Client();
255254 
256 $message = $client->beta->messages->create(
255 $message = $client->messages->create(
257256 maxTokens: 4096,
258257 messages: [
259258 ['role' => 'user', 'content' => 'Create a presentation about renewable energy']
260259 ],
261260 model: 'claude-opus-5',
262 betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
263261 container: [
264262 'skills' => [
265263 [
266264 'type' => 'anthropic',
267 'skill_id' => 'pptx',
265 'skillID' => 'pptx',
268266 'version' => 'latest'
269267 ]
270268 ]
from line 387
389387 --raw-output)
390388 
391389 # Step 4: Download the file using Files API
392 ant files download \
393 --file-id "$FILE_ID" \
394 --output "$FILENAME" > /dev/null
390 ant files download --file-id "$FILE_ID" --output "$FILENAME" > /dev/null
395391 
396392 printf 'Downloaded: %s\n' "$FILENAME"
397393 ```
from line 663
667663 ```
668664 
669665 ```php PHP
670 // The PHP SDK exposes the Files API under the beta namespace; field names can differ from other SDKs.
671 // The PHP SDK supports container skills only through $client->beta->messages with the skills beta.
672666 $client = new Client();
673667 
674668 // Step 1: Use a Skill to create a file
675 $response = $client->beta->messages->create(
669 $response = $client->messages->create(
676670 maxTokens: 4096,
677671 messages: [
678672 ['role' => 'user', 'content' => 'Create an Excel file with a simple budget spreadsheet']
679673 ],
680674 model: 'claude-opus-5',
681 betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
682675 container: [
683676 'skills' => [
684 ['type' => 'anthropic', 'skill_id' => 'xlsx', 'version' => 'latest']
677 ['type' => 'anthropic', 'skillID' => 'xlsx', 'version' => 'latest']
685678 ]
686679 ],
687680 tools: [
from line 700
707700 
708701 // Step 3: Download the file using Files API
709702 foreach (extractFileIds($response) as $fileId) {
710 $fileMetadata = $client->beta->files->retrieveMetadata($fileId);
711 $fileContent = $client->beta->files->download($fileId);
703 $fileMetadata = $client->files->retrieveMetadata($fileId);
704 $fileContent = $client->files->download($fileId);
712705 
713706 // Step 4: Save to disk
714707 file_put_contents($fileMetadata->filename, $fileContent);
from line 785
792785 --format yaml
793786 
794787 # List all files
795 ant files list \
796 --transform '{filename,created_at}' \
797 --format yaml
788 ant files list --transform '{filename,created_at}' --format yaml
798789 
799790 # Delete a file
800791 ant files delete --file-id "$FILE_ID" >/dev/null
from line 894
903894 ```
904895 
905896 ```php PHP
906 // The PHP SDK exposes the Files API under the beta namespace; field names can differ from other SDKs.
907897 $client = new Client();
908898 $fileId = 'file_011CNha8iCJcU1wXNR6q4V8w';
909899 
910900 // Get file metadata
911 $fileInfo = $client->beta->files->retrieveMetadata($fileId);
901 $fileInfo = $client->files->retrieveMetadata($fileId);
912902 echo "Filename: {$fileInfo->filename}, Size: {$fileInfo->sizeBytes} bytes\n";
913903 
914904 // List files (first page)
915 $files = $client->beta->files->list();
916 foreach ($files->data as $file) {
905 foreach ($client->files->list()->getItems() as $file) {
917906 echo "{$file->filename} - {$file->createdAt->format(DATE_ATOM)}\n";
918907 }
919908 
920909 // Delete a file
921 $client->beta->files->delete($fileId);
910 $client->files->delete($fileId);
922911 ```
923912 
924913 ```ruby Ruby
from line 1249
12601249 ```
12611250 
12621251 ```php PHP
1263 // The PHP SDK supports container skills only through $client->beta->messages with the skills beta.
12641252 $client = new Client();
12651253 
1266 $response1 = $client->beta->messages->create(
1254 $response1 = $client->messages->create(
12671255 maxTokens: 4096,
12681256 messages: [
12691257 ['role' => 'user', 'content' => 'Create a sample sales dataset and analyze it']
12701258 ],
12711259 model: 'claude-opus-5',
1272 betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
12731260 container: [
12741261 'skills' => [
1275 ['type' => 'anthropic', 'skill_id' => 'xlsx', 'version' => 'latest']
1262 ['type' => 'anthropic', 'skillID' => 'xlsx', 'version' => 'latest']
12761263 ]
12771264 ],
12781265 tools: [
from line 1277
12901277 ['role' => 'user', 'content' => 'What was the total revenue?']
12911278 ];
12921279 
1293 $response2 = $client->beta->messages->create(
1280 $response2 = $client->messages->create(
12941281 maxTokens: 4096,
12951282 messages: $messages,
12961283 model: 'claude-opus-5',
1297 betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
12981284 container: [
12991285 'id' => $response1->container->id,
13001286 'skills' => [
1301 ['type' => 'anthropic', 'skill_id' => 'xlsx', 'version' => 'latest']
1287 ['type' => 'anthropic', 'skillID' => 'xlsx', 'version' => 'latest']
13021288 ]
13031289 ],
13041290 tools: [
from line 1725
17391725 ```
17401726 
17411727 ```php PHP
1742 // The PHP SDK supports container skills only through $client->beta->messages with the skills beta.
17431728 $client = new Client();
17441729 
17451730 $messages = [
from line 1732
17471732 ];
17481733 $maxRetries = 10;
17491734 
1750 $response = $client->beta->messages->create(
1735 $response = $client->messages->create(
17511736 maxTokens: 4096,
17521737 messages: $messages,
17531738 model: 'claude-opus-5',
1754 betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
17551739 container: [
17561740 'skills' => [
17571741 [
17581742 'type' => 'custom',
1759 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
1743 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
17601744 'version' => 'latest'
17611745 ]
17621746 ]
from line 1755
17711755 
17721756 $messages[] = ['role' => 'assistant', 'content' => $response->content];
17731757 
1774 $response = $client->beta->messages->create(
1758 $response = $client->messages->create(
17751759 maxTokens: 4096,
17761760 messages: $messages,
17771761 model: 'claude-opus-5',
1778 betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
17791762 container: [
17801763 'id' => $response->container->id,
17811764 'skills' => [
17821765 [
17831766 'type' => 'custom',
1784 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
1767 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
17851768 'version' => 'latest'
17861769 ]
17871770 ]
from line 2077
20942077 ```
20952078 
20962079 ```php PHP
2097 // The PHP SDK supports container skills only through $client->beta->messages with the skills beta.
20982080 $client = new Client();
20992081 
2100 $message = $client->beta->messages->create(
2082 $message = $client->messages->create(
21012083 maxTokens: 4096,
21022084 messages: [
21032085 ['role' => 'user', 'content' => 'Analyze sales data and create a presentation']
21042086 ],
21052087 model: 'claude-opus-5',
2106 betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
21072088 container: [
21082089 'skills' => [
21092090 [
21102091 'type' => 'anthropic',
2111 'skill_id' => 'xlsx',
2092 'skillID' => 'xlsx',
21122093 'version' => 'latest'
21132094 ],
21142095 [
21152096 'type' => 'anthropic',
2116 'skill_id' => 'pptx',
2097 'skillID' => 'pptx',
21172098 'version' => 'latest'
21182099 ],
21192100 [
21202101 'type' => 'custom',
2121 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
2102 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
21222103 'version' => 'latest'
21232104 ]
21242105 ]
from line 2389
24082389 ```
24092390 
24102391 ```php PHP
2411 // The PHP SDK exposes the Skills API under the beta namespace; field names can differ from other SDKs.
24122392 use Anthropic\Core\FileParam;
24132393 // ...
24142394 
from line 2395
24152395 $client = new Client();
24162396 
24172397 // Option 1: Using a zip file
2418 $skill = $client->beta->skills->create(
2398 $skill = $client->skills->create(
24192399 files: [
2420 FileParam::fromResource(fopen('example_skill.zip', 'r'))
2400 FileParam::fromResource(fopen('example_skill.zip', 'r')),
24212401 ],
24222402 );
24232403 
24242404 // Option 2: Using individual files
2425 $skill = $client->beta->skills->create(
2405 $skill = $client->skills->create(
24262406 files: [
2427 FileParam::fromResource(fopen('financial_skill/SKILL.md', 'r'), 'financial_skill/SKILL.md', 'text/markdown'),
2428 FileParam::fromResource(fopen('financial_skill/analyze.py', 'r'), 'financial_skill/analyze.py', 'text/x-python')
2407 FileParam::fromResource(
2408 fopen('financial_skill/SKILL.md', 'r'),
2409 filename: 'financial_skill/SKILL.md',
2410 contentType: 'text/markdown',
2411 ),
2412 FileParam::fromResource(
2413 fopen('financial_skill/analyze.py', 'r'),
2414 filename: 'financial_skill/analyze.py',
2415 contentType: 'text/x-python',
2416 ),
24292417 ],
24302418 );
24312419 
24322420 echo "Created skill: {$skill->id}\n";
2433 echo "Latest version: {$skill->latestVersion}\n";
2421 echo "Latest version: {$skill->latestVersionID}\n";
24342422 ```
24352423 
24362424 ```ruby Ruby
from line 2583
25952583 ```
25962584 
25972585 ```php PHP
2598 // The PHP SDK exposes the Skills API under the beta namespace; field names can differ from other SDKs.
25992586 $client = new Client();
26002587 
26012588 // List Skills (first page)
2602 $skills = $client->beta->skills->list();
2603 
2604 foreach ($skills->data as $skill) {
2605 echo "{$skill->id}: {$skill->displayTitle} (source: {$skill->source})\n";
2589 foreach ($client->skills->list()->getItems() as $skill) {
2590 echo "{$skill->id}: {$skill->displayName} (source: {$skill->source->type})\n";
26062591 }
26072592 
26082593 // List only custom Skills
2609 $customSkills = $client->beta->skills->list(
2594 $customSkills = $client->skills->list(
26102595 source: 'custom',
26112596 );
26122597 ```
from line 2625
26402625 ```
26412626 
26422627 ```bash CLI
2643 ant skills retrieve \
2644 --skill-id skill_01AbCdEfGhIjKlMnOpQrStUv
2628 ant skills retrieve --skill-id skill_01AbCdEfGhIjKlMnOpQrStUv
26452629 ```
26462630 
26472631 ```python Python
from line 2689
27052689 ```
27062690 
27072691 ```php PHP
2708 // The PHP SDK exposes the Skills API under the beta namespace; field names can differ from other SDKs.
27092692 $client = new Client();
27102693 
2711 $skill = $client->beta->skills->retrieve(
2712 skillID: 'skill_01AbCdEfGhIjKlMnOpQrStUv',
2713 );
2694 $skill = $client->skills->retrieve('skill_01AbCdEfGhIjKlMnOpQrStUv');
27142695 
2715 echo "Skill: " . $skill->displayTitle . "\n";
2716 echo "Latest version: " . $skill->latestVersion . "\n";
2717 echo "Created: " . $skill->createdAt . "\n";
2696 echo "Skill: {$skill->displayName}\n";
2697 echo "Latest version: {$skill->latestVersionID}\n";
2698 echo "Created: {$skill->createdAt->format(DATE_ATOM)}\n";
27182699 ```
27192700 
27202701 ```ruby Ruby
from line 2721
27402721 ```
27412722 
27422723 ```bash CLI
2743 ant skills delete \
2744 --skill-id skill_01AbCdEfGhIjKlMnOpQrStUv >/dev/null
2724 ant skills delete --skill-id skill_01AbCdEfGhIjKlMnOpQrStUv >/dev/null
27452725 ```
27462726 
27472727 ```python Python
from line 2763
27832763 ```
27842764 
27852765 ```php PHP
2786 // The PHP SDK exposes the Skills API under the beta namespace; field names can differ from other SDKs.
27872766 $client = new Client();
27882767 
2789 // In the beta namespace, a Skill's versions must be deleted before the Skill itself.
2790 $skillId = 'skill_01AbCdEfGhIjKlMnOpQrStUv';
2791 foreach ($client->beta->skills->versions->list($skillId)->pagingEachItem() as $version) {
2792 $client->beta->skills->versions->delete($version->version, skillID: $skillId);
2793 }
2794 $client->beta->skills->delete($skillId);
2768 $client->skills->delete('skill_01AbCdEfGhIjKlMnOpQrStUv');
27952769 ```
27962770 
27972771 ```ruby Ruby
from line 3203
32293203 ```
32303204 
32313205 ```php PHP
3232 // The PHP SDK exposes the Skills API under the beta namespace; field names can differ from other SDKs.
3233 // The PHP SDK supports container skills only through $client->beta->messages with the skills beta.
32343206 use Anthropic\Core\FileParam;
3235 
32363207 // ...
3208 
32373209 $client = new Client();
32383210 
32393211 // Create a new version
3240 $newVersion = $client->beta->skills->versions->create(
3212 $newVersion = $client->skills->versions->create(
32413213 skillID: 'skill_01AbCdEfGhIjKlMnOpQrStUv',
32423214 files: [
3243 FileParam::fromResource(fopen('financial_skill/SKILL.md', 'r'), 'financial_skill/SKILL.md', 'text/markdown'),
3244 FileParam::fromResource(fopen('financial_skill/analyze.py', 'r'), 'financial_skill/analyze.py', 'text/x-python'),
3215 FileParam::fromResource(
3216 fopen('financial_skill/SKILL.md', 'r'),
3217 filename: 'financial_skill/SKILL.md',
3218 contentType: 'text/markdown',
3219 ),
3220 FileParam::fromResource(
3221 fopen('financial_skill/analyze.py', 'r'),
3222 filename: 'financial_skill/analyze.py',
3223 contentType: 'text/x-python',
3224 ),
32453225 ],
32463226 );
32473227 
32483228 // Use specific version
3249 $response = $client->beta->messages->create(
3229 $response = $client->messages->create(
32503230 maxTokens: 4096,
32513231 messages: [['role' => 'user', 'content' => 'Use updated Skill']],
32523232 model: 'claude-opus-5',
3253 betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
32543233 container: [
32553234 'skills' => [[
32563235 'type' => 'custom',
3257 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
3258 'version' => $newVersion->version
3236 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
3237 'version' => $newVersion->id
32593238 ]]
32603239 ],
32613240 tools: [['type' => 'code_execution_20250825', 'name' => 'code_execution']]
from line 3242
32633242 echo $response;
32643243 
32653244 // Use latest version
3266 $latestResponse = $client->beta->messages->create(
3245 $latestResponse = $client->messages->create(
32673246 maxTokens: 4096,
32683247 messages: [['role' => 'user', 'content' => 'Use latest Skill version']],
32693248 model: 'claude-opus-5',
3270 betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
32713249 container: [
32723250 'skills' => [[
32733251 'type' => 'custom',
3274 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
3252 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
32753253 'version' => 'latest'
32763254 ]]
32773255 ],
from line 3599
36213599 ```
36223600 
36233601 ```php PHP
3624 // The PHP SDK supports container skills only through $client->beta->messages with the skills beta.
36253602 $client = new Client();
36263603 
36273604 // Custom DCF analysis Skill (ID obtained from Skills API create response)
3628 $dcfSkillId = "skill_01AbCdEfGhIjKlMnOpQrStUv";
3605 $dcfSkillId = 'skill_01AbCdEfGhIjKlMnOpQrStUv';
36293606 
36303607 // Use with Excel to create financial model
3631 $message = $client->beta->messages->create(
3608 $message = $client->messages->create(
36323609 maxTokens: 4096,
36333610 messages: [
36343611 ['role' => 'user', 'content' => 'Build a DCF valuation model for a SaaS company']
36353612 ],
36363613 model: 'claude-opus-5',
3637 betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
36383614 container: [
36393615 'skills' => [
3640 ['type' => 'anthropic', 'skill_id' => 'xlsx', 'version' => 'latest'],
3641 ['type' => 'custom', 'skill_id' => $dcfSkillId, 'version' => 'latest']
3616 ['type' => 'anthropic', 'skillID' => 'xlsx', 'version' => 'latest'],
3617 ['type' => 'custom', 'skillID' => $dcfSkillId, 'version' => 'latest']
36423618 ]
36433619 ],
36443620 tools: [
from line 3827
38513827 $container = [
38523828 'skills' => [[
38533829 'type' => 'custom',
3854 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
3855 'version' => '1759178010641129'
3830 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
3831 'version' => 'skver_01AbCdEfGhIjKlMnOpQrStUv'
38563832 ]]
38573833 ];
38583834 ```
from line 3968
39923968 $container = [
39933969 'skills' => [[
39943970 'type' => 'custom',
3995 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
3971 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
39963972 'version' => 'latest'
39973973 ]]
39983974 ];
from line 4306
43304306 ```
43314307 
43324308 ```php PHP
4333 // The PHP SDK supports container skills only through $client->beta->messages with the skills beta.
43344309 $client = new Client();
43354310 
43364311 // Skills render into the system prompt in a fixed, cache-friendly order
4337 $response1 = $client->beta->messages->create(
4312 $response1 = $client->messages->create(
43384313 maxTokens: 4096,
43394314 messages: [
43404315 ['role' => 'user', 'content' => 'Analyze sales data']
43414316 ],
43424317 model: 'claude-opus-5',
4343 betas: [
4344 'code-execution-2025-08-25',
4345 'skills-2025-10-02',
4346 ],
43474318 container: [
43484319 'skills' => [
4349 ['type' => 'anthropic', 'skill_id' => 'xlsx', 'version' => 'latest']
4320 ['type' => 'anthropic', 'skillID' => 'xlsx', 'version' => 'latest']
43504321 ]
43514322 ],
43524323 tools: [
from line 4327
43564327 echo $response1;
43574328 
43584329 // Changing the Skills list ([xlsx] vs [xlsx, pptx]) changes the prefix: a cache miss, while an identical list is a cache hit
4359 $response2 = $client->beta->messages->create(
4330 $response2 = $client->messages->create(
43604331 maxTokens: 4096,
43614332 messages: [
43624333 ['role' => 'user', 'content' => 'Create a presentation']
43634334 ],
43644335 model: 'claude-opus-5',
4365 betas: [
4366 'code-execution-2025-08-25',
4367 'skills-2025-10-02',
4368 ],
43694336 container: [
43704337 'skills' => [
4371 ['type' => 'anthropic', 'skill_id' => 'xlsx', 'version' => 'latest'],
4372 ['type' => 'anthropic', 'skill_id' => 'pptx', 'version' => 'latest']
4338 ['type' => 'anthropic', 'skillID' => 'xlsx', 'version' => 'latest'],
4339 ['type' => 'anthropic', 'skillID' => 'pptx', 'version' => 'latest']
43734340 ]
43744341 ],
43754342 tools: [
from line 4588
46214588 ```
46224589 
46234590 ```php PHP
4624 // The PHP SDK supports container skills only through $client->beta->messages with the skills beta.
46254591 use Anthropic\Core\Exceptions\BadRequestException;
46264592 
46274593 $client = new Client();
46284594 
46294595 try {
4630 $message = $client->beta->messages->create(
4596 $message = $client->messages->create(
46314597 maxTokens: 4096,
46324598 messages: [
46334599 ['role' => 'user', 'content' => 'Process data']
46344600 ],
46354601 model: 'claude-opus-5',
4636 betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
46374602 container: [
46384603 'skills' => [
46394604 [
46404605 'type' => 'custom',
4641 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
4606 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv',
46424607 'version' => 'latest'
46434608 ]
46444609 ]
Feedback