跨设备会话同步的 AI 编程助手
你的 AI 对话,跨设备跟随。
KeepChat 是一个增强的 AI 编程助手,支持云端会话同步、跨设备恢复和智能冲突解决。基于 OpenSpec 工作流构建,让 AI 辅助编程更加可靠和可预测。
→ 同步,而非孤立
→ 安全,而非妥协
→ 简单,而非复杂
→ 可追溯,而非黑盒
→ 从个人到团队,平滑扩展
- 七牛云存储 - 可靠的云端存储,支持断点续传
- AES-256-GCM 加密 - 军用级加密,保护你的对话隐私
- 增量同步 - 仅上传变更,节省流量和时间
- 自动同步 - 后台自动备份,每 5 分钟或每 10 条消息触发
- 会话恢复 - 一键从云端恢复任意会话
- 路径映射 - 智能处理不同设备的路径差异
- 冲突解决 - 三种策略(保留本地/云端/手动合并)+ 智能自动合并
- 冲突备份 - 自动备份被覆盖的数据,保留 7 天
- Slash Commands - 直观的命令接口
- 进度反馈 - 实时显示上传/下载进度
- 错误处理 - 友好的错误提示和解决建议
- 密钥管理 - 灵活的密钥导入/导出/轮换
# 同步当前会话到云端
你: /sync-session
AI: ✅ 会话已同步
会话ID: 550e8400-e29b-41d4-a716-446655440000
消息数量: 127
上传大小: 45.2 KB
压缩率: 72%
# 在另一个设备恢复会话
你: /restore-session 550e8400-e29b-41d4-a716-446655440000
AI: ✅ 会话已恢复
消息数量: 127
原始设备: MacBook Pro
创建时间: 2026-01-28 10:30:00
# 列出所有云端会话
你: /list-sessions --limit 10
AI: 📋 云端会话列表
1. 550e84... - 127 消息 - 2小时前
2. abc123... - 89 消息 - 1天前
...
存储使用: 2.3 MB / 10 GB (免费额度)- Node.js >= 20.19.0
- 七牛云账号(免费注册)
npm install -g keepchatcd your-project
keepchat init# 运行配置向导
keepchat configure qiniu
# 或手动设置环境变量
export QINIU_ACCESS_KEY="your-access-key"
export QINIU_SECRET_KEY="your-secret-key"
export QINIU_BUCKET="your-bucket-name"
export QINIU_REGION="z0" # 华东# 自动生成加密密钥
keepchat configure encryption
# 或使用你自己的密钥
export ENCRYPTION_API_KEY="your-api-key"# 同步当前会话
keepchat sync
# 恢复会话
keepchat restore <session-id>
# 列出所有会话
keepchat list
# 删除会话
keepchat delete <session-id>keepchat/
├── src/
│ ├── session-sync/ # 会话同步引擎
│ │ ├── sync.js # 上传流程
│ │ ├── restore.js # 下载流程
│ │ ├── incremental.js # 增量同步
│ │ ├── conflict-*.js # 冲突检测与解决
│ │ └── ...
│ ├── qiniu/ # 七牛云适配器
│ │ ├── upload.js # 文件上传
│ │ ├── download.js # 文件下载
│ │ ├── list.js # 文件列表
│ │ └── ...
│ ├── encryption/ # 加密模块
│ │ ├── aes.js # AES-256-GCM
│ │ ├── keys.js # 密钥派生
│ │ └── ...
│ ├── commands/ # Slash Commands
│ └── ux/ # 用户体验组件
└── tests/ # 测试套件
├── unit/ # 单元测试 (98+)
├── e2e/ # 端到端测试
├── security/ # 安全测试
├── performance/ # 性能测试
└── network/ # 网络异常测试
KeepChat 将安全性作为首要考虑:
- 端到端加密 - 所有会话数据使用 AES-256-GCM 加密
- 密钥派生 - PBKDF2-SHA256 (100,000 次迭代)
- 完整性验证 - SHA-256 哈希校验
- 弱密码检测 - 自动拒绝常见弱密码
- 认证标签 - GCM 模式提供防篡改保护
- 零知识 - 七牛云无法读取你的加密数据
| 特性 | KeepChat | 传统方案 |
|---|---|---|
| 跨设备同步 | ✅ 云端同步 | ❌ 本地孤立 |
| 数据加密 | ✅ AES-256-GCM | ❌ 明文存储 |
| 冲突解决 | ✅ 智能合并 | ❌ 手动处理 |
| 增量同步 | ✅ 仅传变更 | ❌ 全量上传 |
| 压缩优化 | ✅ GZIP (~70%) | ❌ 无压缩 |
| 离线缓存 | ✅ 30 天缓存 | ❌ 无离线支持 |
| 恢复能力 | ✅ 任意历史版本 | ❌ 仅当前版本 |
欢迎贡献!请遵循以下流程:
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/amazing-feature) - 提交你的更改 (
git commit -m 'feat: add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 开启一个 Pull Request
# 安装依赖
npm install
# 运行测试
npm test
# 运行 lint
npm run lint
# 构建
npm run build
# 本地开发
npm run dev我们使用 约定式提交:
feat:- 新功能fix:- 修复 bugdocs:- 文档更新style:- 代码格式refactor:- 代码重构test:- 测试相关chore:- 构建/工具相关
| 场景 | 性能指标 |
|---|---|
| 1000 条消息同步 | < 3 秒 |
| 加密/解密速度 | ~50 MB/s |
| GZIP 压缩率 | 70-80% |
| 自动合并延迟 | < 100ms |
| 内存占用 | < 100 MB |
- 多云存储支持 (AWS S3, Aliyun OSS)
- 实时同步 (WebSocket)
- 协作功能 (多用户共享会话)
- 浏览器扩展
- 移动端应用
- 企业版 (私有部署)
MIT © Muwenbin
- 作者: Muwenbin
- 邮箱: james_2001_2001@163.com
- 问题反馈: GitHub Issues
- 讨论区: GitHub Discussions
让你的 AI 对话,无处不在。 ⚡