# youclaw
**Repository Path**: devai/youclaw
## Basic Information
- **Project Name**: youclaw
- **Description**: 基于 Claude Agent SDK 的桌面 AI Assistant
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-27
- **Last Updated**: 2026-03-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
YouClaw
English | 简体中文 | 日本語
基于 Claude Agent SDK 的桌面 AI Assistant
如果 YouClaw 对你有帮助,欢迎点一个 Star。
每一个 Star 都会帮助更多人发现 YouClaw,也会直接支持项目后续迭代。
一个小小的点击,会让项目更容易持续更新。
---
## 下载与安装
### macOS
从 [Releases](https://github.com/CodePhiliaX/youClaw/releases) 页面下载 `.dmg` 文件,打开后将 **YouClaw** 拖入 Applications。
> 同时支持 Apple Silicon(M1/M2/M3/M4)和 Intel。
### Windows
从 [Releases](https://github.com/CodePhiliaX/youClaw/releases) 下载 `.exe` 安装程序并运行。
### Linux
🚧 即将支持,敬请期待。
---
## 功能特性
- **多 Agent 管理**:通过 YAML 创建和配置多个 AI Agent,每个 Agent 都可以拥有自己的个性、记忆和技能
- **多渠道接入**:可连接 Telegram、钉钉、飞书(Lark)、QQ 和企业微信
- **浏览器自动化**:内置基于 Playwright 的 agent-browser skill,可用于网页操作、抓取和测试
- **定时任务**:支持 Cron / interval / one-shot 任务,并带有自动重试和卡死检测
- **持久化记忆**:提供按 Agent 隔离的记忆系统和会话日志
- **技能系统**:兼容 OpenClaw `SKILL.md` 格式,支持三级优先级加载、热重载和技能市场
- **认证能力**:内置认证系统,适合云端部署
- **Web UI**:基于 React + shadcn/ui,支持 SSE 流式响应与中英文界面
- **轻量桌面应用**:Tauri 2 安装包约 27 MB(对比 Electron 约 338 MB),支持原生系统托盘
## 技术栈
| 层级 | 选型 |
|------|------|
| 运行时与包管理 | [Bun](https://bun.sh/) |
| 桌面壳层 | [Tauri 2](https://tauri.app/)(Rust) |
| 后端 | Hono + bun:sqlite + Pino |
| Agent | `@anthropic-ai/claude-agent-sdk` |
| 前端 | Vite + React + shadcn/ui + Tailwind CSS |
| 渠道 | grammY(Telegram)· `dingtalk-stream`(钉钉)· `@larksuiteoapi/node-sdk`(飞书)· QQ · 企业微信 |
| 定时任务 | croner |
| E2E 测试 | 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)
```
- **桌面模式**:Tauri 会启动一个 Bun sidecar 进程,WebView 负责加载前端
- **Web 模式**:Vite 前端与 Bun 后端可以独立部署
- **三层设计**:入口层(Telegram/DingTalk/Feishu/QQ/WeCom/Web/API)→ 核心层(Agent/Scheduler/Memory/Skills)→ 存储层(SQLite/文件系统)
开始之前:如果你希望 YouClaw 持续更新,欢迎先点个 Star。
这是支持项目继续演进最直接的一种方式。
## 快速开始(开发)
### 前置要求
- [Bun](https://bun.sh/) >= 1.1
- [Rust](https://rustup.rs/)(用于构建 Tauri 桌面应用)
- 一个 [Anthropic API key](https://console.anthropic.com/)
### 安装与初始化
```bash
git clone https://github.com/CodePhiliaX/youClaw.git
cd youClaw
# 安装依赖
bun install
cd web && bun install && cd ..
# 配置环境变量
cp .env.example .env
# 编辑 .env 并设置 ANTHROPIC_API_KEY
```
### Web 模式
```bash
# 终端 1:后端
bun dev
# 终端 2:前端
bun dev:web
```
打开 http://localhost:5173 · API 地址为 http://localhost:62601
### 桌面模式(Tauri)
```bash
bun dev:tauri
```
### 构建桌面应用
```bash
bun build:tauri
```
输出目录:`src-tauri/target/release/bundle/`(DMG / MSI / AppImage)
## 常用命令
```bash
bun dev # 启动后端开发服务器(热重载)
bun dev:web # 启动前端开发服务器
bun dev:tauri # 启动 Tauri 开发模式(前端 + 后端 + WebView)
bun start # 启动生产模式后端
bun typecheck # TypeScript 类型检查
bun test # 运行测试
bun build:sidecar # 编译 Bun sidecar 二进制
bun build:tauri # 构建 Tauri 桌面应用
bun build:tauri:fast # 不打包构建(更快的开发构建)
bun test:e2e # 运行 E2E 测试(Playwright)
bun test:e2e:ui # 以 UI 模式运行 E2E 测试
```
## 环境变量
| 变量 | 必填 | 默认值 | 说明 |
|------|------|--------|------|
| `ANTHROPIC_API_KEY` | 是 | — | Anthropic API key |
| `ANTHROPIC_BASE_URL` | 否 | — | 自定义 API Base URL |
| `PORT` | 否 | `62601` | 后端服务端口 |
| `DATA_DIR` | 否 | `./data` | 数据存储目录 |
| `AGENT_MODEL` | 否 | `claude-sonnet-4-6` | 默认 Claude 模型 |
| `LOG_LEVEL` | 否 | `info` | 日志级别 |
| `TELEGRAM_BOT_TOKEN` | 否 | — | 启用 Telegram 渠道 |
| `DINGTALK_CLIENT_ID` | 否 | — | 钉钉应用 Client ID |
| `DINGTALK_SECRET` | 否 | — | 钉钉应用 Secret |
| `FEISHU_APP_ID` | 否 | — | 飞书(Lark)应用 App ID |
| `FEISHU_APP_SECRET` | 否 | — | 飞书(Lark)应用 App Secret |
| `QQ_BOT_APP_ID` | 否 | — | QQ Bot App ID |
| `QQ_BOT_SECRET` | 否 | — | QQ Bot Secret |
| `WECOM_CORP_ID` | 否 | — | 企业微信 Corp ID |
| `WECOM_CORP_SECRET` | 否 | — | 企业微信 Corp Secret |
| `WECOM_AGENT_ID` | 否 | — | 企业微信 Agent ID |
| `WECOM_TOKEN` | 否 | — | 企业微信回调 Token |
| `WECOM_ENCODING_AES_KEY` | 否 | — | 企业微信回调 AES Key |
| `YOUCLAW_WEBSITE_URL` | 否 | — | 云服务网站地址 |
| `YOUCLAW_API_URL` | 否 | — | 云服务 API 地址 |
| `MINIMAX_API_KEY` | 否 | — | MiniMax Web Search API key |
| `MINIMAX_API_HOST` | 否 | — | MiniMax API Host |
## 项目结构
```
src/
├── agent/ # AgentManager、AgentRuntime、AgentQueue、PromptBuilder
├── channel/ # 多渠道支持
│ ├── router.ts # MessageRouter
│ ├── telegram.ts # Telegram(grammY)
│ ├── dingtalk.ts # 钉钉(dingtalk-stream)
│ ├── feishu.ts # 飞书 / Lark(@larksuiteoapi/node-sdk)
│ ├── qq.ts # QQ
│ └── wecom.ts # 企业微信
├── config/ # 环境变量校验、路径常量
├── db/ # bun:sqlite 初始化与 CRUD
├── events/ # EventBus(stream/tool_use/complete/error)
├── ipc/ # Agent 与主进程间的文件轮询 IPC
├── logger/ # Pino 日志
├── memory/ # 按 Agent 隔离的 MEMORY.md 与会话日志
├── routes/ # Hono API 路由(/api/*)
├── scheduler/ # Cron/interval/once 任务调度
├── skills/ # 技能加载器、监听器、frontmatter 解析
src-tauri/
├── src/ # Rust 主进程(sidecar、window、tray、updater)
agents/ # Agent 配置(agent.yaml + SOUL.md + skills/)
skills/ # 项目级技能(SKILL.md 格式)
e2e/ # E2E 测试(Playwright)
web/src/
├── pages/ # Chat、Agents、Skills、Memory、Tasks、Channels、BrowserProfiles、Logs、System、Login
├── components/ # Layout + shadcn/ui
├── api/ # HTTP client + transport
├── i18n/ # i18n(中文 / English)
```
## 贡献指南
1. Fork 仓库并从 `main` 创建分支
2. 完成修改后,确保 `bun typecheck` 和 `bun test` 通过
3. 提交 Pull Request
## License
[MIT](LICENSE) © CHATDATA