Castai hello world
Skill jeremylongshore/claude-code-plugins-plus-skills/skills/.curated/castai-hello-world
'Query CAST AI cluster savings report and node inventory.From its SKILL.md
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill castai-hello-worldAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.3 KB, 741 tokens by cl100k_base, as published. Nobody here has run it
CAST AI Hello World
Overview
First API calls against the CAST AI REST API: list connected clusters, retrieve the savings report, and inspect node inventory. All examples use curl with the X-API-Key header -- no SDK required.
Prerequisites
- Completed
castai-install-authsetup CASTAI_API_KEYenvironment variable set- At least one cluster connected to CAST AI
Instructions
Step 1: List Connected Clusters
curl -s -H "X-API-Key: ${CASTAI_API_KEY}" \
https://api.cast.ai/v1/kubernetes/external-clusters \
| jq '.items[] | {id, name, status, providerType}'
Expected output:
{
"id": "abc123-def456",
"name": "production-eks",
"status": "ready",
"providerType": "eks"
}
Step 2: Get Cluster Savings Report
export CASTAI_CLUSTER_ID="your-cluster-id"
# Current month savings
curl -s -H "X-API-Key: ${CASTAI_API_KEY}" \
"https://api.cast.ai/v1/kubernetes/clusters/${CASTAI_CLUSTER_ID}/savings" \
| jq '{
monthlySavings: .monthlySavings,
savingsPercentage: .savingsPercentage,
currentCost: .currentMonthlyCost,
optimizedCost: .optimizedMonthlyCost
}'
Step 3: List Cluster Nodes
curl -s -H "X-API-Key: ${CASTAI_API_KEY}" \
"https://api.cast.ai/v1/kubernetes/external-clusters/${CASTAI_CLUSTER_ID}/nodes" \
| jq '.items[] | {
name: .name,
instanceType: .instanceType,
lifecycle: .lifecycle,
cpu: .allocatableCpu,
memory: .allocatableMemory,
zone: .zone
}'
Step 4: Check Autoscaler Policies
curl -s -H "X-API-Key: ${CASTAI_API_KEY}" \
"https://api.cast.ai/v1/kubernetes/clusters/${CASTAI_CLUSTER_ID}/policies" \
| jq '{
enabled: .enabled,
unschedulablePods: .unschedulablePods.enabled,
nodeDownscaler: .nodeDownscaler.enabled,
spotInstances: .spotInstances.enabled
}'
Output
- List of connected clusters with IDs and status
- Monthly savings report with before/after cost
- Node inventory with instance types and lifecycle (spot vs on-demand)
- Autoscaler policy status
Error Handling
| Error | Cause | Solution |
|---|---|---|
401 Unauthorized | Bad API key | Regenerate at console.cast.ai |
404 Not Found | Wrong cluster ID | List clusters first to get correct ID |
Empty items array | No clusters connected | Run castai-install-auth to onboard |
agentStatus: offline | Agent not running | Check kubectl get pods -n castai-agent |
Resources
Next Steps
Proceed to castai-local-dev-loop to set up a development workflow.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.