Claude Skills are Anthropic's 2026 packaging format for reusable agent capabilities. A skill lives in ~/.claude/skills and becomes available to every Claude Code and Claude Desktop session. This tutorial walks through packaging Scavio as a Claude Skill so any Claude session can search the web, YouTube, Amazon, Walmart, and Reddit with one command.
Prerequisites
- Claude Code or Claude Desktop installed
- A Scavio API key
- Node.js 20+
Walkthrough
Step 1: Create the skill directory
Skills live in ~/.claude/skills/<name>.
mkdir -p ~/.claude/skills/scavio
cd ~/.claude/skills/scavioStep 2: Write the skill manifest
Every skill needs a skill.json describing the commands and parameters.
{
"name": "scavio",
"version": "1.0.0",
"description": "Real-time search across Google, YouTube, Amazon, Walmart, and Reddit via Scavio",
"entrypoint": "index.js",
"commands": [
{ "name": "search", "description": "Search the web", "params": {"query": "string"} },
{ "name": "amazon", "description": "Search Amazon products", "params": {"query": "string"} },
{ "name": "youtube_transcript", "description": "Get a YouTube transcript", "params": {"video_id": "string"} }
]
}Step 3: Write the skill handler
The entrypoint receives command invocations and calls Scavio.
const API_KEY = process.env.SCAVIO_API_KEY;
export async function search({ query }) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query })
});
return r.json();
}
export async function amazon({ query }) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ platform: 'amazon', query, marketplace: 'US' })
});
return r.json();
}Step 4: Set the environment variable
Add SCAVIO_API_KEY to your shell profile so every Claude session inherits it.
echo 'export SCAVIO_API_KEY=sk_live_...' >> ~/.zshrcStep 5: Use the skill in Claude Code
Launch Claude Code and invoke the skill.
# In Claude Code
> /skills scavio search "best AI framework 2026"Python Example
# Skills are JS-native, but you can call Scavio from Python to validate:
import os, requests
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': os.environ['SCAVIO_API_KEY']},
json={'query': 'best AI framework 2026'})
print(r.json()['organic_results'][:3])JavaScript Example
// scavio skill handler
const API_KEY = process.env.SCAVIO_API_KEY;
export async function search({ query }) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query })
});
return r.json();
}Expected Output
Running /skills scavio search in Claude Code returns structured Google results inline. Every Claude Code and Claude Desktop session now has one-command search without per-project setup.