Unified CLI for OpenClaw, PicoClaw, and ZeroClaw
Configure once. Deploy everywhere.
Installation · Quick Start · Configuration · Commands · Contributing
ClawKit manages multiple AI assistant frameworks through a single YAML configuration. It translates your unified config into each framework's native format, handles installation, and keeps everything in sync.
clawkit init # Interactive setup wizard
clawkit install # Install target frameworks
clawkit sync # Deploy config to all targets
Running AI assistants across OpenClaw, PicoClaw, and ZeroClaw means juggling three different config formats (JSON, JSON, TOML), three sets of docs, and three CLI tools. ClawKit eliminates that overhead:
- One config — Write YAML once, auto-translate to each claw's native format
- One CLI — Install, validate, sync, and diagnose all targets from a single tool
- 11 messaging channels — Telegram, Discord, Slack, WhatsApp, Signal, Matrix, IRC, Email, DingTalk, Lark/Feishu, QQ
- 9 AI providers — Anthropic, OpenAI, OpenRouter, Google, Groq, DeepSeek, Ollama, AWS Bedrock, or any OpenAI-compatible endpoint
- Security add-ons — Tailscale VPN, UFW firewall, and fail2ban managed from a single command
- Passthrough support — Still need claw-specific settings? Drop raw config into dedicated sections
curl -fsSL https://raw.githubusercontent.com/huynextlevel/clawkit/main/scripts/install.sh | bashbrew install huynextlevel/tap/clawkitnpm install -g @huynextlevel/clawkitnpx @huynextlevel/clawkit initgo install github.com/huynextlevel/clawkit/cmd/clawkit@latestgit clone https://github.com/huynextlevel/clawkit.git
cd clawkit
make build
make install # copies binary to /usr/local/binPre-built binaries for Linux, macOS, and Windows (amd64/arm64) are available on the Releases page.
# 1. Run the interactive setup wizard (installs your claw automatically)
clawkit init
# 2. Deploy your unified config
clawkit sync
# 3. Check everything is working
clawkit doctorThe wizard walks you through 4 steps:
- Target — Pick one claw (openclaw, picoclaw, or zeroclaw)
- Provider & Model — Choose your AI provider, enter API key, select model
- Channels — Enable messaging channels (Telegram, Discord, Slack, etc.)
- Gateway — Configure HTTP gateway host, port, and auth token
After saving, ClawKit checks runtime prerequisites and offers to install them automatically, then installs your chosen claw. You can switch claws later with clawkit switch.
You can also use presets to skip the wizard:
clawkit init --preset minimal # Single provider, one target
clawkit init --preset standard # Telegram + gateway
clawkit init --preset full # All channels, everything onSkills (plugins, tools) are managed through each claw's native CLI:
openclaw skills install <skill> # OpenClaw skills
picoclaw skills install <skill> # PicoClaw skills
zeroclaw skills install <skill> # ZeroClaw skillsClawKit uses a single YAML file at ~/.clawkit/config.yaml. Here's a typical setup:
agent:
model: anthropic/claude-sonnet-4-6
temperature: 0.7
max_tokens: 8192
providers:
- name: anthropic
api_key: ${ANTHROPIC_API_KEY}
channels:
telegram:
enabled: true
token: ${TELEGRAM_BOT_TOKEN}
mention_only: true
discord:
enabled: true
token: ${DISCORD_BOT_TOKEN}
gateway:
host: 127.0.0.1
port: 18789
token: ${CLAWKIT_GATEWAY_TOKEN}
targets:
- openclawUse ${VAR_NAME} syntax anywhere in the config. Variables are substituted at load time, keeping secrets out of the file:
providers:
- name: anthropic
api_key: ${ANTHROPIC_API_KEY}
- name: openai
api_key: ${OPENAI_API_KEY}Need claw-specific settings that ClawKit doesn't cover? Add them directly and they'll be merged as-is into the native config:
openclaw:
experimental:
canvas: true
agents:
defaults:
maxToolIterations: 100
zeroclaw:
autonomy_level: 3
tunnel:
provider: cloudflareSee the examples/ directory for more configuration samples.
| Command | Description |
|---|---|
clawkit init |
Interactive setup wizard (or --preset, --from) |
clawkit install [claw] |
Install a claw binary (--all for all targets) |
clawkit uninstall [claw] |
Uninstall a claw (--purge to remove configs) |
clawkit switch <claw> |
Switch active claw (uninstalls current, installs new) |
clawkit sync |
Translate and deploy config to all targets |
clawkit validate |
Check config for errors and warnings |
clawkit status |
Show installation status of all claws |
clawkit doctor |
Diagnose system health (config, prereqs, API keys) |
clawkit upgrade |
Self-update ClawKit to the latest version |
clawkit addon list |
List available security add-ons and status |
clawkit addon install <name> |
Install and configure an add-on |
clawkit addon status [name] |
Show add-on health |
clawkit addon remove <name> |
Remove an add-on (--purge for config) |
clawkit features |
Show feature compatibility matrix |
clawkit version |
Print version |
clawkit sync # Sync to all targets
clawkit sync --target openclaw # Sync to one target only
clawkit sync --dry-run # Preview output without writingClawKit manages host-level security tools that protect all your claws regardless of which framework is active:
clawkit addon list # See what's available
clawkit addon install tailscale # Install and configure Tailscale VPN
clawkit addon install ufw # Set up UFW firewall (Linux)
clawkit addon install fail2ban # Enable SSH brute-force protection (Linux)
clawkit addon status # Check health of all add-onsWhen Tailscale is enabled, clawkit sync automatically injects the correct tunnel/gateway config into each claw's native format (OpenClaw: gateway.tailscale.mode, ZeroClaw: [tunnel] provider = "tailscale"). PicoClaw has no native tunnel support, so ClawKit manages tailscale serve externally.
| Feature | OpenClaw | PicoClaw | ZeroClaw |
|---|---|---|---|
| Channels | |||
| Telegram | Y | Y | Y |
| Discord | Y | Y | Y |
| Slack | Y | Y | Y |
| Y | Y | Y | |
| Signal | Y | - | Y |
| Matrix | Y | - | Y |
| IRC | - | - | Y |
| - | - | Y | |
| DingTalk | Y | Y | Y |
| Lark/Feishu | Y | Y | Y |
| Y | Y | Y | |
| Core | |||
| Memory (SQLite) | Y | Y | Y |
| Memory (Postgres) | - | - | Y |
| Memory (Markdown) | - | Y | Y |
| Skills/Plugins | Y | Y | Y |
| Cron/Scheduling | Y | Y | Y |
| Heartbeat | Y | Y | Y |
| Multi-Agent | Y | Y | Y |
| Web Search | Y | Y | Y |
| Unique | |||
| Canvas/A2UI | Y | - | - |
| Browser Control | Y | - | Y |
| Voice/Talk Mode | Y | - | - |
| Hardware I2C/SPI | - | Y | Y |
| Robot-Kit | - | - | Y |
| Autonomy Levels | - | - | Y |
| Tunnel (CF/TS/ngrok) | - | - | Y |
| Observability | - | - | Y |
| Cost Tracking | - | - | Y |
| Add-ons (host-level) | |||
| Tailscale VPN | Y | Y | Y |
| UFW Firewall | Y | Y | Y |
| fail2ban | Y | Y | Y |
Run clawkit features for the complete matrix.
~/.clawkit/config.yaml (you write this)
|
clawkit sync
|
+---> ~/.openclaw/openclaw.json (JSON)
+---> ~/.picoclaw/config.json (JSON)
+---> ~/.zeroclaw/config.toml (TOML)
ClawKit's adapter layer handles the translation:
- Common fields (model, channels, memory, etc.) are mapped to each claw's equivalent
- Passthrough fields are merged as-is into the native config
- Incompatible features generate warnings but don't block deployment — unsupported channels are silently skipped per target
cmd/clawkit/ Entry point
internal/
cli/ CLI commands (Cobra)
config/ Schema, loader, validator, presets
adapter/ Config translators (OpenClaw, PicoClaw, ZeroClaw)
addon/ Security add-ons (Tailscale, UFW, fail2ban)
installer/ Binary installation/uninstallation
detector/ Claw detection and prerequisite checking
ui/ Terminal UI (prompts, spinners, tables)
examples/ Example configuration files
npm/ NPM package distribution
See CONTRIBUTING.md for development setup and guidelines.
make build # Build binary
make test # Run tests
make lint # Run linter
make fmt # Format code