PluginBench
Skill
Fail
Audit score 45

picoclaw-ai-assistant

reason-machines/trending-skills

Ultra-lightweight AI assistant in Go for $10 hardware with <10MB RAM and multi-provider LLM support.

What is picoclaw-ai-assistant?

PicoClaw is a personal AI assistant written in Go that runs on minimal hardware (Raspberry Pi, LicheeRV-Nano, etc.) with under 10MB RAM and sub-second boot time. It supports multiple LLM providers (OpenAI, Anthropic, Volcengine), optional web search tools, and deploys as a single binary across x86, ARM, MIPS, and RISC-V architectures.

  • Deploy a self-contained AI assistant binary on ultra-low-resource devices
  • Configure multiple LLM providers (OpenAI-compatible, Anthropic, Volcengine) in a single config
  • Enable optional web search via Tavily or Brave Search APIs
  • Run interactive chat sessions or send single-message queries from CLI
  • Execute agentic tool-call loops with configurable iteration limits
  • Support workspace-based file operations and memory management

How to install picoclaw-ai-assistant

npx skills add https://github.com/reason-machines/trending-skills --skill picoclaw-ai-assistant
Prerequisites
  • Go 1.18+ (if building from source)
  • API key for at least one LLM provider (OpenAI, Anthropic, or Volcengine)
  • Optional: Tavily or Brave Search API key for web search features
  • Docker and Docker Compose (if using containerized deployment)
Claude Code
Cursor
Windsurf
Cline

How to use picoclaw-ai-assistant

  1. 1.Download the precompiled binary for your architecture (ARM64, ARM, RISC-V, x86) from the releases page or build from source with `make build`
  2. 2.Run `picoclaw onboard` to initialize `~/.picoclaw/config.json` and workspace
  3. 3.Edit the config file to add your LLM provider API keys (use environment variable references like `$OPENAI_API_KEY`)
  4. 4.Optionally enable web search tools (Tavily or Brave) by adding API keys and setting `enabled: true`
  5. 5.Start an interactive session with `picoclaw` or send a single message with `picoclaw -m "your question"`
  6. 6.Override the default model with `-model <name>` flag if multiple providers are configured

Use cases

Good for
  • Run a personal coding assistant on a $10 Raspberry Pi Zero 2 W or LicheeRV-Nano
  • Deploy a lightweight chatbot on edge devices with minimal power consumption
  • Build a multi-model agent that switches between Claude, GPT-4, and Volcengine models
  • Set up a web-search-enabled assistant on embedded Linux systems
  • Integrate PicoClaw into IoT or robotics projects requiring local AI inference
Who it's for
  • Embedded systems and IoT developers
  • Hardware enthusiasts building on Raspberry Pi or RISC-V boards
  • Developers seeking minimal-footprint AI assistants
  • Teams deploying edge AI without cloud dependency
  • Makers and hobbyists with resource-constrained devices

picoclaw-ai-assistant FAQ

What hardware can PicoClaw run on?

PicoClaw runs on x86_64, ARM64, ARM (32-bit), MIPS, and RISC-V Linux devices with as little as 10MB RAM. Common targets include Raspberry Pi Zero 2 W, LicheeRV-Nano, and other $10 single-board computers.

Do I need to host my own LLM?

No. PicoClaw connects to cloud LLM providers (OpenAI, Anthropic, Volcengine) via API. You provide your API key in the config. Self-hosted models are not mentioned in the documentation.

Can I use multiple LLM providers at once?

Yes. Add multiple entries to the `model_list` in config.json and switch between them using the `-model <name>` CLI flag or by setting `model_name` in agent defaults.

How do I enable web search?

Add a Tavily or Brave Search API key to the `tools.web` section in config.json and set `enabled: true`. Only one search provider should be enabled at a time unless you want fallback behavior.

Can I run PicoClaw in Docker?

Yes. Use the provided `docker-compose.yml` with profiles for gateway mode (persistent service), launcher mode (web console), or agent mode (one-shot queries).

Full instructions (SKILL.md)

Source of truth, from reason-machines/trending-skills.


name: picoclaw-ai-assistant description: Ultra-lightweight AI assistant in Go that runs on $10 hardware with <10MB RAM, supporting multiple LLM providers, tools, and single-binary deployment across RISC-V, ARM, MIPS, and x86. triggers:

  • "set up picoclaw on my device"
  • "configure picoclaw with my API key"
  • "deploy picoclaw on raspberry pi"
  • "build picoclaw from source"
  • "add a new LLM provider to picoclaw"
  • "run picoclaw in docker"
  • "picoclaw web search tool setup"
  • "picoclaw memory and workspace configuration"

PicoClaw AI Assistant

Skill by ara.so — Daily 2026 Skills collection.

PicoClaw is an ultra-lightweight personal AI assistant written in Go. It runs on $10 hardware with under 10MB RAM and boots in under 1 second. It supports multiple LLM providers (OpenAI-compatible, Anthropic, Volcengine), optional web search tools, and deploys as a single self-contained binary on x86_64, ARM64, MIPS, and RISC-V Linux devices.


Installation

Precompiled Binary

Download from the releases page:

# Linux ARM64 (Raspberry Pi, LicheeRV-Nano, etc.)
wget https://github.com/sipeed/picoclaw/releases/download/v0.1.1/picoclaw-linux-arm64
chmod +x picoclaw-linux-arm64
./picoclaw-linux-arm64 onboard

Build from Source

git clone https://github.com/sipeed/picoclaw.git
cd picoclaw

# Install dependencies
make deps

# Build for current platform
make build

# Build for all platforms
make build-all

# Raspberry Pi Zero 2 W — 32-bit
make build-linux-arm      # → build/picoclaw-linux-arm

# Raspberry Pi Zero 2 W — 64-bit
make build-linux-arm64    # → build/picoclaw-linux-arm64

# Build both Pi Zero variants
make build-pi-zero

# Build and install to system PATH
make install

Docker Compose

git clone https://github.com/sipeed/picoclaw.git
cd picoclaw

# First run — generates docker/data/config.json then exits
docker compose -f docker/docker-compose.yml --profile gateway up

# Edit config
vim docker/data/config.json

# Start in background
docker compose -f docker/docker-compose.yml --profile gateway up -d

# View logs
docker compose -f docker/docker-compose.yml logs -f picoclaw-gateway

# Stop
docker compose -f docker/docker-compose.yml --profile gateway down

Docker: Web Console (Launcher Mode)

docker compose -f docker/docker-compose.yml --profile launcher up -d
# Open http://localhost:18800

Docker: One-shot Agent Mode

# Single question
docker compose -f docker/docker-compose.yml run --rm picoclaw-agent -m "What is 2+2?"

# Interactive session
docker compose -f docker/docker-compose.yml run --rm picoclaw-agent

Docker: Expose Gateway to Host

If the gateway needs to be reachable from the host, set:

PICOCLAW_GATEWAY_HOST=0.0.0.0 docker compose -f docker/docker-compose.yml --profile gateway up -d

Or set PICOCLAW_GATEWAY_HOST=0.0.0.0 in docker/data/config.json.

Termux (Android)

pkg install wget proot
wget https://github.com/sipeed/picoclaw/releases/download/v0.1.1/picoclaw-linux-arm64
chmod +x picoclaw-linux-arm64
termux-chroot ./picoclaw-linux-arm64 onboard

Quick Start

1. Initialize

picoclaw onboard

This creates ~/.picoclaw/config.json with a starter configuration.

2. Configure ~/.picoclaw/config.json

{
  "agents": {
    "defaults": {
      "workspace": "~/.picoclaw/workspace",
      "model_name": "gpt-4o",
      "max_tokens": 8192,
      "temperature": 0.7,
      "max_tool_iterations": 20
    }
  },
  "model_list": [
    {
      "model_name": "gpt-4o",
      "model": "openai/gpt-4o",
      "api_key": "$OPENAI_API_KEY",
      "request_timeout": 300
    },
    {
      "model_name": "claude-sonnet",
      "model": "anthropic/claude-sonnet-4-5",
      "api_key": "$ANTHROPIC_API_KEY"
    },
    {
      "model_name": "ark-code",
      "model": "volcengine/ark-code-latest",
      "api_key": "$VOLCENGINE_API_KEY",
      "api_base": "https://ark.cn-beijing.volces.com/api/coding/v3"
    }
  ],
  "tools": {
    "web": {
      "brave": {
        "enabled": false,
        "api_key": "$BRAVE_API_KEY"
      },
      "tavily": {
        "enabled": false,
        "api_key": "$TAVILY_API_KEY"
      }
    }
  }
}

Never hard-code API keys. Reference environment variables using $VAR_NAME notation in config, or set them in your shell environment before launch.

3. Run

# Interactive chat
picoclaw

# Single message
picoclaw -m "Summarize the latest Go release notes"

# Use a specific model
picoclaw -model claude-sonnet -m "Refactor this function for clarity"

Key CLI Commands

CommandDescription
picoclaw onboardInitialize config and workspace
picoclawStart interactive chat session
picoclaw -m "..."Send a single message and exit
picoclaw -model <name>Override the default model
picoclaw -config <path>Use a custom config file

Configuration Reference

Model Entry Fields

{
  "model_name": "my-model",        // Alias used in -model flag and agent defaults
  "model": "provider/model-id",    // Provider-prefixed model identifier
  "api_key": "$ENV_VAR",           // API key — use env var reference
  "api_base": "https://...",       // Optional: override base URL (for self-hosted or regional endpoints)
  "request_timeout": 300           // Optional: seconds before timeout
}

Supported Provider Prefixes

PrefixProvider
openai/OpenAI and OpenAI-compatible APIs
anthropic/Anthropic Claude
volcengine/Volcengine (Ark)

Agent Defaults

"agents": {
  "defaults": {
    "workspace": "~/.picoclaw/workspace",  // Working directory for file operations
    "model_name": "gpt-4o",                // Default model alias
    "max_tokens": 8192,                    // Max response tokens
    "temperature": 0.7,                    // Sampling temperature
    "max_tool_iterations": 20              // Max agentic tool-call loop iterations
  }
}

Web Search Tools

Get free API keys:

"tools": {
  "web": {
    "tavily": {
      "enabled": true,
      "api_key": "$TAVILY_API_KEY"
    },
    "brave": {
      "enabled": false,
      "api_key": "$BRAVE_API_KEY"
    }
  }
}

Only enable one search provider at a time unless you want fallback behavior.


Common Patterns

Pattern: Minimal $10 Device Setup

For a LicheeRV-Nano or similar ultra-low-resource board:

# Download the RISC-V or ARM binary from releases
wget https://github.com/sipeed/picoclaw/releases/download/v0.1.1/picoclaw-linux-riscv64
chmod +x picoclaw-linux-riscv64

# Initialize
./picoclaw-linux-riscv64 onboard

# Edit config — use a lightweight model, low max_tokens
cat > ~/.picoclaw/config.json << 'EOF'
{
  "agents": {
    "defaults": {
      "workspace": "~/.picoclaw/workspace",
      "model_name": "gpt-4o-mini",
      "max_tokens": 2048,
      "temperature": 0.5,
      "max_tool_iterations": 10
    }
  },
  "model_list": [
    {
      "model_name": "gpt-4o-mini",
      "model": "openai/gpt-4o-mini",
      "api_key": "$OPENAI_API_KEY",
      "request_timeout": 120
    }
  ]
}
EOF

./picoclaw-linux-riscv64

Pattern: Full-Stack Dev Assistant with Web Search

{
  "agents": {
    "defaults": {
      "workspace": "~/projects",
      "model_name": "claude-sonnet",
      "max_tokens": 8192,
      "temperature": 0.3,
      "max_tool_iterations": 30
    }
  },
  "model_list": [
    {
      "model_name": "claude-sonnet",
      "model": "anthropic/claude-sonnet-4-5",
      "api_key": "$ANTHROPIC_API_KEY",
      "request_timeout": 600
    }
  ],
  "tools": {
    "web": {
      "tavily": {
        "enabled": true,
        "api_key": "$TAVILY_API_KEY"
      }
    }
  }
}

Pattern: Docker with Environment Variables

# docker/docker-compose.override.yml
services:
  picoclaw-gateway:
    environment:
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - TAVILY_API_KEY=${TAVILY_API_KEY}
      - PICOCLAW_GATEWAY_HOST=0.0.0.0
export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-ant-...
docker compose -f docker/docker-compose.yml -f docker/docker-compose.override.yml --profile gateway up -d

Pattern: Build for a Specific Target in Go

# Cross-compile for MIPS (OpenWRT routers)
GOOS=linux GOARCH=mips GOMIPS=softfloat go build -o build/picoclaw-linux-mips ./cmd/picoclaw

# Cross-compile for 32-bit ARM (older Raspberry Pi)
GOOS=linux GOARCH=arm GOARM=7 go build -o build/picoclaw-linux-arm ./cmd/picoclaw

# Cross-compile for RISC-V 64-bit
GOOS=linux GOARCH=riscv64 go build -o build/picoclaw-linux-riscv64 ./cmd/picoclaw

Troubleshooting

Binary won't execute on device

# Verify the binary matches the device architecture
file picoclaw-linux-arm64
uname -m   # Should match: aarch64 = arm64, x86_64 = amd64

# Ensure executable permission
chmod +x picoclaw-linux-arm64

"Permission denied" on Termux

Termux requires proot for some system calls:

pkg install proot
termux-chroot ./picoclaw-linux-arm64 onboard

API key not recognized

  • Do not use "api_key": "sk-..." literals in config — set env vars and reference them as "$OPENAI_API_KEY".
  • Verify the env var is exported in your current shell: echo $OPENAI_API_KEY.

Docker gateway not reachable from host

Set PICOCLAW_GATEWAY_HOST=0.0.0.0 in the environment or in config.json before starting the container.

High memory usage in recent versions

The project notes that recent PRs may push RAM usage to 10–20MB. If this is a concern on ultra-low-memory devices, pin to an earlier release tag:

git checkout v0.1.1
make build

Config file location

Default: ~/.picoclaw/config.json

Override at runtime:

picoclaw -config /path/to/custom-config.json

Rebuild after dependency changes

cd picoclaw
make deps
make build

Hardware Targets Quick Reference

DevicePriceBinary
LicheeRV-Nano (E/W)~$10picoclaw-linux-riscv64
NanoKVM~$30–50picoclaw-linux-riscv64
MaixCAM / MaixCAM2~$50–100picoclaw-linux-arm64
Raspberry Pi Zero 2 W (32-bit OS)~$15picoclaw-linux-arm
Raspberry Pi Zero 2 W (64-bit OS)~$15picoclaw-linux-arm64
Android via Termux—picoclaw-linux-arm64
Standard Linux x86_64—picoclaw-linux-amd64