Loading...
Loading...
Use Claude Code's autonomous agent loop with DeepSeek V4 Pro, OpenRouter, or any Anthropic-compatible backend at up to 17x lower cost.
npx skill4agent add aradotso/trending-skills deepclaude-proxySkill by ara.so — Daily 2026 Skills collection.
deepclaudeYour terminal
└── Claude Code CLI (tool loop, file editing, bash, git — unchanged)
└── API calls → DeepSeek V4 Pro ($0.87/M) instead of Anthropic ($15/M)| Variable | Purpose |
|---|---|
| API endpoint override |
| API key for the backend |
| Model for Opus-tier tasks |
| Model for Sonnet-tier tasks |
| Model for Haiku-tier / subagents |
| Model for spawned subagents |
npm install -g @anthropic-ai/claude-codegit clone https://github.com/aattaran/deepclaude.git
cd deepclaude# DeepSeek (default backend — get key at platform.deepseek.com)
echo 'export DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY"' >> ~/.bashrc
# OpenRouter (optional — cheapest US latency)
echo 'export OPENROUTER_API_KEY="$OPENROUTER_API_KEY"' >> ~/.bashrc
# Fireworks AI (optional — fastest inference)
echo 'export FIREWORKS_API_KEY="$FIREWORKS_API_KEY"' >> ~/.bashrc
source ~/.bashrcsetx DEEPSEEK_API_KEY $env:DEEPSEEK_API_KEY
setx OPENROUTER_API_KEY $env:OPENROUTER_API_KEY
setx FIREWORKS_API_KEY $env:FIREWORKS_API_KEYchmod +x deepclaude.sh
sudo ln -s "$(pwd)/deepclaude.sh" /usr/local/bin/deepclaudeCopy-Item deepclaude.ps1 "$env:USERPROFILE\.local\bin\deepclaude.ps1"
# Or add repo directory to PATH:
setx PATH "$env:PATH;C:\path\to\deepclaude"# Launch Claude Code with DeepSeek V4 Pro (default)
deepclaude
# Show available backends and configured API keys
deepclaude --status
# Select a specific backend
deepclaude --backend ds # DeepSeek (default)
deepclaude --backend or # OpenRouter
deepclaude --backend fw # Fireworks AI
deepclaude --backend anthropic # Normal Claude Opus
# Show pricing comparison
deepclaude --cost
# Latency benchmark across all configured providers
deepclaude --benchmark
# Switch backend mid-session (proxy must be running)
deepclaude --switch ds
deepclaude --switch or
deepclaude --switch anthropic
# Remote control — open session in any browser
deepclaude --remote
deepclaude --remote --backend or
deepclaude --remote --backend anthropic| Backend | Flag | Input/M | Output/M | Notes |
|---|---|---|---|---|
| DeepSeek | | $0.44 | $0.87 | Auto context caching (120x cheaper on repeat turns) |
| OpenRouter | | $0.44 | $0.87 | Lowest latency from US/EU |
| Fireworks AI | | $1.74 | $3.48 | Fastest inference, US servers |
| Anthropic | | $3.00 | $15.00 | Original Claude Opus |
localhost:3200# Switch backend
curl -sX POST http://127.0.0.1:3200/_proxy/mode -d "backend=deepseek"
curl -sX POST http://127.0.0.1:3200/_proxy/mode -d "backend=openrouter"
curl -sX POST http://127.0.0.1:3200/_proxy/mode -d "backend=anthropic"
# Check current backend + uptime
curl -s http://127.0.0.1:3200/_proxy/status
# Token usage and cost savings vs Anthropic
curl -s http://127.0.0.1:3200/_proxy/cost{
"backends": {
"deepseek": {
"input_tokens": 125000,
"output_tokens": 45000,
"requests": 12,
"cost": 0.0941,
"anthropic_equivalent": 1.05
}
},
"total_cost": 0.0941,
"anthropic_equivalent": 1.05,
"savings": 0.9559
}~/.claude/commands/~/.claude/commands/deepseek.mdSwitch the model proxy to DeepSeek. Run this command silently and report the result:
curl -sX POST http://127.0.0.1:3200/_proxy/mode -d "backend=deepseek"
If successful, say: "Switched to DeepSeek."~/.claude/commands/anthropic.mdSwitch the model proxy back to Anthropic. Run this command silently and report the result:
curl -sX POST http://127.0.0.1:3200/_proxy/mode -d "backend=anthropic"
If successful, say: "Switched to Anthropic."~/.claude/commands/openrouter.mdSwitch the model proxy to OpenRouter. Run this command silently and report the result:
curl -sX POST http://127.0.0.1:3200/_proxy/mode -d "backend=openrouter"
If successful, say: "Switched to OpenRouter."/deepseek/anthropic/openrouter.vscode/tasks.json{
"version": "2.0.0",
"tasks": [
{
"label": "Proxy: Switch to DeepSeek",
"type": "shell",
"command": "curl -sX POST http://127.0.0.1:3200/_proxy/mode -d 'backend=deepseek'",
"presentation": { "reveal": "always" },
"problemMatcher": []
},
{
"label": "Proxy: Switch to Anthropic",
"type": "shell",
"command": "curl -sX POST http://127.0.0.1:3200/_proxy/mode -d 'backend=anthropic'",
"presentation": { "reveal": "always" },
"problemMatcher": []
},
{
"label": "Proxy: Switch to OpenRouter",
"type": "shell",
"command": "curl -sX POST http://127.0.0.1:3200/_proxy/mode -d 'backend=openrouter'",
"presentation": { "reveal": "always" },
"problemMatcher": []
}
]
}keybindings.json[
{ "key": "ctrl+alt+d", "command": "workbench.action.tasks.runTask", "args": "Proxy: Switch to DeepSeek" },
{ "key": "ctrl+alt+a", "command": "workbench.action.tasks.runTask", "args": "Proxy: Switch to Anthropic" },
{ "key": "ctrl+alt+o", "command": "workbench.action.tasks.runTask", "args": "Proxy: Switch to OpenRouter" }
]settings.json{
"terminal.integrated.profiles.linux": {
"DeepSeek Agent": {
"path": "/usr/local/bin/deepclaude"
},
"DeepSeek (OpenRouter)": {
"path": "/usr/local/bin/deepclaude",
"args": ["--backend", "or"]
}
},
"terminal.integrated.defaultProfile.linux": "DeepSeek Agent"
}settings.json{
"terminal.integrated.profiles.windows": {
"DeepSeek Agent": {
"path": "powershell.exe",
"args": ["-ExecutionPolicy", "Bypass", "-NoExit", "-File", "C:\\path\\to\\deepclaude.ps1"]
}
}
}deepclaude --remote # DeepSeek backend
deepclaude --remote --backend or # OpenRouter backend
deepclaude --remote --backend anthropic # Normal Anthropicclaude remote-control
├── Bridge WebSocket → wss://bridge.claudeusercontent.com (Anthropic, required)
└── Model API calls → http://localhost:3200 (proxy)
├── /v1/messages → active backend (DeepSeek/OR/etc.)
└── everything else → Anthropic (passthrough)claude auth logindeepclaude# DeepSeek
export ANTHROPIC_BASE_URL="https://api.deepseek.com/v1"
export ANTHROPIC_AUTH_TOKEN="$DEEPSEEK_API_KEY"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-chat"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-chat"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-chat"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-chat"
claude # launch normally
# OpenRouter
export ANTHROPIC_BASE_URL="https://openrouter.ai/api/v1"
export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek/deepseek-chat-v3-0324"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek/deepseek-chat-v3-0324"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek/deepseek-chat-v3-0324"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek/deepseek-chat-v3-0324"
claudeReadWriteEdit/init| Feature | Reason |
|---|---|
| Image / vision input | DeepSeek's Anthropic-compat endpoint doesn't support images |
| MCP server tools | Not supported through compatibility layer |
Anthropic prompt caching ( | Ignored; DeepSeek uses its own automatic caching |
| Parallel tool use | DeepSeek supports up to 128/call but Claude Code sends sequentially |
| Task type | Recommendation |
|---|---|
| Routine coding, refactoring, CRUD | DeepSeek (default) — 90% cost savings |
| US/EU latency sensitive | OpenRouter |
| Highest throughput / speed | Fireworks AI |
| Complex multi-step reasoning, architecture | Switch to |
/deepseek/anthropicDEEPSEEK_API_KEY# Verify the var is set in current shell
echo $DEEPSEEK_API_KEY
# If blank, re-source your profile
source ~/.bashrc # or ~/.zshrcdeepclaude: command not found# Check symlink
ls -la /usr/local/bin/deepclaude
# Re-create if missing
sudo ln -sf "$(pwd)/deepclaude.sh" /usr/local/bin/deepclaude# Check if proxy process is running
lsof -i :3200
# Restart deepclaude — proxy starts automatically
deepclaudecurl# Use PowerShell equivalent in the .md command files:
Invoke-RestMethod -Uri http://127.0.0.1:3200/_proxy/mode -Method Post -Body 'backend=deepseek'deepclaude --switch anthropicdeepclaude --backend anthropic# Ensure you're authenticated
claude auth login
# Verify subscription at claude.ai — bridge requires it