A browser-based setup wizard for PicoClaw β runs on your Raspberry Pi or any Linux/macOS machine.
No JSON editing. No terminal juggling. Just open a browser and follow the steps.
Walks you through the full setup in 6 steps:
- System Check β detects your installation, shows disk/RAM/config status, installs PicoClaw if missing, checks for updates
- LLM Provider β pick OpenRouter, Anthropic, Gemini or Groq, paste your key, validates it live, fetches available models
- Telegram β step-by-step bot creation, token validation, real ping test end-to-end
- Your Twin's Soul β 8 questions that generate your
SOUL.mdpersonality file, saved directly to the Pi - Launch β installs a systemd service (Linux) or launchd agent (macOS) so your agent starts on boot automatically
- Connected Tools β connect Gmail and Google Calendar via OAuth2, install and activate the Weather tool
If you already have things configured, the wizard reads your existing config and shows what's already set.
curl -fsSL https://claw-tools.dev/wizard/install.sh | bashThen open http://YOUR_PI_IP:3000 in any browser on your network.
This will:
- Clone the repo to
~/.picoclaw/wizard/ - Install Go automatically if not present (detects arm64, armv6l, amd64)
- Build the
claw-setupbinary from source - Optionally register autorun on boot
- Start the wizard
git clone https://github.com/arpit0515/claw-setup-wizard.git
cd claw-setup-wizard
bash install.shRunning install.sh from inside the repo directory will pull the latest changes, rebuild if needed, and start the wizard. Re-run it anytime to update.
Requires Go 1.21+:
git clone https://github.com/arpit0515/claw-setup-wizard.git
cd claw-setup-wizard
go build -o claw-setup .
./claw-setupThe binary is fully self-contained β the entire UI (HTML, CSS, JS) is embedded inside it via Go's
embed. No separate files needed to run it.
claw-setup-wizard/
βββ main.go # HTTP server, route registration, static file serving
βββ handlers.go # Core API handlers (LLM, Telegram, Soul, service install)
βββ weather_handlers.go # Weather tool handlers (/api/weather/*)
βββ oauth.go # Google OAuth2 flow for Gmail + GCal
βββ system.go # System check, config read/write, PicoConfig struct
βββ workspace.go # Workspace file generation (SOUL.md, AGENTS.md, TOOLS.md, etc.)
βββ soul.go # SOUL.md generation logic
βββ validate.go # LLM key + Telegram token validation
βββ uninstall.go # Full uninstall logic
βββ picoclaw_update.go # Version check + auto-update for PicoClaw
βββ templates/
β βββ index.html # Wizard UI (clean HTML, no inline JS/CSS)
βββ static/
βββ css/
β βββ wizard.css # All styles
βββ js/
βββ core.js # Shared state, navigation, alerts, QR modal, network bar
βββ steps.js # Steps 0β4 logic + uninstall modal
βββ weather.js # Weather tool UI logic (Step 6)
βββ tools.js # OAuth/Gmail/GCal UI logic (Step 6)
βββ settings.js # Settings page logic
βββ init.js # Bootstrap (runs on page load)
- Raspberry Pi or any Linux/macOS machine
- PicoClaw installed (the wizard can install it for you if missing)
- Internet connection
- Go 1.21+ (only needed to build β the binary runs standalone)
Connects to your Google account via OAuth2. Tokens are stored locally at ~/.picoclaw/tokens/ β nothing is sent to the cloud. Multi-account supported.
Once connected, your agent can:
- Summarise unread emails
- Fetch today's calendar events
- Deliver morning briefings via Telegram
Powered by ClawTools β a separate repo of MCP tool connectors.
No API key required β powered by Open-Meteo (free, open-source).
The wizard:
- Geocodes your city name to lat/lon via Open-Meteo's geocoding API
- Builds and installs
weather-mcpβ a local HTTP service on port 3104 - Creates shell scripts at
~/.picoclaw/workspace/bin/for the agent to call - Writes
~/.picoclaw/workspace/skills/claw-weather/SKILL.mdso PicoClaw knows to use your local service - Installs
claw-weather.service(systemd) so it starts on boot - Restarts PicoClaw so it picks up the new skill immediately
After setup, ask your agent "what's the weather today?" β it will use your stored location and return a structured morning/afternoon/evening forecast with rain chance.
| Provider | Free tier | Notes |
|---|---|---|
| OpenRouter | β | Recommended β one key, hundreds of models including free ones |
| Groq | β | Very fast inference |
| Gemini | β | Google models |
| Anthropic | β | Claude models direct |
OpenRouter gives access to hundreds of free models with no credits required. The wizard fetches the live model list and lets you filter to free-only β no hardcoded list, always up to date.
Everything lives under ~/.picoclaw/:
| Path | What it is |
|---|---|
config.json |
LLM provider, Telegram token, model config |
config/weather.json |
Stored weather location (lat, lon, label) |
tokens/<email>.enc |
OAuth tokens (AES-256 encrypted) |
workspace/SOUL.md |
Agent personality |
workspace/AGENTS.md |
Agent behaviour rules (auto-generated) |
workspace/TOOLS.md |
Tool reference (auto-generated) |
workspace/IDENTITY.md |
Who the agent is |
workspace/USER.md |
Owner preferences |
workspace/HEARTBEAT.md |
Scheduled task definitions |
workspace/MEMORY.md |
Accumulated agent memory |
workspace/bin/ |
Tool binaries and shell scripts |
workspace/skills/ |
PicoClaw skill definitions |
PicoClaw discovers capabilities via SKILL.md files in ~/.picoclaw/workspace/skills/. Each skill is a markdown file with a YAML frontmatter block and plain-English instructions that tell the agent what the skill does and how to invoke it.
The wizard writes skills automatically when you install tools. You can also edit them directly to customise agent behaviour.
Example β skills/claw-weather/SKILL.md:
---
name: claw-weather
description: "Get current weather and full day forecast..."
user-invocable: true
---
## Get full day forecast
exec: /home/pi/.picoclaw/workspace/bin/get_weather_forecast.shThe wizard shows a network bar at the top with your Pi's local IP and a QR code. Scan it with your phone to open the wizard on mobile β useful when setting up a headless Pi.
| OS | Service manager | Status |
|---|---|---|
| Raspberry Pi OS / Ubuntu | systemd | β Full support |
| macOS | launchd | β Full support |
| Other Linux | systemd | β Should work |
| Windows | β | β Not supported |
Setting up PicoClaw requires editing raw JSON, creating Telegram bots manually, understanding provider APIs, and configuring systemd β all before you can say a single word to your agent.
This wizard removes all of that friction. It's developer infrastructure β self-hosted, privacy-first, and designed for the kind of person who wants to run their own AI agent without handing data to a hosted SaaS.
- OpenClaw full support (compatible config, same SOUL.md structure)
- Morning briefing microservice setup (Gmail + GCal + Weather β Telegram)
- More ClawTools: Outlook/Exchange, SMS via Twilio
- WhatsApp channel setup
- Voice configuration (Whisper + ElevenLabs)
- Model health check and auto-suggest
- PicoClaw β the AI agent runtime this wizard configures
- ClawTools β MCP tool connectors (Gmail, GCal, Weather)
MIT