spawn/manifest.json
L 635d358ca3
feat: add agent icon assets and refresh-favicon skill (#1499)
Download favicon/icons for all 6 agents into assets/agents/:
- claude.png    — Anthropic GitHub org avatar (4.5K)
- openclaw.png  — openclaw.ai/apple-touch-icon.png (5.8K)
- zeroclaw.png  — zeroclaw-labs GitHub org avatar (11K)
- codex.png     — OpenAI GitHub org avatar (4.0K)
- opencode.svg  — opencode.ai/favicon.svg (612B)
- kilocode.png  — Kilo-Org GitHub org avatar (1.3K)

Update manifest.json icon fields to point to raw.githubusercontent.com
URLs for the local files (stable, CDN-served, versioned in repo).

Add assets/agents/.sources.json tracking each agent's canonical source
URL and extension for use by the refresh-favicon skill.

Add .claude/skills/refresh-favicon/SKILL.md — a skill that re-downloads
all agent icons from their source URLs, detects content types, updates
.sources.json, and syncs manifest.json icon fields.

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 20:55:13 -08:00

293 lines
11 KiB
JSON

{
"agents": {
"claude": {
"name": "Claude Code",
"description": "Anthropic's CLI coding agent",
"url": "https://claude.ai",
"install": "curl -fsSL https://claude.ai/install.sh | bash",
"launch": "claude",
"env": {
"OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}",
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_AUTH_TOKEN": "${OPENROUTER_API_KEY}",
"ANTHROPIC_API_KEY": "",
"CLAUDE_CODE_SKIP_ONBOARDING": "1",
"CLAUDE_CODE_ENABLE_TELEMETRY": "0"
},
"config_files": {
"~/.claude/settings.json": {
"theme": "dark",
"permissions": {
"defaultMode": "bypassPermissions",
"dangerouslySkipPermissions": true
}
},
"~/.claude.json": {
"hasCompletedOnboarding": true,
"bypassPermissionsModeAccepted": true
}
},
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/claude.png",
"featured_cloud": [
"sprite"
]
},
"openclaw": {
"name": "OpenClaw",
"description": "Personal AI assistant with multi-channel gateway + TUI",
"url": "https://github.com/openclaw/openclaw",
"install": "bun install -g openclaw",
"launch": "openclaw tui",
"pre_launch": "nohup openclaw gateway > /tmp/openclaw-gateway.log 2>&1 &",
"env": {
"OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}",
"ANTHROPIC_API_KEY": "${OPENROUTER_API_KEY}",
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api"
},
"interactive_prompts": {
"model_id": {
"prompt": "Enter model ID",
"default": "openrouter/auto"
}
},
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/openclaw.png",
"featured_cloud": [
"fly"
]
},
"zeroclaw": {
"name": "ZeroClaw",
"description": "Fast, small, fully autonomous AI assistant infrastructure \u2014 deploy anywhere, swap anything",
"url": "https://github.com/zeroclaw-labs/zeroclaw",
"install": "curl -LsSf https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/install.sh | bash -s -- --install-rust --install-system-deps",
"launch": "zeroclaw agent",
"env": {
"OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}",
"ZEROCLAW_PROVIDER": "openrouter"
},
"notes": "Rust-based agent framework built by Harvard/MIT/Sundai.Club communities. Natively supports OpenRouter via OPENROUTER_API_KEY + ZEROCLAW_PROVIDER=openrouter. Requires compilation from source (~5-10 min).",
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/zeroclaw.png",
"featured_cloud": [
"hetzner",
"fly"
]
},
"codex": {
"name": "Codex CLI",
"description": "OpenAI's open-source coding agent",
"url": "https://github.com/openai/codex",
"install": "npm install -g @openai/codex",
"launch": "codex",
"env": {
"OPENAI_API_KEY": "${OPENROUTER_API_KEY}",
"OPENAI_BASE_URL": "https://openrouter.ai/api/v1",
"OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}"
},
"notes": "Works with OpenRouter via OPENAI_BASE_URL override pointing to openrouter.ai/api/v1",
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/codex.png",
"featured_cloud": [
"fly"
]
},
"opencode": {
"name": "OpenCode",
"description": "AI coding agent built for the terminal with TUI",
"url": "https://github.com/anomalyco/opencode",
"install": "curl -fsSL https://opencode.ai/install | bash",
"launch": "opencode",
"env": {
"OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}"
},
"notes": "Natively supports OpenRouter via OPENROUTER_API_KEY env var. Go-based TUI using Bubble Tea.",
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/opencode.png",
"featured_cloud": [
"daytona"
]
},
"kilocode": {
"name": "Kilo Code",
"description": "All-in-one agentic engineering platform with CLI",
"url": "https://github.com/Kilo-Org/kilocode",
"install": "npm install -g @kilocode/cli",
"launch": "kilocode",
"env": {
"KILO_PROVIDER_TYPE": "openrouter",
"KILO_OPEN_ROUTER_API_KEY": "${OPENROUTER_API_KEY}",
"OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}"
},
"notes": "Natively supports OpenRouter as a provider via KILO_PROVIDER_TYPE=openrouter. CLI installable via npm as @kilocode/cli, invocable as 'kilocode' or 'kilo'.",
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/kilocode.png",
"featured_cloud": [
"fly"
]
}
},
"clouds": {
"local": {
"name": "Local Machine",
"description": "Run agents directly on your local machine without cloud provisioning",
"url": "https://github.com/OpenRouterTeam/spawn",
"type": "local",
"auth": "none",
"provision_method": "none (local execution)",
"exec_method": "bash -c",
"interactive_method": "exec",
"notes": "No cloud provisioning needed. Installs agents and injects OpenRouter credentials locally. Useful for local development and testing."
},
"hetzner": {
"name": "Hetzner Cloud",
"description": "Hetzner Cloud servers via REST API",
"url": "https://www.hetzner.com/cloud/",
"type": "api",
"auth": "HCLOUD_TOKEN",
"provision_method": "POST /v1/servers with cloud-init",
"exec_method": "ssh root@IP",
"interactive_method": "ssh -t root@IP",
"defaults": {
"server_type": "cx23",
"location": "fsn1",
"image": "ubuntu-24.04"
}
},
"fly": {
"name": "Fly.io",
"description": "Fly.io Machines via REST API and flyctl CLI",
"url": "https://fly.io",
"type": "api+cli",
"auth": "FLY_API_TOKEN",
"provision_method": "POST /v1/apps + POST /v1/apps/{app}/machines",
"exec_method": "fly ssh console -C",
"interactive_method": "fly ssh console",
"defaults": {
"region": "iad",
"vm_size": "shared-cpu-1x",
"vm_memory": 1024,
"image": "ubuntu:24.04"
},
"notes": "Uses Machines API for provisioning and flyctl SSH for exec. Docker-based, pay-per-second pricing. Requires flyctl CLI."
},
"aws": {
"name": "AWS Lightsail",
"description": "AWS Lightsail instances via AWS CLI",
"url": "https://aws.amazon.com/lightsail/",
"type": "cli",
"auth": "aws configure (AWS credentials)",
"provision_method": "aws lightsail create-instances with --user-data",
"exec_method": "ssh ubuntu@IP",
"interactive_method": "ssh -t ubuntu@IP",
"defaults": {
"bundle": "medium_3_0",
"region": "us-east-1",
"blueprint": "ubuntu_24_04"
},
"notes": "Uses 'ubuntu' user instead of 'root'. Requires AWS CLI installed and configured."
},
"daytona": {
"name": "Daytona",
"description": "Daytona sandboxed environments for AI code execution",
"url": "https://www.daytona.io/",
"type": "sandbox",
"auth": "DAYTONA_API_KEY",
"provision_method": "daytona create",
"exec_method": "daytona exec",
"interactive_method": "daytona ssh",
"defaults": {
"cpu": 2,
"memory": 2048,
"disk": 5
},
"notes": "Sub-90ms sandbox creation. True SSH support via daytona ssh. Requires DAYTONA_API_KEY from https://app.daytona.io."
},
"digitalocean": {
"name": "DigitalOcean",
"description": "DigitalOcean Droplets via REST API",
"url": "https://www.digitalocean.com/",
"type": "api",
"auth": "DO_API_TOKEN",
"provision_method": "POST /v2/droplets with user_data",
"exec_method": "ssh root@IP",
"interactive_method": "ssh -t root@IP",
"defaults": {
"size": "s-2vcpu-2gb",
"region": "nyc3",
"image": "ubuntu-24-04-x64"
}
},
"gcp": {
"name": "GCP Compute Engine",
"description": "Google Cloud Compute Engine instances via gcloud CLI",
"url": "https://cloud.google.com/compute",
"type": "cli",
"auth": "gcloud auth login",
"provision_method": "gcloud compute instances create with --metadata startup-script",
"exec_method": "ssh user@IP",
"interactive_method": "ssh -t user@IP",
"defaults": {
"machine_type": "e2-medium",
"zone": "us-central1-a",
"image_family": "ubuntu-2404-lts-amd64"
},
"notes": "Uses current username for SSH. Requires gcloud CLI installed and configured."
},
"sprite": {
"name": "Sprite",
"description": "Sprites.dev managed VMs with CLI",
"url": "https://sprites.dev",
"type": "cli",
"auth": "sprite login",
"provision_method": "sprite create",
"exec_method": "sprite exec",
"interactive_method": "sprite exec -tty"
}
},
"matrix": {
"local/claude": "implemented",
"local/openclaw": "implemented",
"local/zeroclaw": "implemented",
"local/codex": "implemented",
"local/opencode": "implemented",
"local/kilocode": "implemented",
"hetzner/claude": "implemented",
"hetzner/openclaw": "implemented",
"hetzner/zeroclaw": "implemented",
"hetzner/codex": "implemented",
"hetzner/opencode": "implemented",
"hetzner/kilocode": "implemented",
"fly/claude": "implemented",
"fly/openclaw": "implemented",
"fly/zeroclaw": "implemented",
"fly/codex": "implemented",
"fly/opencode": "implemented",
"fly/kilocode": "implemented",
"aws/claude": "implemented",
"aws/openclaw": "implemented",
"aws/zeroclaw": "implemented",
"aws/codex": "implemented",
"aws/opencode": "implemented",
"aws/kilocode": "implemented",
"daytona/claude": "implemented",
"daytona/openclaw": "implemented",
"daytona/zeroclaw": "implemented",
"daytona/codex": "implemented",
"daytona/opencode": "implemented",
"daytona/kilocode": "implemented",
"digitalocean/claude": "implemented",
"digitalocean/openclaw": "implemented",
"digitalocean/zeroclaw": "implemented",
"digitalocean/codex": "implemented",
"digitalocean/opencode": "implemented",
"digitalocean/kilocode": "implemented",
"gcp/claude": "implemented",
"gcp/openclaw": "implemented",
"gcp/zeroclaw": "implemented",
"gcp/codex": "implemented",
"gcp/opencode": "implemented",
"gcp/kilocode": "implemented",
"sprite/claude": "implemented",
"sprite/openclaw": "implemented",
"sprite/zeroclaw": "implemented",
"sprite/codex": "implemented",
"sprite/opencode": "implemented",
"sprite/kilocode": "implemented"
}
}