章节 01
导读 / 主楼:CodingBuddy:Rust编写的终端原生AI编程助手
CodingBuddy是一款用Rust开发的开源终端AI编程助手,集成聊天、规划、工具执行、代码审查、索引和长时间自动运行等功能,支持DeepSeek、OpenAI等模型,具备本地ML能力和强大的安全策略。
正文
CodingBuddy是一款用Rust开发的开源终端AI编程助手,集成聊天、规划、工具执行、代码审查、索引和长时间自动运行等功能,支持DeepSeek、OpenAI等模型,具备本地ML能力和强大的安全策略。
章节 01
CodingBuddy是一款用Rust开发的开源终端AI编程助手,集成聊天、规划、工具执行、代码审查、索引和长时间自动运行等功能,支持DeepSeek、OpenAI等模型,具备本地ML能力和强大的安全策略。
章节 02
ask:每次写操作都询问\n- auto:信任AI自动执行\n- plan:先审阅计划再执行\n- bypass:完全绕过(危险)\n\n默认拒绝规则\n\n内置安全规则阻止危险操作:\n- rm -rf 类命令\n- git push --force\n- .env 文件编辑\n- 其他高风险操作\n\n隐私扫描\n\n三层秘密检测机制:\n- 路径模式匹配\n- 内容模式匹配\n- 内置敏感信息模式\n\n发现敏感信息后会自动在工具输出中脱敏。\n\n检查点与回滚\n\n每次破坏性操作前自动创建检查点,支持:\n- 步骤级快照(SHA-256哈希)\n- 细粒度撤销(按工具调用回滚)\n- 会话级重做\n\n### 本地ML能力(可选)\n\nCodingBuddy支持完全离线的本地智能层,基于Candle框架:\n\n代码检索\n- 语义嵌入(jina-code-v2模型,约270MB)\n- HNSW向量索引(通过Usearch)\n- 混合检索(向量+BM25,RRF融合)\n\n幽灵文本补全\n- 本地ML驱动的行内补全\n- Tab接受,Alt+Right逐词接受\n- 基于Candle的代码补全模型(700MB-1.5GB)\n\n隐私优先\n- 所有处理本地完成\n- 无需网络连接\n- 代码不会离开本机\n\n### 交互式TUI\n\nCodingBuddy提供了一个功能丰富的终端用户界面:\n\nVim模式\n- 熟悉的Vim风格导航\n- 命令模式、插入模式切换\n- 快捷键支持\n\n智能补全\n- @file 语法自动补全文件路径\n- !bash 前缀直接执行shell命令\n- 语法高亮\n\n会话管理\n- 会话持久化(JSONL事件日志+SQLite投影)\n- 确定性重放(可以精确重现会话)\n- 会话恢复和继续\n\n### 高级功能\n\nMCP集成\n\n支持Model Context Protocol(MCP),可以:\n- 连接MCP服务器(stdio/http传输)\n- 将MCP提示作为斜杠命令使用\n- 扩展AI的能力边界\n\n技能与子代理\n\n- 技能发现与执行(forked执行)\n- 子代理系统(工作树隔离)\n- 自定义代理定义\n\n代码审查工作流\n\n专门的代码审查模式:\n- 审查暂存变更\n- 审查PR差异\n- 发布审查评论到PR\n\n## 架构设计\n\nCodingBuddy采用多crate工作区架构,每个crate职责清晰:\n\n| Crate | 职责 |\n|-------|------|\n| codingbuddy-cli | CLI分发、参数解析、24个子命令处理器 |\n| codingbuddy-agent | 代理引擎、工具循环、复杂度分类器 |\n| codingbuddy-core | 共享类型、配置加载 |\n| codingbuddy-llm | LLM客户端、流式处理、提示缓存 |\n| codingbuddy-tools | 工具定义、插件管理、shell运行器 |\n| codingbuddy-policy | 权限引擎、审批门、输出扫描 |\n| codingbuddy-store | 会话持久化 |\n| codingbuddy-memory | 长期记忆、检查点 |\n| codingbuddy-index | 全文代码索引、RAG检索 |\n| codingbuddy-local-ml | 本地ML(Candle嵌入、补全) |\n| codingbuddy-ui | TUI渲染(ratatui/crossterm) |\n| codingbuddy-mcp | MCP服务器管理 |\n\n这种模块化设计使得:\n- 各组件可以独立测试\n- 功能可以按需启用\n- 社区可以贡献特定模块\n\n## 使用场景\n\nCodingBuddy适用于多种开发场景:\n\n### 日常开发辅助\n\nbash\n# 快速询问\ncodingbuddy ask "如何在这个项目中实现JWT认证?"\n\n# 交互式聊天\ncodingbuddy chat\n\n# 生成实现计划\ncodingbuddy plan "重构auth中间件,保持行为不变"\n\n\n### 代码审查\n\nbash\n# 审查暂存变更\ncodingbuddy review --staged --focus correctness\n\n# 审查PR并发布评论\ncodingbuddy review --pr 123 --publish --max-comments 20\n\n\n### 自动化任务\n\nbash\n# 自动修复测试(最长运行1小时)\ncodingbuddy autopilot "修复crates/codingbuddy-cli中的不稳定测试" --hours 1\n\n# 监控自动任务状态\ncodingbuddy autopilot status --follow\n\n\n### 离线开发\n\n启用本地ML后,即使没有网络连接也能:\n- 进行语义代码搜索\n- 获得代码补全建议\n- 保持隐私安全\n\n## 配置与定制\n\nCodingBuddy的配置采用分层合并策略(后层覆盖前层):\n\n1. ~/.codingbuddy/settings.json(用户级)\n2. .codingbuddy/settings.json(项目级)\n3. .codingbuddy/settings.local.json(本地覆盖,应gitignore)\n\n关键配置示例:\n\njson\n{\n \"llm\": {\n \"base_model\": \"deepseek-chat\",\n \"max_think_model\": \"deepseek-reasoner\",\n \"context_window_tokens\": 128000\n },\n \"agent_loop\": {\n \"tool_loop_max_turns\": 50\n },\n \"policy\": {\n \"approve_edits\": \"ask\",\n \"allowlist\": [\"cargo *\", \"npm test\", \"git status\"]\n },\n \"local_ml\": {\n \"enabled\": false\n }\n}\n\n\n## 与其他工具的比较\n\n| 特性 | CodingBuddy | Claude Code | GitHub Copilot | Cursor |\n|------|-------------|-------------|----------------|--------|\n| 运行环境 | 终端 | 终端 | IDE插件 | 独立IDE |\n| 自主执行 | ✅ 完整工具循环 | ✅ 完整工具循环 | ❌ 仅补全/聊天 | ✅ 部分支持 |\n| 本地ML | ✅ 可选 | ❌ | ❌ | ❌ |\n| 开源 | ✅ MIT | ❌ | ❌ | ❌ |\n| 权限控制 | ✅ 7种模式 | ✅ 有 | ❌ 有限 | ❌ 有限 |\n| 语言 | Rust | TypeScript | 私有 | 私有 |\n\nCodingBuddy的优势在于其开源性质、终端原生设计、强大的权限系统和可选的本地ML能力。对于重视隐私、喜欢终端工作流、希望深度定制AI助手的开发者来说,它是一个有吸引力的选择。\n\n## 局限性与注意事项\n\n尽管功能丰富,CodingBuddy也有一些需要注意的地方:\n\n学习曲线\n\n丰富的功能意味着较高的学习成本。新用户需要花时间理解:\n- 权限模式的选择\n- 工具循环的工作机制\n- 配置文件的结构\n\n硬件要求\n\n启用完整本地ML功能需要:\n- 足够的磁盘空间(模型700MB-1.5GB)\n- 一定的内存和CPU资源\n\n生态系统成熟度\n\n作为相对较新的项目,CodingBuddy的生态系统(第三方技能、MCP服务器等)还在发展中。\n\n## 安装与快速开始\n\nmacOS/Linux:\n\nbash\ncurl -fsSL https://raw.githubusercontent.com/aloundoye/codingbuddy/main/scripts/install.sh | bash\n\n\nWindows(PowerShell):\n\npowershell\n$script = Join-Path $env:TEMP \"codingbuddy-install.ps1\"\nInvoke-WebRequest https://raw.githubusercontent.com/aloundoye/codingbuddy/main/scripts/install.ps1 -OutFile $script\n& $script\n\n\n从源码构建:\n\nbash\ncargo build --release --bin codingbuddy\n\n\n配置API密钥:\n\nbash\nexport DEEPSEEK_API_KEY=\"<your-api-key>\"\ncodingbuddy chat\n\n\n## 结语\n\nCodingBuddy代表了AI编程助手向更自主、更可控、更隐私友好的方向发展的一个尝试。它不是一个简单的代码补全工具,而是一个真正能够理解项目上下文、执行复杂任务、并与开发者协作的智能代理。\n\n对于Rust开发者、终端爱好者、隐私敏感用户,以及希望深度定制AI工作流的团队来说,CodingBuddy提供了一个强大的开源选择。随着项目的不断发展和社区的贡献,它有望成为AI辅助开发领域的重要玩家。\n\n项目采用MIT许可证完全开源,代码托管在GitHub上,欢迎贡献和反馈。章节 03
CodingBuddy:Rust编写的终端原生AI编程助手\n\n命令行AI助手的进化\n\n随着大型语言模型能力的不断提升,开发者们开始探索如何将这些AI能力深度集成到日常开发工作流中。从简单的代码补全到复杂的代码重构,AI编程助手正在从IDE插件向更灵活、更强大的形态演进。\n\nCodingBuddy正是这一趋势的代表作——一个完全在终端中运行的AI编程助手,用Rust编写,专为追求效率和控制的开发者设计。它不仅提供聊天和代码生成功能,更将规划、执行、验证完整闭环集成到一个跨平台的CLI工具中。\n\n什么是CodingBuddy?\n\nCodingBuddy是一个终端原生的智能编程代理,采用Rust语言开发,采用多crate工作区架构。它的核心理念是:让AI助手常驻终端,成为开发者工作流程的自然延伸,而不是一个需要切换上下文的独立应用。\n\n与其他AI编程工具不同,CodingBuddy强调:\n\n- 终端优先:完全在命令行中运行,无需离开开发环境\n- 自主执行:不仅能回答问题,还能实际执行工具调用、修改文件、运行测试\n- 安全可控:多层权限系统,确保AI不会意外破坏代码\n- 本地智能:可选的本地ML层,支持离线代码检索和补全\n\n核心功能全景\n\nCodingBuddy的功能非常丰富,可以大致分为几个主要模块:\n\n智能代理引擎\n\nCodingBuddy的核心是一个ReAct风格的工具使用循环:AI思考→选择工具→执行→观察结果→继续思考,直到任务完成。\n\n自适应复杂度\n\n系统会自动评估任务的复杂度(简单/中等/复杂),并相应调整策略:\n- 简单任务:直接执行,快速响应\n- 中等任务:标准工具循环\n- 复杂任务:进入分阶段执行模式(探索→规划→执行→验证)\n\n智能模型路由\n\nCodingBuddy支持自动模型选择:\n- 复杂推理任务自动路由到DeepSeek Reasoner\n- 简单任务使用DeepSeek Chat以提高速度\n- 支持自定义模型配置\n\n防死循环机制\n\n系统会检测重复相同的工具调用,当发现AI陷入循环时自动注入纠正提示,避免浪费token和时间。\n\n工具生态系统\n\nCodingBuddy内置了丰富的工具集,AI可以根据需要调用:\n\n文件操作\n- 读取、写入、编辑文件\n- 批量文件处理\n- 统一差异(diff)解析和应用\n\n代码分析\n- 项目结构分析(自动发现文件树、依赖关系)\n- 语义代码搜索(向量+BM25混合检索)\n- 代码索引构建(基于Tantivy的全文索引)\n\n执行环境\n- 安全的shell命令执行(带权限控制)\n- 多种编程语言的LSP诊断(cargo check、tsc、py_compile等)\n- Git操作集成\n\n上下文管理\n- 自动项目感知(首次运行时分析项目结构)\n- 每轮检索(每轮对话都进行代码检索)\n- 对话压缩(智能总结长对话,保留关键信息)\n\n安全与权限系统\n\nCodingBuddy将安全性放在核心位置,设计了多层防护机制:\n\n7种权限模式\n\n从完全自动到完全手动,适应不同场景:\n- ask:每次写操作都询问\n- auto:信任AI自动执行\n- plan:先审阅计划再执行\n- bypass:完全绕过(危险)\n\n默认拒绝规则\n\n内置安全规则阻止危险操作:\n- rm -rf 类命令\n- git push --force\n- .env 文件编辑\n- 其他高风险操作\n\n隐私扫描\n\n三层秘密检测机制:\n- 路径模式匹配\n- 内容模式匹配\n- 内置敏感信息模式\n\n发现敏感信息后会自动在工具输出中脱敏。\n\n检查点与回滚\n\n每次破坏性操作前自动创建检查点,支持:\n- 步骤级快照(SHA-256哈希)\n- 细粒度撤销(按工具调用回滚)\n- 会话级重做\n\n本地ML能力(可选)\n\nCodingBuddy支持完全离线的本地智能层,基于Candle框架:\n\n代码检索\n- 语义嵌入(jina-code-v2模型,约270MB)\n- HNSW向量索引(通过Usearch)\n- 混合检索(向量+BM25,RRF融合)\n\n幽灵文本补全\n- 本地ML驱动的行内补全\n- Tab接受,Alt+Right逐词接受\n- 基于Candle的代码补全模型(700MB-1.5GB)\n\n隐私优先\n- 所有处理本地完成\n- 无需网络连接\n- 代码不会离开本机\n\n交互式TUI\n\nCodingBuddy提供了一个功能丰富的终端用户界面:\n\nVim模式\n- 熟悉的Vim风格导航\n- 命令模式、插入模式切换\n- 快捷键支持\n\n智能补全\n- @file 语法自动补全文件路径\n- !bash 前缀直接执行shell命令\n- 语法高亮\n\n会话管理\n- 会话持久化(JSONL事件日志+SQLite投影)\n- 确定性重放(可以精确重现会话)\n- 会话恢复和继续\n\n高级功能\n\nMCP集成\n\n支持Model Context Protocol(MCP),可以:\n- 连接MCP服务器(stdio/http传输)\n- 将MCP提示作为斜杠命令使用\n- 扩展AI的能力边界\n\n技能与子代理\n\n- 技能发现与执行(forked执行)\n- 子代理系统(工作树隔离)\n- 自定义代理定义\n\n代码审查工作流\n\n专门的代码审查模式:\n- 审查暂存变更\n- 审查PR差异\n- 发布审查评论到PR\n\n架构设计\n\nCodingBuddy采用多crate工作区架构,每个crate职责清晰:\n\n| Crate | 职责 |\n|-------|------|\n| codingbuddy-cli | CLI分发、参数解析、24个子命令处理器 |\n| codingbuddy-agent | 代理引擎、工具循环、复杂度分类器 |\n| codingbuddy-core | 共享类型、配置加载 |\n| codingbuddy-llm | LLM客户端、流式处理、提示缓存 |\n| codingbuddy-tools | 工具定义、插件管理、shell运行器 |\n| codingbuddy-policy | 权限引擎、审批门、输出扫描 |\n| codingbuddy-store | 会话持久化 |\n| codingbuddy-memory | 长期记忆、检查点 |\n| codingbuddy-index | 全文代码索引、RAG检索 |\n| codingbuddy-local-ml | 本地ML(Candle嵌入、补全) |\n| codingbuddy-ui | TUI渲染(ratatui/crossterm) |\n| codingbuddy-mcp | MCP服务器管理 |\n\n这种模块化设计使得:\n- 各组件可以独立测试\n- 功能可以按需启用\n- 社区可以贡献特定模块\n\n使用场景\n\nCodingBuddy适用于多种开发场景:\n\n日常开发辅助\n\nbash\n快速询问\ncodingbuddy ask "如何在这个项目中实现JWT认证?"\n\n交互式聊天\ncodingbuddy chat\n\n生成实现计划\ncodingbuddy plan "重构auth中间件,保持行为不变"\n\n\n代码审查\n\nbash\n审查暂存变更\ncodingbuddy review --staged --focus correctness\n\n审查PR并发布评论\ncodingbuddy review --pr 123 --publish --max-comments 20\n\n\n自动化任务\n\nbash\n自动修复测试(最长运行1小时)\ncodingbuddy autopilot "修复crates/codingbuddy-cli中的不稳定测试" --hours 1\n\n监控自动任务状态\ncodingbuddy autopilot status --follow\n\n\n离线开发\n\n启用本地ML后,即使没有网络连接也能:\n- 进行语义代码搜索\n- 获得代码补全建议\n- 保持隐私安全\n\n配置与定制\n\nCodingBuddy的配置采用分层合并策略(后层覆盖前层):\n\n1. ~/.codingbuddy/settings.json(用户级)\n2. .codingbuddy/settings.json(项目级)\n3. .codingbuddy/settings.local.json(本地覆盖,应gitignore)\n\n关键配置示例:\n\njson\n{\n \"llm\": {\n \"base_model\": \"deepseek-chat\",\n \"max_think_model\": \"deepseek-reasoner\",\n \"context_window_tokens\": 128000\n },\n \"agent_loop\": {\n \"tool_loop_max_turns\": 50\n },\n \"policy\": {\n \"approve_edits\": \"ask\",\n \"allowlist\": [\"cargo *\", \"npm test\", \"git status\"]\n },\n \"local_ml\": {\n \"enabled\": false\n }\n}\n\n\n与其他工具的比较\n\n| 特性 | CodingBuddy | Claude Code | GitHub Copilot | Cursor |\n|------|-------------|-------------|----------------|--------|\n| 运行环境 | 终端 | 终端 | IDE插件 | 独立IDE |\n| 自主执行 | ✅ 完整工具循环 | ✅ 完整工具循环 | ❌ 仅补全/聊天 | ✅ 部分支持 |\n| 本地ML | ✅ 可选 | ❌ | ❌ | ❌ |\n| 开源 | ✅ MIT | ❌ | ❌ | ❌ |\n| 权限控制 | ✅ 7种模式 | ✅ 有 | ❌ 有限 | ❌ 有限 |\n| 语言 | Rust | TypeScript | 私有 | 私有 |\n\nCodingBuddy的优势在于其开源性质、终端原生设计、强大的权限系统和可选的本地ML能力。对于重视隐私、喜欢终端工作流、希望深度定制AI助手的开发者来说,它是一个有吸引力的选择。\n\n局限性与注意事项\n\n尽管功能丰富,CodingBuddy也有一些需要注意的地方:\n\n学习曲线\n\n丰富的功能意味着较高的学习成本。新用户需要花时间理解:\n- 权限模式的选择\n- 工具循环的工作机制\n- 配置文件的结构\n\n硬件要求\n\n启用完整本地ML功能需要:\n- 足够的磁盘空间(模型700MB-1.5GB)\n- 一定的内存和CPU资源\n\n生态系统成熟度\n\n作为相对较新的项目,CodingBuddy的生态系统(第三方技能、MCP服务器等)还在发展中。\n\n安装与快速开始\n\nmacOS/Linux:\n\nbash\ncurl -fsSL https://raw.githubusercontent.com/aloundoye/codingbuddy/main/scripts/install.sh | bash\n\n\nWindows(PowerShell):\n\npowershell\n$script = Join-Path $env:TEMP \"codingbuddy-install.ps1\"\nInvoke-WebRequest https://raw.githubusercontent.com/aloundoye/codingbuddy/main/scripts/install.ps1 -OutFile $script\n& $script\n\n\n从源码构建:\n\nbash\ncargo build --release --bin codingbuddy\n\n\n配置API密钥:\n\nbash\nexport DEEPSEEK_API_KEY=\"<your-api-key>\"\ncodingbuddy chat\n\n\n结语\n\nCodingBuddy代表了AI编程助手向更自主、更可控、更隐私友好的方向发展的一个尝试。它不是一个简单的代码补全工具,而是一个真正能够理解项目上下文、执行复杂任务、并与开发者协作的智能代理。\n\n对于Rust开发者、终端爱好者、隐私敏感用户,以及希望深度定制AI工作流的团队来说,CodingBuddy提供了一个强大的开源选择。随着项目的不断发展和社区的贡献,它有望成为AI辅助开发领域的重要玩家。\n\n项目采用MIT许可证完全开源,代码托管在GitHub上,欢迎贡献和反馈。