WE SHIP FASTER THAN AMAZONTHE ONLY REAL MOAT IS ATTENTIONWE'RE ALMOST AS SECURE AS FORT KNOXTHE WORLD RUNS ON LOVE & STATUSFAST, GOOD, CHEAP, PICK THREEYOU CAN TRUST US WITH YOUR DOG (WE LOVE DOGS)WE SHIP FASTER THAN AMAZONTHE ONLY REAL MOAT IS ATTENTIONWE'RE ALMOST AS SECURE AS FORT KNOXTHE WORLD RUNS ON LOVE & STATUSFAST, GOOD, CHEAP, PICK THREEYOU CAN TRUST US WITH YOUR DOG (WE LOVE DOGS)
Back to Blog

How to Deploy Alibaba's CoPaw

A practical guide to deploying CoPaw, a self-hosted AI assistant workstation. Learn the easiest installation paths, model configuration, and common beginner mistakes.

Copaw

CoPaw is a personal AI assistant workstation built on AgentScope that you can self-host and extend with chat channels, tools, skills, and external integrations. This guide walks beginners through the simplest deployment paths, from one-line installation to Docker, and covers the essential setup steps to get a working assistant in minutes.

What CoPaw actually is

CoPaw is a personal AI assistant workstation built on AgentScope. In plain English, it is a self-hosted agent system you run yourself, then extend with chat channels, tools, skills, local or cloud model providers, scheduled prompts, and external MCP servers. The official site describes it as open-source, privacy-first, and deployable in minutes. The docs position it as a full assistant runtime rather than a bare chatbot.

Out of the box, the platform includes:

  • A built-in web Console
  • Channel support for DingTalk, Feishu, QQ, Discord, and iMessage
  • A working-directory-based config system
  • Persistent memory and compaction
  • Skills management
  • Heartbeat-based scheduled prompts
  • Cron-style jobs
  • MCP client support
  • Cloud and local model options

That combination is why CoPaw is interesting. It is not just an AI chat UI. It is closer to a deployable assistant runtime.

Before you deploy: what you actually need

Beginner guides often skip the obvious. Here is what you need before touching CoPaw.

A machine that will stay on

If you deploy locally, the assistant only runs while your machine is on and the service is running. If you want always-on behavior, deploy on a VPS or cloud instance.

A model strategy

CoPaw does not think on its own. You need to decide whether it will use:

  • A cloud model provider, which usually requires an API key
  • A local model backend, which avoids API keys but demands more from your hardware

Official docs say CoPaw supports cloud LLM providers like DashScope and ModelScope, and local backends including llama.cpp, MLX, and Ollama. If you use cloud LLMs, a valid API key is required before chatting. If you use local-only backends, no API key is needed.

Realistic beginner expectations

Your first milestone is not "fully autonomous digital employee." Your first milestone is:

  1. Install CoPaw
  2. Start the server
  3. Open the Console
  4. Configure one model
  5. Send one successful prompt
  6. Optionally connect one channel

That is deployment. Everything else is phase two.

Choosing your deployment path

Fastest

One-line installer

The official recommended path for macOS, Linux, and Windows. No manual Python setup. Gets you to a working CoPaw instance in minutes.

Cleanest

Docker

The better choice if you already think in containers, want easier cleanup, or plan to move from laptop to server later.

No-install

ModelScope Studio

A one-click cloud trial. Good for seeing CoPaw live without touching local terminals, but you give up some control over the runtime.

Always-on

Alibaba Cloud ECS or PAI-EAS

Use only if you already know you need persistent remote access or a team-facing cloud deployment. Not the right starting point for most beginners.

There are only a few deployment options that make sense for beginners. Pick the one that matches where you are right now.

Deployment options, step by step

Option 1: One-line local install

This is the official recommended path for beginners. On macOS or Linux:

curl -fsSL https://copaw.agentscope.io/install.sh | bash

On Windows PowerShell:

irm https://copaw.agentscope.io/install.ps1 | iex

After installation, open a new terminal so the copaw command is available on your PATH. Rerunning the installer upgrades CoPaw; copaw uninstall removes it.

What to do next

Run the default initializer:

copaw init --defaults

Or use the interactive setup:

copaw init

The default path creates config.json and HEARTBEAT.md in ~/.copaw. The interactive flow walks through heartbeat settings, tool-detail visibility, language, channels, LLM provider selection, API key entry, model choice, and skill selection.

Then start the app:

copaw app

By default, CoPaw listens on 127.0.0.1:8088. Open that address in your browser to reach the Console.


Option 2: pip install

This is for people who prefer explicit Python management. Python must be >= 3.10 and < 3.14.

pip install copaw

The docs also recommend setting up a virtual environment before installing. After that, the flow is the same: initialize, then start the app.

Choose pip if you already manage Python projects regularly, want tighter control over your environment, or are debugging and extending CoPaw. If none of that applies, use the one-line installer.


Option 3: Docker

The official Docker image is agentscope/copaw, with tags including latest and pre.

docker pull agentscope/copaw:latest
docker run -p 8088:8088 -v copaw-data:/app/working agentscope/copaw:latest

This exposes the Console on port 8088 and persists config, memory, and skills inside the copaw-data volume. You can pass API keys through environment variables using -e DASHSCOPE_API_KEY=xxx or an --env-file .env.

A more practical beginner run command:

docker run -d \
  --name copaw \
  -p 8088:8088 \
  -v copaw-data:/app/working \
  --env-file .env \
  agentscope/copaw:latest

This gives you detached background running, persistent data, and cleaner secrets handling. Then open http://127.0.0.1:8088.

The mistake beginners make with Docker: They forget persistence. If you do not mount a volume, your config, memory, and assistant state disappear when the container is removed. The docs explicitly tie persistence to the mounted working directory or volume.


Option 4: ModelScope Studio

If you want a no-install cloud trial, the official docs include a one-click ModelScope Studio path:

  1. Sign up and log in to ModelScope
  2. Open the CoPaw Studio
  3. Complete the one-click setup

The docs warn you to set the Studio to non-public, otherwise others may be able to control your CoPaw instance. This path is fast, but it is a trade-off — you give up some of the clarity that comes from owning the local runtime.


Option 5: Alibaba Cloud

The official docs provide two Alibaba-oriented deployment tracks:

  • Alibaba Cloud ECS one-click deployment — open the one-click deployment link, fill in the required parameters, confirm the cost, create the instance, and wait for the access URL.
  • PAI-EAS deployment — select a region and workspace, choose CoPaw deployment under scenario-based model deployment, enable the web app, select the latest image version, set a persistent OSS path for configuration, and ensure the VPC has public network access. CoPaw needs internet access for search and browser functions. Default instance examples include ecs.c7a.large.

Use cloud deployment if you want CoPaw reachable from anywhere, need a machine that stays on 24/7, are wiring it into a team workflow, or need stable scheduled jobs and persistent assistants. Do not use cloud deployment on day one just because it sounds professional — most beginners should first make it work locally.

The first-run sequence that actually matters

No matter how you install CoPaw, the deployment sequence is the same.

  1. Initialize the working directory~/.copaw stores config.json, HEARTBEAT.md, jobs.json, chats.json, active_skills/, customized_skills/, memory/, and SOUL.md. CoPaw is file-structured, which means you can inspect everything.
  2. Start the server — run copaw app. You can customize host, port, worker count, reload behavior, and log level. For example: copaw app --host 0.0.0.0 --port 9090 or copaw app --log-level debug.
  3. Open the Console — this is your control room. Use it to chat, manage channels, sessions, scheduled jobs, persona files, skills, MCP clients, model providers, and environment variables.

Configuring and extending your assistant

Configuring your model provider

This is where many deployment guides cheat — they install the app and stop. But if no model is configured, you have not deployed an assistant. You have deployed an empty shell.

The GitHub docs list three ways to configure a cloud model provider:

  • Console — Settings → Models
  • Interactive copaw init
  • Environment variables — such as DASHSCOPE_API_KEY for DashScope

For beginners, the Console is the most legible route. Open Settings → Models, choose a provider, paste the API key, enable the provider and model, and save.

When to use local models instead

Official docs list local support for llama.cpp, MLX, and Ollama. That means CoPaw can run without cloud API keys — attractive if you care about privacy, cost control, or offline-ish workflows. The blunt version: local deployment is only easier if your machine is strong enough and you already understand the local model runtime you picked. If you are on Apple Silicon, MLX is especially worth considering because the docs explicitly list it as a supported local backend for Apple hardware.


Connecting a chat channel

The Console is enough to start. But one of CoPaw's core strengths is channel support. Official docs say CoPaw supports DingTalk, Feishu, QQ, Discord, and iMessage, with custom channel plugins available through the built-in registry and CLI tooling.

Beginner recommendation: start with the Console, then add one channel. The official Channels docs explicitly recommend DingTalk as a good first option. Configuration can be done inside the Console under Control → Channels, or by editing ~/.copaw/config.json directly. Saving the config triggers a reload without restarting the app.

Example: DingTalk

For DingTalk, the official process includes:

  1. Create an internal enterprise app
  2. Add the Robot capability
  3. Set message receiving mode to Stream
  4. Publish the app
  5. Copy the Client ID and Client Secret
  6. Optionally add your server's IP to the whitelist for file and image downloads
  7. Enter those credentials into CoPaw via the Console or config.json

Example config block:

{
  "dingtalk": {
    "enabled": true,
    "bot_prefix": "[BOT]",
    "client_id": "your Client ID",
    "client_secret": "your Client Secret"
  }
}

This structure is directly reflected in the official channel documentation.


Enabling scheduled behavior with Heartbeat

One of CoPaw's smarter beginner-friendly concepts is Heartbeat. Official docs describe it as a system that periodically reads the contents of HEARTBEAT.md, sends that content to CoPaw as a message, and optionally routes the reply to a target such as the last-used channel. The docs call it useful for regular check-ins, daily digests, and scheduled reminders.

Beginners often ask for "autonomous AI," but what they usually need is a scheduled prompt. A practical beginner Heartbeat prompt:

Every morning, summarize:
1. My open priorities
2. Anything urgent from yesterday
3. A suggested plan for today
Keep it concise.

Configure the interval during copaw init or through config, and choose whether the target should be main (running CoPaw without sending the reply anywhere) or the last channel. That is a beginner automation pattern that actually works.


Managing skills

Built-in and imported skills can be managed through the Console under Agent → Skills. Custom skills can also be added in the working directory. The app loads skills from the active skills folder. Built-in skills include cron, file reader, news, PDF, DOCX, PPTX, XLSX, and browser-visible tools.

A good beginner skill stack:

  • File reading
  • Basic document tools
  • News only if you need it
  • Browser tools only when necessary
  • Cron only after the chat flow works

Do not enable everything blindly. Self-hosted assistants become chaotic fast when you turn on every capability before you understand the control surface.


Adding MCP integrations

Official docs say CoPaw supports MCP clients through the Console under Agent → MCP, and supports multiple JSON formats for importing MCP client configurations. If you use npx to run MCP servers, Node.js 18 or higher is required.

Beginner rule: ignore MCP on day one unless you already know exactly which external tool server you need. It is powerful, but it is not required for a valid first deployment.

Verifying that deployment worked

Use this ladder to confirm your CoPaw instance is genuinely deployed — not just installed. If you reach step 4, deployment is already real.

  1. `copaw app` starts without crashing

    The server process should start cleanly and report the address it is listening on.

  2. Browser Console opens

    Navigate to http://127.0.0.1:8088 and confirm the Console loads.

  3. Model configuration saves successfully

    Go to Settings → Models, enter your provider and API key, and confirm the model is active.

  4. Chat returns a valid answer

    Send a message in the Chat view and confirm you receive a real response from the model.

  5. One optional channel works

    If you connected a channel like DingTalk, send a test message and confirm CoPaw replies.

  6. One optional scheduled action works

    If you configured Heartbeat, confirm the scheduled prompt fires and the response appears as expected.

Common beginner mistakes

01

Treating install as deployment

Install just puts software on a machine. Deployment means it is configured, reachable, and usable.

02

Forgetting the model provider

The official docs are explicit: if you use a cloud LLM provider, CoPaw will not work until a valid API key is set.

03

Skipping persistence

If you use Docker without a volume, or wipe your working directory carelessly, you lose config and memory state. The working directory is the home of CoPaw's operational data.

04

Connecting too many channels too soon

Start with the Console. Then one channel. Anything else is a distraction while you are still learning the control surface.

05

Going cloud-first without a reason

Most beginners should not start on a cloud instance. You want the shortest feedback loop possible while learning.

Most deployment problems trace back to one of these five patterns.

Beginner deployment recipes

Recipe 1: Fastest possible setup

Use this if you want proof of life in minutes.

  1. Run the one-line installer
  2. copaw init --defaults
  3. copaw app
  4. Open the Console
  5. Set one cloud model provider
  6. Chat in the browser

This follows the official beginner path most closely.


Recipe 2: Best balance of cleanliness and speed

Use Docker.

  1. Pull the official image
  2. Run it with a persistent volume
  3. Pass secrets with .env
  4. Open the Console
  5. Configure the model
  6. Add one channel later

This is the path most technical beginners should use.


Recipe 3: Privacy-first local setup

Use local models.

  1. Install CoPaw with local backend extras such as MLX, llama.cpp, or Ollama
  2. Start CoPaw
  3. Configure the local provider in the Console
  4. Keep everything on your own machine

Official docs explicitly support these local backends.


Recipe 4: Always-on remote assistant

Use Alibaba Cloud ECS or a VPS-style deployment path.

  1. Deploy the remote machine
  2. Persist CoPaw data
  3. Ensure the machine has internet access if search or browser features are needed
  4. Secure the instance properly
  5. Connect one channel

Alibaba's docs specifically note that CoPaw needs internet access for search and browser functions in PAI-EAS deployments.


The real deployment mindset

Beginner deployment should be boring. That is the goal.

You do not want a cinematic install. You want a system that starts every time, stores its state predictably, uses a model you understand, exposes a UI you can operate, and adds channels and automations one by one.

CoPaw is well-suited to that because the official docs expose the control plane clearly: Console, channels, skills, Heartbeat, config, working directory, and model settings are all made visible rather than hidden. The system is opinionated enough to help, but open enough not to trap you.

The moment CoPaw can answer inside the tools where you already work, the assistant starts to feel real.

CoPaw deployment guide

Frequently asked questions

What is the easiest way to deploy CoPaw as a beginner?

The easiest official route is the one-line installer for macOS, Linux, or Windows, followed by copaw init and copaw app. The docs explicitly label the one-line install as the recommended option.

Do I need Python to deploy CoPaw?

Not for the one-line installer. The docs say the installer handles setup automatically. You only need to manage Python yourself if you choose the pip-based install path.

Where does CoPaw store its files?

By default, CoPaw stores its operational data in ~/.copaw, including config.json, HEARTBEAT.md, skills, jobs, chats, memory files, and persona files like SOUL.md.

What port does CoPaw use by default?

The official docs say copaw app listens on 127.0.0.1:8088 by default.

Can I deploy CoPaw with Docker?

Yes. Official docs provide a Docker image agentscope/copaw and a sample run command that maps port 8088 and mounts persistent storage.

Can CoPaw run without cloud API keys?

Yes, if you use supported local backends. Official docs state that local models can run through llama.cpp, MLX, or Ollama, and that local-only use does not require an API key.

Which chat platforms does CoPaw support?

The official site and channel docs list DingTalk, Feishu, QQ, Discord, and iMessage, with custom channel support available through plugins and CLI tools.

Is the web Console enough, or do I need a chat channel?

The Console is enough to start. Official docs say you can chat, manage models, configure channels, edit persona files, manage skills, and more directly through the Console.

What is Heartbeat in CoPaw?

Heartbeat is CoPaw's scheduled-prompt system. It reads HEARTBEAT.md on a fixed interval and can optionally send the result to a configured target such as the last channel you used.

Can CoPaw connect to external tools?

Yes. Official docs say it supports MCP clients through the Console, which lets CoPaw use external MCP servers and their tools.

Is CoPaw open source?

Yes. The official site states that CoPaw is released under the Apache License 2.0.

Should beginners start local or in the cloud?

Start local unless you already know why you need cloud uptime. The shortest path to a real deployment is the one that reduces moving parts.

Build with Octopus Builds

Need help turning the article into an actual system?

We design the operating model, product surface, and delivery plan behind AI systems that need to ship cleanly and keep working in production.

Start a conversationExplore capabilities

Up next

Building AI Agents for Small Businesses

AI agents are moving from research demos to operating software. Here's what they actually do, which ones matter most, and how small businesses can build them without engineers.

Read next article