# youclaw **Repository Path**: ai-collection/youclaw ## Basic Information - **Project Name**: youclaw - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-19 - **Last Updated**: 2026-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

YouClaw Logo

YouClaw

Desktop AI Assistant powered by Claude Agent SDK

Release License Stars Platform

--- ## Download & Install ### macOS Download the `.dmg` file from the [Releases](https://github.com/CodePhiliaX/youClaw/releases) page, open it and drag **YouClaw** into Applications. > Apple Silicon (M1/M2/M3/M4) and Intel are both supported. ### Windows Download the `.exe` installer from [Releases](https://github.com/CodePhiliaX/youClaw/releases) and run it. ### Linux 🚧 Coming soon β€” stay tuned! --- ## Features - **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 ## Tech Stack | Layer | Choice | |-------|--------| | Runtime & Package Manager | [Bun](https://bun.sh/) | | Desktop Shell | [Tauri 2](https://tauri.app/) (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 | ## Architecture ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 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) ## Quick Start (Development) ### Prerequisites - [Bun](https://bun.sh/) >= 1.1 - [Rust](https://rustup.rs/) (for Tauri desktop build) - An [Anthropic API key](https://console.anthropic.com/) ### Setup ```bash 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 ``` ### Web Mode ```bash # Terminal 1 β€” backend bun dev # Terminal 2 β€” frontend bun dev:web ``` Open http://localhost:5173 Β· API at http://localhost:62601 ### Desktop Mode (Tauri) ```bash bun dev:tauri ``` ### Build Desktop App ```bash bun build:tauri ``` Output: `src-tauri/target/release/bundle/` (DMG / MSI / AppImage) ## Commands ```bash 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 ``` ## Environment Variables | 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 | ## Project Structure ``` 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) ``` ## Contributing 1. Fork the repo and create your branch from `main` 2. Make your changes and ensure `bun typecheck` and `bun test` pass 3. Submit a pull request ## License [MIT](LICENSE) Β© CHATDATA