QwenPaw is a self-hosted personal AI assistant built in Python. It runs on your own machine or a server you control, keeps a persistent memory of conversations, and connects to chat apps like DingTalk, Lark, WeChat, Discord, Telegram, and iMessage from a single instance. It's aimed at developers and technical users who want an assistant they fully control, rather than a hosted SaaS chatbot, and who are comfortable running a local service or container.
QwenPaw fits well if you want a personal automation layer: recurring news digests, scheduled report generation, or broadcasting summaries to several chat channels at once. It also works as a coding helper for reviewing, editing, and navigating your own codebase through Coding Mode, or as a document assistant that reads and converts PDF, Word, Excel, and PowerPoint files.
It's a reasonable choice for individuals or small teams that want to run their own AI assistant without sending data to a third-party vendor, and who are fine with local models or bringing their own API keys.
It's not a fit if you need a managed, multi-tenant SaaS product with no infrastructure to maintain, or if your organization can't run background services, Docker containers, or local model runtimes due to policy restrictions. It's also not designed as a drop-in replacement for enterprise support-ticket or CRM systems; it's a personal/small-team assistant, not a customer-facing platform.
QwenPaw requires Python >= 3.11 and < 3.14. There are three supported install paths.
Pip install (if you manage Python yourself):
pip install qwenpaw
qwenpaw init --defaults
qwenpaw app
Open the console at http://127.0.0.1:8088/ to configure a model provider. Chat app connections (DingTalk, Lark, WeChat, etc.) are set up separately through the channel docs.
Script install (no Python setup needed, installs uv, Node.js, and all dependencies automatically):
# macOS / Linux
curl -fsSL https://qwenpaw.agentscope.io/install.sh | bash
# Windows (PowerShell)
irm https://qwenpaw.agentscope.io/install.ps1 | iex
After installing, run:
qwenpaw init --defaults
qwenpaw app
Docker: images are published on Docker Hub as agentscope/qwenpaw (tags latest and pre), with a mirror on Alibaba Cloud Container Registry for users in China.
docker pull agentscope/qwenpaw:latest
docker run -p 127.0.0.1:8088:8088 \
-v qwenpaw-data:/app/working \
-v qwenpaw-secrets:/app/working.secret \
-v qwenpaw-backups:/app/working.backups \
agentscope/qwenpaw:latest
Config, memory, and skills persist in the qwenpaw-data volume, provider settings and API keys in qwenpaw-secrets, and backup archives in qwenpaw-backups. Pass provider keys like DASHSCOPE_API_KEY with -e or --env-file. To reach services like Ollama running on the host machine from inside the container, add --add-host=host.docker.internal:host-gateway and point the model Base URL to host.docker.internal.