Skip to content

dongaiqiang/hycode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HyCode

AI 编程助手远程控制工具 - 随时随地控制你的 AI 编程会话

License Rust Version Tests

功能特性快速开始安装使用指南 • [API 文档](#api 文档) • 部署


📖 项目简介

HyCode 是一款开源的 AI 编程助手远程控制工具,让你可以通过手机、平板等移动设备随时随地控制运行在桌面端的 AI 编程会话。

核心场景:

  • 🏠 在家里的沙发上用手机控制书房的电脑运行 Claude Code
  • ☕ 在咖啡馆用 iPad 远程编写代码
  • 🌍 跨设备无缝切换,随时随地继续工作

当前收敛状态(2026-03-27)

  • 主链路:hycode-server (Rust) + hycode-wire (Rust) + hycode-universal (TS/Expo) + hycode-cli (Rust)
  • 参考归档:archive/hycode-server-nodearchive/hycode-mobile
  • 测试证据目录保留:playwright-report/test-results/test/screenshots/

✨ 功能特性

📱 远程控制

  • 通过手机/平板远程控制桌面 AI 编程会话
  • 实时查看 AI 编程进度和输出
  • 一键切换设备控制权
  • 支持多设备同时连接

🔐 端到端加密

  • 所有会话数据端到端加密
  • 服务器无法解密用户消息
  • 支持 ChaCha20-Poly1305 加密
  • 支持 ECDH 密钥交换
  • 支持 Argon2 密码派生

🤖 多 AI 支持

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 --version

方法二:使用 Cargo 安装

cargo install hycode-cli

方法三:下载预编译二进制

访问 Releases 页面下载对应平台的预编译二进制文件。

支持的平台:

  • Linux x86_64
  • macOS x86_64 / Apple Silicon
  • Windows x86_64

🚀 快速开始

1. 启动开发环境

# 启动 PostgreSQL, Redis, MinIO
docker-compose up -d

2. 配置环境

# 复制环境配置
cp .env.example .env

# 生成安全密钥
openssl rand -base64 32
# 将输出添加到 .env 的 HANDY_MASTER_SECRET

3. 运行服务器

# 开发模式
cargo run -p hycode-server

# 生产模式
cargo run --release -p hycode-server

4. 启动 CLI 会话

# 启动 AI 会话
hycode start

# 查看帮助
hycode --help

5. 一键验收主链路

./scripts/verify_main_chain.sh

📖 使用指南

CLI 命令

# 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 环境正常
✓ 网络连接正常
✓ 配置文件存在
✓ 数据库连接正常

🔌 API 文档

RESTful API

健康检查

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/sessions

发送消息

POST /api/v1/sessions/{id}/messages
Content-Type: application/json

{
  "content": "请帮我写一个排序函数",
  "type": "user"
}

WebSocket API

// 连接 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

📋 路线图

Phase 1 (Q1 2026) - MVP ✅

  • 项目脚手架
  • CLI 核心功能
  • 服务端基础
  • 加密模块实现
  • 测试框架搭建

Phase 2 (Q2 2026) - 功能完善

  • WebSocket 实时同步
  • 完整多 AI 供应商支持
  • 推送通知集成
  • 移动端应用开发

Phase 3 (Q3 2026) - 公开发布

  • 完整测试套件
  • 文档完善
  • 性能优化
  • 首次公开发布

🤝 贡献

欢迎贡献!请查看 开发指南 了解如何开始。

主要贡献方式:

  • 🐛 报告 Bug
  • 💡 提出新功能建议
  • 📝 改进文档
  • 🔧 提交代码
  • 🧪 编写测试

快速开始贡献:

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'feat: add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

📄 许可证

MIT License - 详见 LICENSE


📬 联系方式


🙏 致谢

感谢以下开源项目:


HyCode - 让 AI 编程无处不在 🚀

MIT License开发指南部署指南变更日志

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors