RiemFlow
AI 辅助编程效率工具 - O(1) 极简架构
RiemFlow 是一款专为 Cursor/VS Code 打造的 AI 辅助编程效率插件,遵循「零 UI、零鼠标、极简主义」的设计哲学,通过三个快捷键实现 AI 编程的完整闭环。
🎯 核心理念
O(1) 极简主义
- 零 UI: 无面板、无弹窗、无配置界面
- 零鼠标: 全键盘操作,无需触摸鼠标
- 零摩擦: 单键触发,瞬间响应
左手零位移操作区
Alt+X (Toggle) ←→ Alt+V (Accept) ←→ Alt+E (Fetch)
X V E
相邻键位,左手零位移,O(1) 极简!
⚡ 三大神圣指令
1️⃣ Toggle (Alt+X) - 焦点切换
功能: 在代码编辑区与 AI Chat 输入区之间瞬间切换
技术亮点:
- 使用 Cursor 真实底层命令
aichat.newchataction
- 乒乓切换逻辑,无需记忆状态
- 终端黑洞穿透,Shell 拦截失效
使用场景:
- 在编辑器写代码 → 按 Alt+X → 切到 Chat 提问
- 在 Chat 提问 → 按 Alt+X → 回到编辑器继续
2️⃣ Accept (Alt+V) - 一键采纳
功能: 一键采纳 AI 建议的代码 Diff
技术亮点:
- 双命令降级路由器(Ultimate Accept Router)
- ①
editor.action.inlineDiffs.acceptAll (行内 Diff)
- ②
composer.acceptComposerStep (Chat 面板)
- 自动识别场景,精准采纳
- 无建议时静默处理,不打扰用户
使用场景:
- AI 生成灰色 Diff 建议 → 按 Alt+V → 瞬间上屏
- Chat 面板提供代码块 → 按 Alt+V → 一键采纳
3️⃣ Fetch (Alt+E) - 抓取报错
功能: 一键提取 Terminal 报错并粘贴到 Chat
技术亮点:
- 全自动静默盲抓(Auto-Fetch)
- 剪贴板流智能处理
- 智能截取最后 2000 字符(最新报错在最下面)
- 视觉无痕恢复(全选→复制→取消)
- 终端黑洞穿透,输入栏不拦截
使用场景:
- Terminal 报错 → 按 Alt+E
- Chat 面板自动打开 + 剪贴板已有 Prompt
- 按 Ctrl+V 粘贴并发送
🚀 快速开始
安装方式
方式一:VSIX 安装包(推荐)
# 1. 编译打包
npm run compile
npm run vsix:package
# 2. 在 Cursor/VS Code 中安装
# 扩展 → ... → 从 VSIX 安装
方式二:开发模式运行
# 1. 克隆仓库
git clone https://github.com/jsh423/RiemFlow-Core.git
cd RiemFlow-Core
# 2. 安装依赖
npm install
# 3. 编译
npm run compile
# 4. 在 Cursor/VS Code 中按 F5 启动扩展开发主机
首次激活
扩展首次激活时会自动修改全局配置:
{
"terminal.integrated.commandsToSkipShell": [
"riemflow.toggleFocus",
"riemflow.acceptSuggestion",
"riemflow.fetchError"
]
}
作用: 确保 RiemFlow 快捷键在终端输入栏中拥有绝对优先级,不会被 Shell 吞噬。
⌨️ 快捷键一览
| 指令 |
快捷键 |
功能 |
状态 |
| Toggle |
Alt+X |
编辑器 ↔ Chat 焦点切换 |
✅ 已闭环 |
| Accept |
Alt+V |
采纳 AI 建议(行内 + 面板) |
✅ 已闭环 |
| Fetch |
Alt+E |
抓取 Terminal 报错 |
✅ 已闭环 |
🛠️ 技术架构
技术栈
- TypeScript 5.4 - 类型安全的开发体验
- VS Code Extension API - 深度集成编辑器能力
- Cursor 专属命令 - 逆向工程获得的底层 API
架构原则
1. 探针先行 (Probe First)
- 所有功能先实现物理探针(showInformationMessage)
- 验证快捷键拦截成功后再注入业务逻辑
- 避免在错误的方向上浪费时间
2. Git-Ops 严格协议
# 1. 切出功能分支
git checkout -b feat/<功能名>
# 2. 开发并提交
git commit -m "feat: 具体功能描述"
# 3. 降维压缩合并到 main
git checkout main
git merge --squash feat/<功能名>
git commit -m "feat: 物理闭环 <功能名>"
# 4. 销毁沙盒分支
git branch -D feat/<功能名>
3. O(1) 代码哲学
- 极简代码,拒绝过度工程
- 主节点(extension.ts)只负责挂载,不写业务逻辑
- 每个命令文件独立职责,单一功能
4. 终端黑洞穿透
- 自动注入全局白名单配置
- 确保 Shell 无法吞噬快捷键
- 绝对物理打断权
📁 项目结构
RiemFlow-Core/
├── .claude/
│ └── CLAUDE.md # 系统宪法(开发协议)
├── src/
│ ├── extension.ts # 主节点(极轻量)
│ └── commands/
│ ├── toggleFocus.ts # Alt+X 焦点切换
│ ├── acceptSuggestion.ts # Alt+V 采纳建议
│ └── fetchError.ts # Alt+E 抓取报错
├── package.json # 扩展配置
├── tsconfig.json # TypeScript 配置
├── .gitignore # Git 忽略规则
└── README.md # 本文档
🧪 开发测试
运行测试
# 1. 编译
npm run compile
# 2. 在 Cursor/VS Code 中按 F5 启动扩展开发主机
# 3. 测试快捷键
# - Alt+X: 焦点切换测试
# - Alt+V: 采纳建议测试(需要 AI 生成 Diff)
# - Alt+E: 抓取报错测试(需要 Terminal 报错)
调试技巧
- 打开
帮助 > 切换开发人员工具 查看 Console 日志
- 使用
workbench.action.toggleDevTools 快捷键打开调试面板
📜 版本历史
v0.1 MVP (2025-02-27) ✅
- ✅ Alt+X 焦点切换功能物理闭环
- ✅ Alt+V 采纳建议功能物理闭环
- ✅ Alt+E 抓取报错功能物理闭环
- ✅ 终端黑洞穿透机制部署
- ✅ O(1) 极简架构验证通过
🎓 设计哲学
为什么是 Alt+X/V/E?
- X (eXchange): 交换、切换,直观表达焦点切换
- V (Verify/✅): 验证、确认,V 的形状像打钩
- E (Error/Extract): 错误、提取,E 就是 Error 的首字母
为什么零 UI?
- UI 是摩擦力的来源
- 配置界面是熵增的温床
- 快捷键是 O(1) 的唯一路径
为什么零鼠标?
- 鼠标移动是物理摩擦
- 键盘操作是思维流水的延续
- 左手零位移是人体工学的极致
📄 许可证
MIT License
🤝 贡献指南
开发协议
- 遵守
.claude/CLAUDE.md 系统宪法
- 探针先行,物理验证
- Git-Ops 严格协议(feat 分支 + squash merge)
- O(1) 代码哲学(极简、单一职责)
提交规范
feat: 新功能
fix: 修复 Bug
refactor: 重构代码
chore: 构建/工具链变更
docs: 文档更新
🌟 致谢
- Cursor IDE - 最佳 AI 编程环境
- VS Code Team - 强大的扩展 API
- TypeScript Team - 类型安全的开发体验
📮 联系方式
RiemFlow v0.1 MVP - 三大神圣指令,完整闭环,极简至极 🚀