SDKs & Integration
Integrate SkillBoss with Claude Code, Cursor, Windsurf, and OpenAI SDK. Direct API access with Python, JavaScript, streaming, function calling, and more.
Supported Platforms
SkillBoss works seamlessly with all major AI coding assistants:
Claude Code
Anthropic's official CLI
Cursor
AI-first code editor
Windsurf
Next-gen IDE
OpenClaw/Clawdbot
Open source agent
Kiro
AI coding assistant
Codex
OpenAI's coding model
Antigravity
AI development tool
GitHub Copilot
VS Code AI assistant
Cline
AI coding companion
Quick Start
One-command setup: Tell your agent
set up skillboss.co/skill.mdto auto-configure SkillBoss with 687+ APIs.
1. Download SkillBoss
Get your personalized skills pack from the Console:
# Download will give you: skillboss-skills.zip
unzip skillboss-skills.zip
2. Install in Your Tool
For Claude Code / Cursor / Windsurf:
# Copy to skills directory
cp -r skillboss-skills ~/.claude/skills/skillboss
# Or let AI install it for you - just attach the ZIP and say:
# "Help me install skillboss-skills.zip"
For OpenClaw:
npm install -g openclaw
openclaw install skillboss-skills.zip
3. Start Using
Just ask your AI to use SkillBoss services:
Generate a product demo video using Veo 3.1
Build a waiting list app with Stripe payments
Scrape 100 LinkedIn profiles from this company
Direct API Access
You can also call SkillBoss APIs directly:
Python
import requests
API_KEY = "your-skillboss-api-key"
BASE_URL = "https://api.skillboss.co/v1"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# Generate an image
response = requests.post(
f"{BASE_URL}/image/generate",
json={
"model": "dall-e-3",
"prompt": "A futuristic cityscape",
"size": "1024x1024"
},
headers=headers
)
result = response.json()
print(result["image_url"])
JavaScript/TypeScript
const SKILLBOSS_API_KEY = "your-skillboss-api-key"
const BASE_URL = "https://api.skillboss.co/v1"
async function generateImage(prompt) {
const response = await fetch(`${BASE_URL}/image/generate`, {
method: "POST",
headers: {
"Authorization": `Bearer ${SKILLBOSS_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "dall-e-3",
prompt: prompt,
size: "1024x1024"
})
})
const result = await response.json()
return result.image_url
}
// Usage
const imageUrl = await generateImage("A futuristic cityscape")
console.log(imageUrl)
cURL
curl -X POST https://api.skillboss.co/v1/image/generate \
-H "Authorization: Bearer your-skillboss-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "dall-e-3",
"prompt": "A futuristic cityscape",
"size": "1024x1024"
}'
Framework Integration
LangChain
from langchain.llms import SkillBoss
llm = SkillBoss(
api_key="your-skillboss-api-key",
model="claude-4-sonnet"
)
response = llm("What is the capital of France?")
print(response)
Vercel AI SDK
import { SkillBoss } from '@skillboss/vercel-ai'
const skillboss = new SkillBoss({
apiKey: process.env.SKILLBOSS_API_KEY
})
const response = await skillboss.chat.completions.create({
model: 'gpt-5-2',
messages: [{ role: 'user', content: 'Hello!' }]
})
OpenAI SDK (Compatible)
SkillBoss is compatible with OpenAI SDK:
from openai import OpenAI
client = OpenAI(
api_key="your-skillboss-api-key",
base_url="https://api.skillboss.co/v1"
)
response = client.chat.completions.create(
model="claude-4-sonnet", # Use any SkillBoss model
messages=[{"role": "user", "content": "Hello!"}]
)
Environment Variables
Store your API key securely:
Bash/Zsh
# Add to ~/.bashrc or ~/.zshrc
export SKILLBOSS_API_KEY="your-api-key-here"
.env File
SKILLBOSS_API_KEY=your-api-key-here
SKILLBOSS_BASE_URL=https://api.skillboss.co/v1
In Code
import os
from dotenv import load_dotenv
load_dotenv()
API_KEY = os.getenv("SKILLBOSS_API_KEY")
Advanced Usage
Streaming Responses
import requests
def stream_chat(prompt):
response = requests.post(
"https://api.skillboss.co/v1/chat/completions",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"model": "claude-4-sonnet",
"messages": [{"role": "user", "content": prompt}],
"stream": True
},
stream=True
)
for line in response.iter_lines():
if line:
print(line.decode('utf-8'))
stream_chat("Tell me a story")
Function Calling
const response = await fetch("https://api.skillboss.co/v1/chat/completions", {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "gpt-5-2",
messages: [
{ role: "user", content: "What's the weather in San Francisco?" }
],
functions: [
{
name: "get_weather",
description: "Get the current weather",
parameters: {
type: "object",
properties: {
location: { type: "string" }
}
}
}
]
})
})
Batch Requests
# Generate multiple images at once
images = []
prompts = [
"A sunset over mountains",
"A cityscape at night",
"A forest in autumn"
]
for prompt in prompts:
response = requests.post(
"https://api.skillboss.co/v1/image/generate",
json={"model": "dall-e-3", "prompt": prompt},
headers=headers
)
images.append(response.json()["image_url"])
Error Handling
Always handle errors gracefully:
try:
response = requests.post(
"https://api.skillboss.co/v1/chat/completions",
json={"model": "claude-4-sonnet", "messages": [...]},
headers=headers
)
response.raise_for_status()
result = response.json()
except requests.exceptions.HTTPError as e:
if e.response.status_code == 401:
print("Invalid API key")
elif e.response.status_code == 429:
print("Rate limit exceeded")
elif e.response.status_code == 402:
print("Insufficient credits")
else:
print(f"Error: {e}")
Rate Limits
SkillBoss has generous rate limits:
- 100 requests per minute per API key
- 1000 requests per hour per API key
- 10000 requests per day per API key
If you exceed limits, you'll receive a 429 error. Implement exponential backoff:
import time
def call_with_retry(func, max_retries=3):
for i in range(max_retries):
try:
return func()
except RateLimitError:
if i == max_retries - 1:
raise
time.sleep(2 ** i) # Exponential backoff
WebSocket Support
For real-time applications:
const ws = new WebSocket(
"wss://api.skillboss.co/v1/stream",
["Authorization", API_KEY]
)
ws.onmessage = (event) => {
const data = JSON.parse(event.data)
console.log(data)
}
ws.send(JSON.stringify({
model: "claude-4-sonnet",
messages: [{ role: "user", content: "Hello!" }]
}))
Next Steps
API Reference
Complete API documentation
Code Examples
Real-world code examples
Authentication
Secure your API keys
Best Practices
Optimize your usage