🦐 PicoClaw Documentation

Complete guide to installing, configuring, and using PicoClaw — the ultra-lightweight personal AI assistant built in Go.

What is PicoClaw?

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

🪶
<10MB RAM

99% smaller than OpenClaw

💰
$10 Hardware

98% cheaper than Mac Mini

<1s Boot

400× faster startup

🌍
3 Architectures

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.

Terminal
# 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+.

Terminal
# 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.

Terminal
# 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:

1

Initialize PicoClaw

Terminal
picoclaw onboard

This creates the default config at ~/.picoclaw/config.json and workspace at ~/.picoclaw/workspace/.

2
3

Configure Your API Key

Edit ~/.picoclaw/config.json:

~/.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"
    }
  }
}
4

Start Chatting!

Terminal
# 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.

Tip:

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

~/.picoclaw/config.json
{
  "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):

Directory Structure
~/.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.mdDefines how the agent behaves and responds
IDENTITY.mdThe agent's name and persona
SOUL.mdCore personality traits and values
TOOLS.mdAvailable tools and their descriptions
USER.mdYour personal preferences and context

Telegram Setup

Easy Setup Recommended
1

Create a Bot

  • Open Telegram and search for @BotFather
  • Send /newbot and follow the prompts
  • Copy the bot token
2

Get Your User ID

Search for @userinfobot on Telegram and it will reply with your user ID.

3

Configure

config.json — channels section
{
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "YOUR_BOT_TOKEN",
      "allowFrom": ["YOUR_USER_ID"]
    }
  }
}
4

Run the Gateway

Terminal
picoclaw gateway

Discord Setup

Easy Setup
1

Create a Bot

2

Enable Intents

  • In Bot settings, enable MESSAGE CONTENT INTENT
  • (Optional) Enable SERVER MEMBERS INTENT
3

Get Your User ID

Discord Settings → Advanced → enable Developer Mode, then right-click your avatar → Copy User ID.

4

Configure & Invite

config.json
{
  "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.

5

Run

Terminal
picoclaw gateway

QQ Setup

Easy Setup
  1. Go to QQ Open Platform and create an application
  2. Get your AppID and AppSecret
  3. Add to your config:
config.json
{
  "channels": {
    "qq": {
      "enabled": true,
      "app_id": "YOUR_APP_ID",
      "app_secret": "YOUR_APP_SECRET",
      "allow_from": []
    }
  }
}
Set allow_from to an empty array to allow all users, or specify QQ numbers to restrict access.

DingTalk Setup

Medium Setup
  1. Go to DingTalk Open Platform
  2. Create an internal application
  3. Copy the Client ID and Client Secret
  4. Add to your config:
config.json
{
  "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.

Terminal
# 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).

Terminal
# Start the gateway (local)
picoclaw gateway

# Start via Docker
docker compose --profile gateway up -d

# Check gateway logs
docker compose logs -f picoclaw-gateway
Important:

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

Terminal
# List all scheduled jobs
picoclaw cron list

# Add a new scheduled job
picoclaw cron add "Check server status every hour"

Agent Social Network

Connect PicoClaw to the Agent Social Network by sending a single message via CLI or any integrated Chat App:

Terminal
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)

Terminal
# 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)

Terminal
# 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:

~/.picoclaw/config.json (full example)
{
  "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:

Terminal
# 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

  1. Fork the repository on GitHub
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Make your changes and test
  4. Submit a Pull Request

Join the Community