Kuberwastaken/claurst

GitHub: Kuberwastaken/claurst

Claurst 是一个用 Rust 构建的开源多 provider 终端 AI 编程 agent,为开发者提供结对编程与代码辅助能力。

Stars: 10076 | Forks: 7779

CLAURST

Agentic Coding for Builders who Ship

Rustle on the ship

Built with Rust Version 0.1.6 GPL-3.0 License


CLAURST in action
Claurst 是一个**开源、多 provider 的终端编程 agent**,完全使用 Rust 从头构建。它最初是对 Claude Code 行为的净室重新实现(源自[规范](https://github.com/kuberwastaken/claurst/tree/main/spec)),后来演变成了一个令人惊叹的 TUI 结对编程工具,支持多 provider、丰富的 UI、插件系统、一个名为 Rustle 的伴侣、聊天分叉、记忆整合以及更多功能。 它快速、内存高效,您可以随心所欲地运行它,并且没有任何跟踪或遥测。 # 入门指南 ## 快速安装(单行命令) **Linux / macOS:** ``` curl -fsSL https://github.com/kuberwastaken/claurst/releases/latest/download/install.sh | bash ``` **Windows (PowerShell):** ``` irm https://github.com/kuberwastaken/claurst/releases/latest/download/install.ps1 | iex ``` 这会将 `claurst` 放入 `~/.claurst/bin`(或在 Windows 上为 `%USERPROFILE%\.claurst\bin`)并自动将其添加到您的 `PATH` 中。打开一个新终端并运行 `claurst`。 ## 通过 npm / bun 如果您安装了 Node.js 或 Bun,您可以将 Claurst 作为全局 package 安装。postinstall 脚本会自动为您的平台下载正确的预编译二进制文件。 ``` # npm npm install -g claurst # bun bun install -g claurst # 或者在不安装的情况下运行 npx claurst bunx claurst ``` 以后若要升级,请运行: ``` claurst upgrade ``` ## 手动下载 如果您更愿意自己获取二进制文件,最新的压缩包位于 [**GitHub Releases**](https://github.com/kuberwastaken/claurst/releases): | 平台 | 压缩包 | |----------|---------| | **Windows** x86_64 | `claurst-windows-x86_64.zip` | | **Linux** x86_64 | `claurst-linux-x86_64.tar.gz` | | **Linux** aarch64 | `claurst-linux-aarch64.tar.gz` | | **macOS** Intel | `claurst-macos-x86_64.tar.gz` | | **macOS** Apple Silicon | `claurst-macos-aarch64.tar.gz` | 每个压缩包都包含一个单一的 `claurst`(或 `claurst.exe`)二进制文件。将其解压并放入您的 `PATH` 中。 ## 从源码构建 ``` git clone https://github.com/kuberwastaken/claurst.git cd claurst/src-rust cargo build --release --package claurst # Binary 位于 target/release/claurst ``` **树莓派 / 没有 ALSA 的系统**(例如 Debian Trixie,无头服务器): ``` # 构建而不支持语音/麦克风 — 不需要 libasound2-dev cargo build --release --package claurst --no-default-features ``` ## 首次运行 ``` # 设置你的 API key(或者在 Claurst 中使用 /connect 进行配置) export ANTHROPIC_API_KEY=sk-ant-... # 启动 Claurst claurst # 或者运行单次 headless 查询 claurst -p "explain this codebase" ``` ## Devcontainer 设置 克隆此仓库后,在 VS Code 中打开它,并使用“在容器中重新打开”以启动开发环境。 前置条件: - 在您的主机上安装了 Docker:https://www.docker.com/products/docker-desktop/ 如果您在主机上进行了相关设置,Devcontainer 中已启用 GPG 和 SSH 转发。如果您需要相关帮助,请遵循[此指南](https://code.visualstudio.com/remote/advancedcontainers/sharing-git-credentials)。 ### Devcontainer 特性 - 基础镜像:`rust:1-bullseye`。 - 预装构建依赖项:`gnupg2`、`libasound2-dev`、`libxdo-dev` 和 `pkg-config`。 - 启用的 Devcontainer 特性:`common-utils`(使用 `vscode` 用户 `uid/gid 1000` 并禁用 Zsh 安装)、`git` 和 `docker-outside-of-docker`(`moby: false`)。 - 默认以 `vscode` 用户身份运行。 - 通过命名卷持久化 Cargo 缓存,路径为 `/usr/local/cargo/registry` 和 `/usr/local/cargo/git`。 - 将本地 `.claurst` 绑定到 `/home/vscode/.claurst`,以便访问本地设置/会话历史记录。 - 设置 `GNUPGHOME=/home/vscode/.gnupg`,并将 `src-rust/target/debug` 和 `src-rust/target/release` 添加到 `PATH` 前面。 - 创建后设置会创建 `.gnupg` 并配置权限,同时修复 `/usr/local/cargo` 的所有权。 - 启用 VS Code 设置 `terminal.integrated.inheritEnv`。 ## 编辑器集成(Agent Client Protocol) Claurst 支持 [**Agent Client Protocol (ACP)**](https://agentclientprotocol.com) —— 这是由 Zed 倡导的用于编辑器与 agent 之间通信的开放协议。任何兼容 ACP 的编辑器(Zed、Neovim、JetBrains 插件等)都可以将 Claurst 作为子进程驱动,并在编辑器的原生聊天 UI 中呈现它。 要在您的编辑器中将 Claurst 用作 agent,请将其 ACP 集成指向: ``` command: claurst args: ["acp"] ``` **Zed 示例**(`~/.config/zed/settings.json`): ``` { "agent_servers": { "claurst": { "command": "claurst", "args": ["acp"] } } } ``` Claurst 将通过 stdio 在 JSON-RPC 2.0 模式下运行。它实现了 `initialize`、`session/new`、`session/prompt` 和 `session/cancel`,流式传输 `session/update` 通知(文本增量、agent 思考、工具调用及其进度+结果),并通过 `session/request_permission` 路由每个工具权限请求,以便编辑器可以显示原生的批准对话框。 在启动之前,请在 `~/.claurst/settings.json` 中配置您的 provider / API key(或使用 `claurst auth login` / `claurst /connect`)——ACP agent 使用与交互式 TUI 相同的凭据和 provider。 通过设置 `CLAURST_ACP_LOG=debug` 启用详细的 ACP 日志记录(输出到 stderr——绝不会输出到 stdout,因为那会破坏协议)。 ### 在 ACP Registry 上列出 [Agent Client Protocol registry](https://github.com/agentclientprotocol/registry) 是编辑器在提供“可用 agent”时查询的权威目录。要让 Claurst 被列出: 1. Fork [`agentclientprotocol/registry`](https://github.com/agentclientprotocol/registry)。 2. 在仓库根目录创建一个 `claurst/` 文件夹,并放入本仓库准备好的清单文件:[`src-rust/crates/acp/registry-template/agent.json`](src-rust/crates/acp/registry-template/agent.json)。更新 `version` 和发布压缩包的 URL,使其与最新的 GitHub release 匹配。 3. 添加 `claurst/icon.svg`(推荐 16×16 尺寸)——[`public/`](public/) 中的 Rustle logo 是一个不错的起点。 4. 向 registry 提交 PR。registry CI 在合并前会根据[schema](https://github.com/agentclientprotocol/registry/blob/main/agent.schema.json)验证 `agent.json`。 合并后,Zed 和其他支持 ACP 的编辑器将在下一次刷新 registry 时提取 Claurst。 ## 文档 有关如何配置 Claurst 的更多信息,请[前往我们的文档](https://claurst.kuber.studio/docs)。 ## 重要提示 本仓库不包含 Claude Code 专有的 TypeScript 源代码副本。 这是对 Claude Code 行为的**净室 Rust 重新实现**。 该过程明确分为两个阶段: **规范说明** [`spec/`](https://github.com/kuberwastaken/claurst/tree/main/spec) —— 一个 AI agent 分析了源码并生成了详尽的行为规范和改进,这些内容偏离了原始实现:架构、数据流、工具契约、系统设计。没有沿用任何源代码。 **代码实现** [`src-rust/`](https://github.com/kuberwastaken/claurst/tree/main/src-rust) —— 另一个独立的 AI agent 仅根据规范进行实现,从未参考过原始的 TypeScript 代码。最终输出的是地道的 Rust 代码,重现的是其行为,而非表达方式。 这呼应了 Phoenix Technologies 诉 IBM (1984) 案确立的法律先例——关于 BIOS 的净室工程——以及 Baker 诉 Selden (1879) 案的原则:版权保护的是表达方式,而不是思想或行为。
标签:AI编程助手, DLL 劫持, Rust, SOC Prime, 可视化界面, 大语言模型, 开发工具, 暗色界面, 结对编程, 网络流量审计, 请求拦截, 通知系统