返回市场
代码助手

代码助手

作者:stippi112 星标更新:2025-11-23

项目介绍

Code Assistant

CI Trust Score

一个用Rust编写的AI编码助手,提供命令行界面和图形用户界面,用于自主代码分析和修改。

主要特性

多模态工具执行:适应不同大语言模型的能力,具有可插拔的工具调用模式——原生函数调用、XML风格标签和三重插入符号块——确保与各种AI提供商兼容。

实时流式接口:高级流处理器解析并显示从大语言模型流式传输的工具调用,并通过智能过滤防止不安全的工具组合。

基于会话的项目管理:每个聊天会话都与特定项目相关联,并维护持久状态、工作记忆和草稿消息,支持附件。

多种界面选项:可以选择基于Zed的GPUI框架构建的现代GUI、传统的终端界面或无头MCP服务器模式,以与如Claude Desktop这样的MCP客户端集成。

代理客户端协议(ACP)支持:完全兼容代理客户端协议标准,使无缝集成到兼容ACP的编辑器如Zed成为可能。参见Zed文档中的添加自定义代理设置说明。

会话压缩:在即将超出上下文空间之前,代理生成会话摘要并继续工作。

自动加载仓库指导:自动包含项目根目录下的AGENTS.md(或CLAUDE.md作为备选)到助手的系统上下文中,使其行为符合仓库特定的指令。

安装

# 在macOS或Linux上,通过rustup安装Rust工具链:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 在macOS上,你需要metal工具链:
xcodebuild -downloadComponent MetalToolchain

# 然后克隆仓库并构建:
git clone https://github.com/stippi/code-assistant
cd code-assistant
cargo build --release

二进制文件将在target/release/code-assistant中可用。

初始设置

构建完成后,创建您的配置文件:

# 创建配置目录
mkdir -p ~/.config/code-assistant

# 复制示例配置
cp providers.example.json ~/.config/code-assistant/providers.json
cp models.example.json ~/.config/code-assistant/models.json

# 编辑文件以添加您的API密钥
# 设置环境变量或直接更新JSON文件
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."

请参阅配置部分获取详细的设置说明。

项目配置

创建~/.config/code-assistant/projects.json来定义可用项目:

{
  "code-assistant": {
    "path": "/Users/<username>/workspace/code-assistant",
    "format_on_save": {
      "**/*.rs": "cargo fmt" // 格式化项目中的所有文件,因此请确保文件已格式化
    }
  },
  "my-project": {
    "path": "/Users/<username>/workspace/my-project",
    "format_on_save": {
      "**/*.ts": "prettier --write {path}" // 如果格式化程序接受路径,请提供"{path}"
    }
  }
}

自动保存格式化功能

可选的format_on_save字段允许在修改后自动格式化文件。它将文件模式(使用通配符语法)映射到shell命令:

  • 匹配通配符模式的文件在被助手修改后将自动格式化。
  • 工具参数将更新以反映格式化内容,保持大语言模型的心理模型同步。
  • 这可以防止由自动格式化引起的编辑冲突。

请参阅文档/自动保存格式化功能.md获取详细文档。

重要提示:

  • 当从不在此配置中的文件夹启动时,将自动创建临时项目。
  • 助手可以访问当前项目(包括临时项目)以及所有已配置的项目。
  • 每个聊天会话永久关联其初始项目和文件夹——这之后无法更改。
  • 工具语法(原生/XML/插入符号)也在创建会话时固定。

使用

GUI模式(推荐)

# 启动图形界面
code-assistant --ui

# 启动GUI并指定初始任务
code-assistant --ui --task "分析身份验证系统"

终端模式

# 基本使用
code-assistant --task "解释这个代码库的目的"

# 使用特定模型
code-ass