AI 编程助手远程控制工具 - 随时随地控制你的 AI 编程会话
HyCode 是一款开源的 AI 编程助手远程控制工具,让你可以通过手机、平板等移动设备随时随地控制运行在桌面端的 AI 编程会话。
核心场景:
- 🏠 在家里的沙发上用手机控制书房的电脑运行 Claude Code
- ☕ 在咖啡馆用 iPad 远程编写代码
- 🌍 跨设备无缝切换,随时随地继续工作
- 主链路:
hycode-server(Rust) +hycode-wire(Rust) +hycode-universal(TS/Expo) +hycode-cli(Rust) - 参考归档:
archive/hycode-server-node、archive/hycode-mobile - 测试证据目录保留:
playwright-report/、test-results/、test/、screenshots/
- 通过手机/平板远程控制桌面 AI 编程会话
- 实时查看 AI 编程进度和输出
- 一键切换设备控制权
- 支持多设备同时连接
- 所有会话数据端到端加密
- 服务器无法解密用户消息
- 支持 ChaCha20-Poly1305 加密
- 支持 ECDH 密钥交换
- 支持 Argon2 密码派生
| AI 供应商 | 状态 | 描述 |
|---|---|---|
| Claude | ✅ 支持 | Anthropic 的 AI 助手 |
| Kimi | ✅ 支持 | 月之暗面的 AI 助手 |
| 通义千问 | 🔄 计划中 | 阿里巴巴的 AI 助手 |
| Codex | 🔄 计划中 | OpenAI 的代码模型 |
- WebSocket 实时双向通信
- 多设备会话状态同步
- 离线消息队列
- 低延迟消息推送
- AI 需要权限时推送通知
- 任务完成/错误时通知
- 可自定义通知策略
- 支持多种推送渠道
| 组件 | 版本 | 用途 |
|---|---|---|
| Rust | 1.75+ | CLI 和服务端开发 |
| Node.js | 22 LTS | 前端开发与 CLI 依赖 |
| Docker | 最新 | 开发环境服务 |
| Flutter | 可选 | 仅归档移动端参考实现 |
# 1. 克隆项目
git clone https://github.com/hycoder-dev/hycode.git
cd hycode
# 1.1 使用统一 Node 版本
nvm use
# 2. 构建 CLI 工具
cargo build --release -p hycode-cli
# 3. 安装到系统路径
sudo cp target/release/hycode /usr/local/bin/
# 4. 验证安装
hycode --versioncargo install hycode-cli访问 Releases 页面下载对应平台的预编译二进制文件。
支持的平台:
- Linux x86_64
- macOS x86_64 / Apple Silicon
- Windows x86_64
# 启动 PostgreSQL, Redis, MinIO
docker-compose up -d# 复制环境配置
cp .env.example .env
# 生成安全密钥
openssl rand -base64 32
# 将输出添加到 .env 的 HANDY_MASTER_SECRET# 开发模式
cargo run -p hycode-server
# 生产模式
cargo run --release -p hycode-server# 启动 AI 会话
hycode start
# 查看帮助
hycode --help./scripts/verify_main_chain.sh# AI 会话
hycode start # 启动 AI 会话
# 认证
hycode auth login # 登录
hycode auth status # 认证状态
hycode auth logout # 登出
# 后台服务
hycode daemon start # 启动后台服务
hycode daemon stop # 停止后台服务
hycode daemon status # 查看状态
# 诊断
hycode doctor --server http://localhost:3300 # 系统诊断(含 server 连通)
# 服务端交互
hycode server health # 健康检查
hycode server sessions # 会话列表
hycode server create-session "新会话" # 创建会话
hycode server messages <session_id> --limit 20 # 查看消息
hycode server send-message <session_id> "你好" # 发送消息
# 通知
hycode notify "消息" # 发送通知在会话中使用以下命令:
/help, /h - 显示帮助
/quit, /exit - 退出会话
/clear - 清屏
/status - 显示会话状态
/model - 查看/切换模型
/connect - 连接 AI 供应商
# 1. 启动会话
$ hycode start
🚀 HyCode - AI 编程助手远程控制工具
📍 工作目录:.
🤖 AI 供应商:claude
🔐 权限模式:default
可用命令:
/help, /h - 显示帮助
/quit, /exit - 退出会话
/clear - 清屏
/status - 显示会话状态
/model - 查看/切换模型
# 2. 系统诊断
$ hycode doctor
HyCode 诊断工具
===============
✓ Rust 环境正常
✓ 网络连接正常
✓ 配置文件存在
✓ 数据库连接正常GET /health响应:
{
"status": "ok",
"timestamp": "2026-03-04T12:00:00Z"
}POST /api/v1/sessions
Content-Type: application/json
{
"name": "my-session",
"provider": "claude"
}GET /api/v1/sessionsPOST /api/v1/sessions/{id}/messages
Content-Type: application/json
{
"content": "请帮我写一个排序函数",
"type": "user"
}// 连接 WebSocket
const ws = new WebSocket('ws://localhost:3300/ws?token=your-token');
// 监听消息
ws.onmessage = (event) => {
const message = JSON.parse(event.data);
console.log('收到消息:', message);
};
// 发送消息
ws.send(JSON.stringify({
type: 'message',
content: 'Hello'
}));┌─────────────────────────────────────────────────────────────┐
│ HyCode 生态系统 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Universal App│ │ Desktop CLI │ │
│ │ (Expo Web) │ │ (Rust) │ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │
│ └───────────┬─────────────┘ │
│ │ │
│ ┌────────▼────────┐ │
│ │ Sync Server │ │
│ │ (Rust/Axum) │ │
│ └────────┬────────┘ │
│ │ │
│ ┌────────────┼────────────┐ │
│ │ │ │ │
│ ┌────▼────┐ ┌────▼────┐ ┌────▼────┐ │
│ │Postgres │ │ Redis │ │ MinIO │ │
│ │ │ │ (Cache) │ │ (Files) │ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
hycode/
├── Cargo.toml # Rust workspace 配置
├── docker-compose.yml # 开发服务配置
├── DEVELOPMENT.md # 开发指南
├── DEPLOYMENT.md # 部署指南
├── CHANGELOG.md # 变更日志
├── README.md # 项目说明
├── hycode-wire/ # 共享协议和类型
│ ├── src/
│ │ ├── lib.rs
│ │ ├── types.rs # 核心类型定义
│ │ ├── encryption.rs # 加密工具
│ │ └── protocol.rs # 通信协议
│ └── Cargo.toml
├── hycode-cli/ # 命令行工具
│ ├── src/
│ │ ├── main.rs
│ │ ├── commands/ # CLI 命令
│ │ └── ai/ # AI 供应商实现
│ └── Cargo.toml
├── hycode-server/ # 后端服务
│ ├── src/
│ │ ├── main.rs
│ │ ├── server.rs # HTTP 服务器
│ │ ├── routes.rs # API 路由
│ │ ├── ws.rs # WebSocket 处理
│ │ └── db.rs # 数据库工具
│ └── Cargo.toml
├── archive/hycode-server-node/ # Node 服务端参考(已归档)
│ ├── src/
│ └── README.md
└── archive/hycode-mobile/ # 移动应用备选(已归档)
├── lib/
│ ├── main.dart
│ ├── screens/ # 页面
│ ├── widgets/ # 组件
│ ├── services/ # 服务
│ ├── providers/ # 状态管理
│ └── utils/ # 工具
└── pubspec.yaml
# 使用集成测试脚本
./scripts/run_tests.sh
# 或单独运行各类测试
cargo test # Rust 单元测试
cargo test -p hycode-wire # 加密模块测试
npm test # Playwright UI 测试- 保留:
playwright-report/、test-results/、test/、screenshots/ - 这些目录用于验收留档,不纳入默认清理项
# 安装覆盖率工具
cargo install cargo-tarpaulin
# 生成覆盖率报告
cargo tarpaulin --output-dir ./coverage
# 查看 HTML 报告
open ./coverage/tarpaulin-report.html详细的部署指南请查看 DEPLOYMENT.md
# 1. 构建 Docker 镜像
docker-compose -f docker-compose.prod.yml build
# 2. 启动服务
docker-compose -f docker-compose.prod.yml up -d
# 3. 检查状态
docker-compose -f docker-compose.prod.yml ps| 变量名 | 描述 | 默认值 |
|---|---|---|
DATABASE_URL |
PostgreSQL 连接字符串 | - |
REDIS_URL |
Redis 连接字符串 | redis://localhost:6379 |
HANDY_MASTER_SECRET |
主密钥 | - |
RUST_LOG |
日志级别 | info |
PORT |
服务端端口 | 3300 |
- 项目脚手架
- CLI 核心功能
- 服务端基础
- 加密模块实现
- 测试框架搭建
- WebSocket 实时同步
- 完整多 AI 供应商支持
- 推送通知集成
- 移动端应用开发
- 完整测试套件
- 文档完善
- 性能优化
- 首次公开发布
欢迎贡献!请查看 开发指南 了解如何开始。
主要贡献方式:
- 🐛 报告 Bug
- 💡 提出新功能建议
- 📝 改进文档
- 🔧 提交代码
- 🧪 编写测试
快速开始贡献:
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'feat: add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
MIT License - 详见 LICENSE
- 📧 Email: team@hycoder.dev
- 💬 Discord: 加入社区
- 🐦 Twitter: @HyCoder_dev
- 🌐 官网: https://hycoder.dev
感谢以下开源项目:
- Claude Code - AI 编程助手
- Axum - Web 框架
- Flutter - 跨平台 UI 框架
- Sodiumoxide - 加密库
HyCode - 让 AI 编程无处不在 🚀
MIT License • 开发指南 • 部署指南 • 变更日志