Skip to content

jamesMuWB/keepchat

Repository files navigation

KeepChat

跨设备会话同步的 AI 编程助手

CI Version License Downloads


你的 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 (免费额度)

快速开始

环境要求

安装

npm install -g keepchat

初始化

cd 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 天缓存 ❌ 无离线支持
恢复能力 ✅ 任意历史版本 ❌ 仅当前版本

开发

贡献指南

欢迎贡献!请遵循以下流程:

  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

开发环境

# 安装依赖
npm install

# 运行测试
npm test

# 运行 lint
npm run lint

# 构建
npm run build

# 本地开发
npm run dev

提交约定

我们使用 约定式提交

  • feat: - 新功能
  • fix: - 修复 bug
  • docs: - 文档更新
  • style: - 代码格式
  • refactor: - 代码重构
  • test: - 测试相关
  • chore: - 构建/工具相关

性能基准

场景 性能指标
1000 条消息同步 < 3 秒
加密/解密速度 ~50 MB/s
GZIP 压缩率 70-80%
自动合并延迟 < 100ms
内存占用 < 100 MB

路线图

  • 多云存储支持 (AWS S3, Aliyun OSS)
  • 实时同步 (WebSocket)
  • 协作功能 (多用户共享会话)
  • 浏览器扩展
  • 移动端应用
  • 企业版 (私有部署)

许可证

MIT © Muwenbin


致谢


联系方式


让你的 AI 对话,无处不在。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors