🦐 PicoClaw Documentation
Complete guide to installing, configuring, and using PicoClaw — the ultra-lightweight personal AI assistant built in Go.
PicoClaw is an open-source, ultra-lightweight personal AI assistant inspired by NanoBot, refactored from the ground up in Go through a self-bootstrapping process. It runs on $10 hardware with <10MB RAM and boots in under 1 second.
Key Highlights
99% smaller than OpenClaw
98% cheaper than Mac Mini
400× faster startup
RISC-V, ARM64, x86
Requirements
System Requirements
| Component | Minimum | Recommended |
|---|---|---|
| OS | Any Linux | Linux (Debian/Ubuntu) |
| RAM | 10MB free | 64MB+ total system |
| CPU | 0.6GHz single core | 1GHz+ ARM/RISC-V/x86 |
| Storage | 20MB | 100MB+ |
| Network | Internet access | Ethernet or WiFi |
Supported Architectures
- RISC-V (riscv64) — LicheeRV Nano, NanoKVM, MaixCAM
- ARM64 (aarch64) — Raspberry Pi, Orange Pi, Rock Pi
- x86_64 (amd64) — Standard PCs, servers, cloud VMs
For Building from Source
- Go 1.21+ — Download Go
- Git — For cloning the repository
- Make — For using the Makefile build system
Installation
Method 1: Precompiled Binary (Recommended)
Download the pre-built binary for your platform from the GitHub Releases page.
# Download for your platform (choose one)
# x86_64:
wget https://github.com/sipeed/picoclaw/releases/latest/download/picoclaw-linux-amd64
# ARM64:
wget https://github.com/sipeed/picoclaw/releases/latest/download/picoclaw-linux-arm64
# RISC-V:
wget https://github.com/sipeed/picoclaw/releases/latest/download/picoclaw-linux-riscv64
# Make executable and run
chmod +x picoclaw-linux-*
./picoclaw-linux-amd64 onboard
Method 2: Build from Source
Get the latest features and contribute to development. Requires Go 1.21+.
# Clone the repository
git clone https://github.com/sipeed/picoclaw.git
cd picoclaw
# Install dependencies
make deps
# Build for your current platform
make build
# Build for all platforms (cross-compile)
make build-all
# Build and install to system PATH
make install
Method 3: Docker Compose
Run PicoClaw in a container without installing anything locally.
# 1. Clone the repo
git clone https://github.com/sipeed/picoclaw.git
cd picoclaw
# 2. Configure API keys
cp config/config.example.json config/config.json
vim config/config.json
# 3. Build & start the gateway
docker compose --profile gateway up -d
# 4. Check logs
docker compose logs -f picoclaw-gateway
# 5. Stop
docker compose --profile gateway down
Quick Start
Get a working AI assistant in under 2 minutes:
Initialize PicoClaw
picoclaw onboard
This creates the default config at ~/.picoclaw/config.json and workspace at ~/.picoclaw/workspace/.
Get an API Key
Choose one LLM provider and get your API key:
Configure Your API Key
Edit ~/.picoclaw/config.json:
{
"agents": {
"defaults": {
"workspace": "~/.picoclaw/workspace",
"model": "glm-4.7",
"max_tokens": 8192,
"temperature": 0.7,
"max_tool_iterations": 20
}
},
"providers": {
"openrouter": {
"api_key": "YOUR_API_KEY_HERE",
"api_base": "https://openrouter.ai/api/v1"
}
}
}
Start Chatting!
# One-shot question
picoclaw agent -m "What is 2+2?"
# Interactive chat mode
picoclaw agent
That's it! 🎉 You have a working AI assistant.
Configuration File
PicoClaw stores its configuration at ~/.picoclaw/config.json. This file controls the LLM provider, model, chat channels, tools, and more.
Configuration Sections
| Section | Purpose |
|---|---|
agents.defaults |
Default agent settings: model, max tokens, temperature, workspace path |
providers |
LLM provider API keys and endpoints (OpenRouter, Zhipu, Anthropic, etc.) |
channels |
Chat app configurations (Telegram, Discord, QQ, DingTalk) |
tools.web.search |
Web search API key (Brave Search) and settings |
Agent Defaults
| Parameter | Type | Default | Description |
|---|---|---|---|
workspace |
string | ~/.picoclaw/workspace |
Path to the workspace directory |
model |
string | glm-4.7 |
LLM model to use |
max_tokens |
integer | 8192 |
Maximum tokens per response |
temperature |
float | 0.7 |
Response creativity (0.0–1.0) |
max_tool_iterations |
integer | 20 |
Maximum tool calls per session |
LLM Providers
PicoClaw supports multiple LLM providers. Configure one or more in the providers section of your config file.
Groq provides free voice transcription via Whisper. If configured, Telegram voice messages will be automatically transcribed to text.
| Provider | Purpose | Status | Get API Key |
|---|---|---|---|
gemini |
LLM (Gemini direct) | Stable | aistudio.google.com |
zhipu |
LLM (Zhipu direct) | Stable | bigmodel.cn |
openrouter |
LLM (all models) | Testing | openrouter.ai |
anthropic |
LLM (Claude direct) | Testing | console.anthropic.com |
openai |
LLM (GPT direct) | Testing | platform.openai.com |
deepseek |
LLM (DeepSeek direct) | Testing | platform.deepseek.com |
groq |
LLM + Voice transcription | Stable | console.groq.com |
Zhipu Configuration Example
{
"agents": {
"defaults": {
"model": "glm-4.7",
"max_tokens": 8192
}
},
"providers": {
"zhipu": {
"api_key": "Your_Zhipu_API_Key",
"api_base": "https://open.bigmodel.cn/api/paas/v4"
}
}
}
Workspace Layout
PicoClaw stores all data in the configured workspace directory (default: ~/.picoclaw/workspace):
~/.picoclaw/workspace/
├── sessions/ # Conversation sessions and history
├── memory/ # Long-term memory (MEMORY.md)
├── cron/ # Scheduled jobs database
├── skills/ # Custom skills
├── AGENTS.md # Agent behavior guide
├── IDENTITY.md # Agent identity
├── SOUL.md # Agent soul
├── TOOLS.md # Tool descriptions
└── USER.md # User preferences
| File/Directory | Description |
|---|---|
sessions/ | Stores conversation history for context continuity |
memory/ | Long-term memory that persists across sessions |
cron/ | Database of scheduled jobs and reminders |
skills/ | Custom skill definitions for specialized tasks |
AGENTS.md | Defines how the agent behaves and responds |
IDENTITY.md | The agent's name and persona |
SOUL.md | Core personality traits and values |
TOOLS.md | Available tools and their descriptions |
USER.md | Your personal preferences and context |
Telegram Setup
Easy Setup RecommendedCreate a Bot
- Open Telegram and search for
@BotFather - Send
/newbotand follow the prompts - Copy the bot token
Get Your User ID
Search for @userinfobot on Telegram and it will reply with your user ID.
Configure
{
"channels": {
"telegram": {
"enabled": true,
"token": "YOUR_BOT_TOKEN",
"allowFrom": ["YOUR_USER_ID"]
}
}
}
Run the Gateway
picoclaw gateway
Discord Setup
Easy SetupCreate a Bot
- Go to Discord Developer Portal
- Create an application → Bot → Add Bot
- Copy the bot token
Enable Intents
- In Bot settings, enable MESSAGE CONTENT INTENT
- (Optional) Enable SERVER MEMBERS INTENT
Get Your User ID
Discord Settings → Advanced → enable Developer Mode, then right-click your avatar → Copy User ID.
Configure & Invite
{
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_BOT_TOKEN",
"allowFrom": ["YOUR_USER_ID"]
}
}
}
Invite the bot via OAuth2 → URL Generator with scopes: bot and permissions: Send Messages, Read Message History.
Run
picoclaw gateway
QQ Setup
Easy Setup- Go to QQ Open Platform and create an application
- Get your AppID and AppSecret
- Add to your config:
{
"channels": {
"qq": {
"enabled": true,
"app_id": "YOUR_APP_ID",
"app_secret": "YOUR_APP_SECRET",
"allow_from": []
}
}
}
allow_from to an empty array to allow all users, or specify QQ numbers to restrict access.DingTalk Setup
Medium Setup- Go to DingTalk Open Platform
- Create an internal application
- Copy the Client ID and Client Secret
- Add to your config:
{
"channels": {
"dingtalk": {
"enabled": true,
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"allow_from": []
}
}
}
Agent Mode
Agent mode allows you to interact with PicoClaw directly from the command line. It supports one-shot queries and interactive conversations.
# One-shot: Ask a question and get an answer
picoclaw agent -m "Explain quantum computing in simple terms"
# Interactive: Start a conversation session
picoclaw agent
# Docker: One-shot via Docker
docker compose run --rm picoclaw-agent -m "What is 2+2?"
# Docker: Interactive via Docker
docker compose run --rm picoclaw-agent
Capabilities
- Full-Stack Engineering — Write code, manage files, develop and deploy applications
- Web Search — Find information online via Brave Search API
- Memory Management — Remember preferences and context across sessions
- Task Scheduling — Set reminders and recurring jobs
- File Operations — Read, write, and edit files in the workspace
Gateway Mode
Gateway mode starts a long-running service that connects PicoClaw to your configured chat apps (Telegram, Discord, QQ, DingTalk).
# Start the gateway (local)
picoclaw gateway
# Start via Docker
docker compose --profile gateway up -d
# Check gateway logs
docker compose logs -f picoclaw-gateway
Only run one gateway instance at a time. Running multiple instances will cause conflicts, especially with Telegram bots (you'll see "terminated by other getUpdates" errors).
Scheduled Tasks & Reminders
PicoClaw supports scheduled reminders and recurring tasks through the built-in cron tool. Jobs are stored in ~/.picoclaw/workspace/cron/.
Task Types
| Type | Example | Behavior |
|---|---|---|
| One-time | "Remind me in 10 minutes" | Triggers once after delay |
| Recurring | "Remind me every 2 hours" | Triggers at regular intervals |
| Cron-based | "Remind me at 9am daily" | Uses cron expression scheduling |
Managing Jobs via CLI
# List all scheduled jobs
picoclaw cron list
# Add a new scheduled job
picoclaw cron add "Check server status every hour"
Web Search
PicoClaw integrates with Brave Search API for real-time web access. This feature is optional — PicoClaw works without it but will suggest manual search links.
Setup (Free Tier: 2000 queries/month)
- Get a free API key at brave.com/search/api
- Add to config:
{
"tools": {
"web": {
"search": {
"api_key": "YOUR_BRAVE_API_KEY",
"max_results": 5
}
}
}
}
Agent Social Network
Connect PicoClaw to the Agent Social Network by sending a single message via CLI or any integrated Chat App:
picoclaw agent -m "Read https://clawdchat.ai/skill.md and follow the instructions to join ClawdChat.ai"
Visit ClawdChat.ai for more details on the agent social network.
CLI Reference
| Command | Description |
|---|---|
picoclaw onboard |
Initialize configuration and workspace. Creates ~/.picoclaw/ directory with default settings. |
picoclaw agent -m "..." |
Send a one-shot message to the agent and receive a response. |
picoclaw agent |
Start an interactive chat session with the agent. |
picoclaw gateway |
Start the gateway service to connect with chat apps (Telegram, Discord, etc.). |
picoclaw status |
Show the current status of PicoClaw, including configured providers and channels. |
picoclaw cron list |
List all scheduled jobs and their status. |
picoclaw cron add ... |
Add a new scheduled job or reminder. |
Docker Reference
Gateway Mode (Long-running)
# Start
docker compose --profile gateway up -d
# Check logs
docker compose logs -f picoclaw-gateway
# Stop
docker compose --profile gateway down
# Rebuild (after updates)
docker compose --profile gateway build --no-cache
docker compose --profile gateway up -d
Agent Mode (One-shot)
# Ask a question
docker compose run --rm picoclaw-agent -m "What is 2+2?"
# Interactive mode
docker compose run --rm picoclaw-agent
Full Configuration Example
Here's a complete configuration file with all available options:
{
"agents": {
"defaults": {
"model": "anthropic/claude-opus-4-5"
}
},
"providers": {
"openrouter": {
"api_key": "sk-or-v1-xxx"
},
"groq": {
"api_key": "gsk_xxx"
}
},
"channels": {
"telegram": {
"enabled": true,
"token": "123456:ABC...",
"allow_from": ["123456789"]
},
"discord": {
"enabled": true,
"token": "",
"allow_from": [""]
},
"whatsapp": {
"enabled": false
},
"feishu": {
"enabled": false,
"app_id": "cli_xxx",
"app_secret": "xxx",
"encrypt_key": "",
"verification_token": "",
"allow_from": []
},
"qq": {
"enabled": false,
"app_id": "",
"app_secret": "",
"allow_from": []
}
},
"tools": {
"web": {
"search": {
"api_key": "BSA..."
}
}
}
}
API Key Comparison
| Service | Free Tier | Best Use Case |
|---|---|---|
| OpenRouter | 200K tokens/month | Multiple models (Claude, GPT-4, Gemini, etc.) |
| Zhipu | 200K tokens/month | Best for Chinese language users |
| Brave Search | 2000 queries/month | Web search functionality |
| Groq | Free tier available | Fast inference (Llama, Mixtral) + Voice |
Troubleshooting
Web search says "API 配置问题"
This is normal if you haven't configured a search API key yet. PicoClaw will provide helpful links for manual searching instead.
Fix: Get a free Brave Search API key and add it to your config's tools.web.search.api_key field. See Web Search setup.
Content filtering errors
Some providers (especially Zhipu) have content filtering that may block certain queries.
Fix: Try rephrasing your query, or switch to a different model/provider that has less strict filtering.
Telegram: "Conflict: terminated by other getUpdates"
This happens when another instance of PicoClaw is already running with the same Telegram bot token.
Fix: Make sure only one picoclaw gateway instance is running at a time. Kill any existing processes before starting a new one.
Binary not found / permission denied
Fix:
# Make sure the binary is executable
chmod +x picoclaw-linux-*
# Or if installed via make install, check your PATH
which picoclaw
echo $PATH
High memory usage
PicoClaw should use <10MB of RAM. If you see higher usage:
- Check for multiple running instances
- Ensure you're running the latest version
- Monitor with:
ps aux | grep picoclaw
Contributing
PicoClaw is open source and PRs are welcome! The codebase is intentionally small and readable. 🤗
How to Contribute
- Fork the repository on GitHub
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes and test
- Submit a Pull Request