DeliriumPulse/codetruss-cli

GitHub: DeliriumPulse/codetruss-cli

一款为 AI 编码代理打造的本地优先防护栏 CLI,通过 Git 证据捕获、范围策略校验和签名回执机制,确保 AI 生成的代码变更可验证、可审计且符合任务契约。

Stars: 0 | Forks: 0

# CodeTruss CLI 代码审查工具通常只会检查代码看起来是否有问题。而 CodeTruss 则能证明代码是否始终符合其任务契约,以及确切的最终 Git 状态是否通过了您的检查。 CodeTruss 是一个为编码代理打造的本地优先防护栏。它会捕获精确的 Git 操作前后证据对,检查任务范围和敏感面,运行共享的 CodeTruss 分析器和仓库验证命令,然后在发起 pull request 之前生成一份带有签名的 `PASS`(通过)、`REVIEW_REQUIRED`(需人工审查)或 `FAILED`(失败)回执。 ## 快速开始 macOS 或 Linux: ``` curl -fsSL https://codetruss.com/install.sh | sh codetruss review --task "Review my current agent changes" codetruss verify latest ``` Windows PowerShell: ``` irm https://codetruss.com/install.ps1 | iex codetruss review --task "Review my current agent changes" codetruss verify latest ``` 首次生成回执无需账户或配置。由于不存在任何允许策略,更改的文件会被特意归类为意外文件,因此审查会以 `1` 退出并返回 `REVIEW_REQUIRED`,同时仍会生成已签名的回执。接下来,您可以将范围契约明确化并将其自动化: ``` codetruss init --allow "src/**" --allow "tests/**" --deny "infra/production/**" codetruss hooks install all codetruss run --task "Fix auth" --allow "src/auth/**" --verify "pnpm test" -- codex exec "Fix auth" ``` 使用 `codetruss hooks install claude`、`codex`、`pre-commit` 或 `all` 来自动运行防护机制。`codetruss hooks doctor all` 会验证已安装 hook 的命令、权限、策略以及 CLI 路径解析。 ## 失败即关闭策略 `codetruss init` 特意以一个空的 `allow` 列表作为起始。在明确的批准范围被设定之前,每个被更改的文件都会被视为意外文件,并且该会话无法获得 `PASS` 状态。Deny 规则的优先级高于 allow 规则,并且诸如 CI、基础设施、数据库迁移、secrets、依赖项和 lockfile 等敏感层面的变动将独立于范围限制被标记出来。 ``` # .codetruss.yml version: 1 allow: - src/auth/** - test/auth/** deny: - infra/** - .github/workflows/** verify: - pnpm lint - pnpm test receipts: dir: .codetruss/receipts llm: maxDiffBytes: 200000 ``` 命令行的 `--allow`、`--deny` 和 `--verify` 参数值可以为单次运行提供策略。仓库配置无法重定向经过身份验证的 sync 流量;生产环境的 sync 被固定为 `https://codetruss.com`。 ## 判定与退出码 | 判定结果 | 退出码 | 含义 | |---|---:|---| | `PASS` | 0 | 未发现任何阻断或审查信号;所有已配置的验证命令均已通过。 | | `REVIEW_REQUIRED` | 1 | 存在范围偏移、触及被拒绝或敏感的面、依赖项变更、归属不确定、中等或更高程度的审查发现,或是可选的本地 LLM 审查,需要人工判断。 | | `FAILED` | 2 | 代理或验证命令执行失败、证据不完整,或是存在高/严重级别的安全或依赖项问题阻断了结果。 | 用法和环境相关的错误会以退出码 `3` 退出。回执会记录每一个具体原因;判定结果并不是一个置信度分数。 ## 回执示例 下方缩短的 ID 和哈希值仅为说明用的示例数据,并非客户结果或验证声明。 ``` # CodeTruss receipt — REVIEW_REQUIRED - Task: Fix auth callback validation - Evidence trees: `a1b2c3…` → `d4e5f6…` - Policy SHA-256: `91f0ab…` ## Verdict: REVIEW_REQUIRED - 1 file changed outside approved scope: infra/main.tf - sensitive surfaces changed: infra/main.tf (iac) ## Verification - `pnpm test` — exit 0 Diff evidence: complete, SHA-256 `7bc21e…`. ``` 回执会以 Markdown 和 JSON 格式与经过哈希处理的 patch 证据一起写入,并可以在稍后通过 `codetruss verify latest` 进行校验。 ## 隐私 确定性的 `run`、`review`、`report`、`list`、`init`、`verify` 和 hook 检查均在本地运行,不会联系 CodeTruss。安装过程会从 CodeTruss 获取 release 元数据和包字节。可选的 `--llm --provider anthropic|openai|claude` 审查会使用开发者的 API key 或经过身份验证的本地 Claude Code,直接将限定范围的任务和 diff 发送给所选的 provider。除非开发者显式运行 `codetruss sync`,否则 CodeTruss 不会收到任何回执;系统不存在任何后台遥测或同步行为。 代理交互的证据保存在 Git 元数据下的一个私有的、按交互轮次划分的 Git object store 中,普通的仓库 Git 命令无法访问它,并且会在回执生成完成后被移除。同步的回执会省略 patch、本地绝对路径、代理命令、原始验证命令/输出以及签名 secrets。 ## 源码与开发 此仓库包含了 CLI 及其无数据库的分析器引擎。已发布的 npm 包是一个单一打包的可执行文件,没有运行时的 npm 依赖。 ``` corepack enable corepack prepare pnpm@10.28.2 --activate pnpm install --frozen-lockfile pnpm validate ``` `pnpm validate` 会进行类型检查,构建确定性发布版本,运行源码和对抗性发布测试,验证确切的网站参考内容,并执行一次干净的全局安装演练。 发布输出被写入到 `release/` 目录中。请使用以下命令验证 GitHub release 证明: ``` gh attestation verify codetruss-cli-VERSION.tgz --repo DeliriumPulse/codetruss-cli ``` 基于 Tag 的 GitHub release 和证明不依赖于 npm 凭证。npm 发布是一个独立的、需要明确确认的工作流程,它专门用于发布已经过证明的 release 字节包。维护者应遵循 [docs/RELEASE.md](docs/RELEASE.md) 来进行仓库设置以及首次发布的要求配置。
标签:MITM代理, 文档结构分析, 暗色界面, 网络安全研究, 自动化攻击