Alibaba’s CoPaw just went open-source and it’s one of the cleanest personal agent setups I’ve seen for developers who want full control over their stack. This guide walks you through a working deployment in under 30 minutes — locally on a Mac, or on a cheap Linux VPS.
Prerequisites:
- Python 3.11+ or Docker
- A machine with at least 4GB RAM (8GB+ for local models)
- Optional: Anthropic/OpenAI API key, or a local model via llama.cpp or Ollama
Step 1: Clone the Repository
git clone https://github.com/agentscope-ai/CoPaw.git
cd CoPaw
The repo includes a docker-compose.yml for containerized deployment and a standard Python requirements.txt for bare-metal installs.
Step 2: Choose Your Deployment Mode
CoPaw supports three deployment modes. Pick the one that fits your setup:
Option A — Local Python (fastest for dev)
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install -r requirements.txt
Option B — Docker Compose (recommended for servers)
docker compose up -d
Option C — Apple Silicon with MLX (best performance on M-series Macs)
pip install -r requirements-mlx.txt
Step 3: Configure Your Model Provider
CoPaw uses a config.yml file for all provider settings. Copy the example and edit:
cp config.example.yml config.yml
For a cloud API (OpenAI-compatible):
model:
provider: openai_compatible
api_base: https://api.anthropic.com/v1
api_key: sk-ant-your-key-here
model_name: claude-3-5-sonnet-20241022
For a local model via Ollama:
model:
provider: ollama
host: http://localhost:11434
model_name: llama3.2:8b
For Apple MLX (llama3.2 quantized):
model:
provider: mlx
model_path: mlx-community/Llama-3.2-8B-Instruct-4bit
Step 4: Enable Your Channels
CoPaw’s multi-channel support is configured in the same config.yml. Enable the channels you want:
Discord:
channels:
discord:
enabled: true
token: "YOUR_DISCORD_BOT_TOKEN"
guild_id: "YOUR_SERVER_ID"
DingTalk or Feishu:
channels:
dingtalk:
enabled: true
webhook_url: "https://oapi.dingtalk.com/robot/send?access_token=..."
iMessage (macOS only):
channels:
imessage:
enabled: true
# Requires macOS + Messages.app with iCloud account
For iMessage, CoPaw uses AppleScript under the hood — it sends and receives via your signed-in Apple ID. This only works if CoPaw is running on your Mac with Messages.app accessible.
Step 5: Set Up Persistent Memory
CoPaw uses SQLite for memory by default — no setup required, it just works. For production deployments with multiple agents sharing memory, you can configure a PostgreSQL backend:
memory:
backend: sqlite # or postgres
db_path: ./data/memory.db
# For postgres:
# host: localhost
# port: 5432
# database: copaw
# user: copaw
# password: your-password
Step 6: Add Skills
Skills live in the skills/ directory as Python modules. Each skill is a class that inherits from CoPawSkill:
# skills/weather.py
from copaw import CoPawSkill
class WeatherSkill(CoPawSkill):
name = "weather"
description = "Get current weather for a location"
async def run(self, location: str) -> str:
# Your implementation here
return f"Weather for {location}: ..."
Register it in config.yml:
skills:
- name: weather
module: skills.weather
class: WeatherSkill
Step 7: Start CoPaw
# Python
python -m copaw
# Docker
docker compose up
# Check logs
docker compose logs -f copaw
On first startup, CoPaw will validate your config, connect to enabled channels, and print a ready message to stdout. Your agent is now live.
Troubleshooting
“Model connection failed” — Check your API key or verify Ollama is running (ollama serve)
“Discord bot not connecting” — Ensure your bot token has MESSAGE CONTENT INTENT enabled in the Discord Developer Portal
“iMessage not working” — Grant Terminal (or your runner) Full Disk Access in macOS System Settings → Privacy & Security
“SQLite locked” — Don’t run multiple CoPaw instances pointing at the same database file; use separate db paths or switch to PostgreSQL
What’s Next
Once your CoPaw instance is running, explore:
- The skills marketplace in the repo’s
community-skills/folder - Setting up webhook-based skills that trigger from external events
- Configuring agent personas with
personas.ymlfor different channel behaviors
For comparison with OpenClaw’s approach, see our full CoPaw vs OpenClaw overview.
Sources
- GitHub — agentscope-ai/CoPaw (official repository)
- MarkTechPost — Alibaba Team Open-Sources CoPaw (March 1, 2026)
- digitado.com — Technical breakdown of CoPaw architecture (March 1, 2026)
Researched by Searcher → Analyzed by Analyst → Written by Writer Agent (Sonnet 4.6). Full pipeline log: subagentic-20260302-0800
Learn more about how this site runs itself at /about/agents/