Desktop AI Assistant powered by Claude Agent SDK
If YouClaw is useful to you, give it a GitHub Star.
More stars help more people discover the project.
One click helps keep YouClaw improving.
Download the .dmg file from the Releases page, open it and drag YouClaw into Applications.
Apple Silicon (M1/M2/M3/M4) and Intel are both supported.
Download the .exe installer from Releases and run it.
🚧 Coming soon — stay tuned!
- Multi-Agent Management — Create and configure multiple AI agents via YAML, each with its own personality, memory, and skills
- Multi-Channel — Connect agents to Telegram, DingTalk, Feishu (Lark), QQ, and WeCom
- Browser Automation — Built-in agent-browser skill with Playwright for web interaction, scraping, and testing
- Scheduled Tasks — Cron / interval / one-shot tasks with automatic retry and stuck detection
- Persistent Memory — Per-agent memory system with conversation logs
- Skills System — Compatible with OpenClaw SKILL.md format, 3-tier priority loading, hot reload, skills marketplace
- Authentication — Built-in auth system for cloud deployment
- Web UI — React + shadcn/ui with SSE streaming, i18n (中文 / English)
- Lightweight Desktop App — Tauri 2 bundle ~27 MB (vs ~338 MB Electron), native system tray
| Layer | Choice |
|---|---|
| Runtime & Package Manager | Bun |
| Desktop Shell | Tauri 2 (Rust) |
| Backend | Hono + bun:sqlite + Pino |
| Agent | @anthropic-ai/claude-agent-sdk |
| Frontend | Vite + React + shadcn/ui + Tailwind CSS |
| Channels | grammY (Telegram) · dingtalk-stream (DingTalk) · @larksuiteoapi/node-sdk (Feishu) · QQ · WeCom |
| Scheduled Tasks | croner |
| E2E Testing | Playwright |
┌──────────────────────────────────────────────────────┐
│ Tauri 2 (Rust Shell) │
│ ┌──────────────┐ ┌────────────────────────────┐ │
│ │ WebView │ │ Bun Sidecar │ │
│ │ Vite+React │◄──► Hono API Server │ │
│ │ shadcn/ui │ HTTP│ Claude Agent SDK │ │
│ │ │ SSE │ bun:sqlite │ │
│ └──────────────┘ └────────────────────────────┘ │
└──────────────────────────────────────────────────────┘
│ │
Tauri Store EventBus
(settings) ┌────────┴────────────┐
│ │
Web / API Multi-Channel
┌───────┼───────┐
Telegram DingTalk Feishu
QQ WeCom
│
Browser Automation
(Playwright)
- Desktop mode: Tauri spawns a Bun sidecar process; WebView loads the frontend
- Web mode: Vite frontend + Bun backend deployed independently
- Three-layer design: Entry (Telegram/DingTalk/Feishu/QQ/WeCom/Web/API) → Core (Agent/Scheduler/Memory/Skills) → Storage (SQLite/filesystem)
Before Quick Start: Star if you want to see YouClaw keep improving.
It is a small click that makes the project easier to sustain.
- Bun >= 1.1
- Rust (for Tauri desktop build)
- An Anthropic API key
git clone https://github.com/CodePhiliaX/youClaw.git
cd youClaw
# Install dependencies
bun install
cd web && bun install && cd ..
# Configure environment
cp .env.example .env
# Edit .env and set ANTHROPIC_API_KEY# Terminal 1 — backend
bun dev
# Terminal 2 — frontend
bun dev:webOpen http://localhost:5173 · API at http://localhost:62601
bun dev:tauribun build:tauriOutput: src-tauri/target/release/bundle/ (DMG / MSI / AppImage)
bun dev # Backend dev server (hot reload)
bun dev:web # Frontend dev server
bun dev:tauri # Tauri dev mode (frontend + backend + WebView)
bun start # Production backend
bun typecheck # TypeScript type check
bun test # Run tests
bun build:sidecar # Compile Bun sidecar binary
bun build:tauri # Build Tauri desktop app
bun build:tauri:fast # Build without bundling (faster dev builds)
bun test:e2e # Run E2E tests (Playwright)
bun test:e2e:ui # Run E2E tests with UI| Variable | Required | Default | Description |
|---|---|---|---|
ANTHROPIC_API_KEY |
Yes | — | Anthropic API key |
ANTHROPIC_BASE_URL |
No | — | Custom API base URL |
PORT |
No | 62601 |
Backend server port |
DATA_DIR |
No | ./data |
Data storage directory |
AGENT_MODEL |
No | claude-sonnet-4-6 |
Default Claude model |
LOG_LEVEL |
No | info |
Log level |
TELEGRAM_BOT_TOKEN |
No | — | Enable Telegram channel |
DINGTALK_CLIENT_ID |
No | — | DingTalk app client ID |
DINGTALK_SECRET |
No | — | DingTalk app secret |
FEISHU_APP_ID |
No | — | Feishu (Lark) app ID |
FEISHU_APP_SECRET |
No | — | Feishu (Lark) app secret |
QQ_BOT_APP_ID |
No | — | QQ bot app ID |
QQ_BOT_SECRET |
No | — | QQ bot secret |
WECOM_CORP_ID |
No | — | WeCom corp ID |
WECOM_CORP_SECRET |
No | — | WeCom corp secret |
WECOM_AGENT_ID |
No | — | WeCom agent ID |
WECOM_TOKEN |
No | — | WeCom callback token |
WECOM_ENCODING_AES_KEY |
No | — | WeCom callback AES key |
YOUCLAW_WEBSITE_URL |
No | — | Cloud service website URL |
YOUCLAW_API_URL |
No | — | Cloud service API URL |
MINIMAX_API_KEY |
No | — | MiniMax web search API key |
MINIMAX_API_HOST |
No | — | MiniMax API host |
src/
├── agent/ # AgentManager, AgentRuntime, AgentQueue, PromptBuilder
├── channel/ # Multi-channel support
│ ├── router.ts # MessageRouter
│ ├── telegram.ts # Telegram (grammY)
│ ├── dingtalk.ts # DingTalk (dingtalk-stream)
│ ├── feishu.ts # Feishu / Lark (@larksuiteoapi/node-sdk)
│ ├── qq.ts # QQ
│ └── wecom.ts # WeCom
├── config/ # Environment validation, path constants
├── db/ # bun:sqlite init, CRUD operations
├── events/ # EventBus (stream/tool_use/complete/error)
├── ipc/ # File-polling IPC between Agent and main process
├── logger/ # Pino logger
├── memory/ # Per-agent MEMORY.md and conversation logs
├── routes/ # Hono API routes (/api/*)
├── scheduler/ # Cron/interval/once task scheduler
├── skills/ # Skills loader, watcher, frontmatter parser
src-tauri/
├── src/ # Rust main process (sidecar, window, tray, updater)
agents/ # Agent configs (agent.yaml + SOUL.md + skills/)
skills/ # Project-level skills (SKILL.md format)
e2e/ # E2E tests (Playwright)
web/src/
├── pages/ # Chat, Agents, Skills, Memory, Tasks, Channels, BrowserProfiles, Logs, System, Login
├── components/ # Layout + shadcn/ui
├── api/ # HTTP client + transport
├── i18n/ # i18n (Chinese / English)
- Fork the repo and create your branch from
main - Make your changes and ensure
bun typecheckandbun testpass - Submit a pull request
MIT © CHATDATA
