Tutorial

How to Build a Claude Desktop Skill That Calls Scavio

Package Scavio as a Claude Desktop Skill so every desktop chat has one-command web, Reddit, and YouTube search without per-project setup.

Claude Desktop Skills are the 2026 packaging format for reusable capabilities across all desktop chats. Unlike Claude Code skills, desktop skills expose user-friendly slash commands in the UI. This tutorial packages Scavio as a Claude Desktop Skill for one-command cross-platform search.

Prerequisites

  • Claude Desktop (latest)
  • A Scavio API key
  • Node.js 20+

Walkthrough

Step 1: Create the skill directory

Desktop skills live in ~/Library/Application Support/Claude/skills on macOS.

Bash
mkdir -p ~/Library/Application\ Support/Claude/skills/scavio-search
cd ~/Library/Application\ Support/Claude/skills/scavio-search

Step 2: Write the skill.json manifest

Declare the commands exposed in the UI.

JSON
{
  "name": "scavio-search",
  "version": "1.0.0",
  "description": "Real-time search via Scavio",
  "slashCommands": [
    { "name": "/search", "params": ["query"] },
    { "name": "/reddit", "params": ["query"] }
  ],
  "entrypoint": "handler.js"
}

Step 3: Write the handler

The handler routes slash commands to the Scavio API.

JavaScript
export async function handle({ command, params }) {
  const platform = command === '/reddit' ? 'reddit' : undefined;
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query: params.query, platform })
  });
  return r.json();
}

Step 4: Set the API key

Add SCAVIO_API_KEY to the Claude Desktop environment.

Text
# In Claude Desktop settings > skills > scavio-search > env
SCAVIO_API_KEY=sk_live_...

Step 5: Use it in any chat

Type /search or /reddit followed by your query.

Text
/search latest react server components news
/reddit best local llm 2026

Python Example

Python
# Desktop skills run JS, but for parity you can call Scavio in Python:
import os, requests
r = requests.post('https://api.scavio.dev/api/v1/search',
    headers={'x-api-key': os.environ['SCAVIO_API_KEY']},
    json={'query': 'claude desktop skills 2026'})
print(r.json().get('organic_results', [])[:5])

JavaScript Example

JavaScript
export async function handle({ command, params }) {
  const platform = command === '/reddit' ? 'reddit' : undefined;
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query: params.query, platform })
  });
  return r.json();
}

Expected Output

JSON
Slash commands /search and /reddit now work across every Claude Desktop chat. Results render inline with source citations.

Related Tutorials

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

Claude Desktop (latest). A Scavio API key. Node.js 20+. A Scavio API key gives you 500 free credits per month.

Yes. The free tier includes 500 credits per month, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Start Building

Package Scavio as a Claude Desktop Skill so every desktop chat has one-command web, Reddit, and YouTube search without per-project setup.