llm-agents.nix
用 Nix flake 统一打包数十款 AI 编码代理与开发工具,一条 nix run 命令即可试用或固定版本。
- Star 数
- ★ 2.2k
- 最近更新
- 今天
- License
- MIT
- 主语言
- Nix
- FA 评分
- 30/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 想在不动系统环境的前提下试跑某个新编码代理 CLI,例如先 nix run …#crush -- --help 看一眼再决定是否长期使用。
- 不适合
- 不使用 Nix / flakes 的团队:文档只给出 nix run 一种使用方式
- 要求所有工具开源可审计的团队:多款打包对象被标记为 unfree 或仅提供二进制、字节码
- 需要明确版本固定策略的用户:README 展示了每日自动更新,却没有固定 commit 或 flake input 的说明
这个 Agent 能做什么,适合哪些场景?
llm-agents.nix 是 Numtide 维护的 Nix 包集合,把 Claude Code、Codex、Gemini CLI、opencode、crush、Aider 类工具以及配套的代码评审、任务编排、记忆检索、沙箱隔离、用量统计工具统一封装成可复现的 Nix 包。每个条目在 packages/<名称>/package.nix 中定义,来源可能是源码构建、预编译二进制或字节码,并在 README 中生成对应的来源类型、许可证、主页与 nix run 用法。仓库本身以 MIT 许可发布,描述称每日自动更新,因此上游新版本会被持续并入。它本身不是一个代理,而是分发层:你在终端下通过 flakes 属性名调用任一工具。对已经使用 Nix 的开发者,这是把「今天想试哪个编码代理」的成本压到一条命令的方式。
仓库以 Nix flake 形式组织,按 packages/<name>/package.nix 为每个上游工具定义一个派生(derivation):从源码构建、拉取上游预编译二进制,或处理字节码分发。README 的「Available Tools」区块由生成器产出,按 AI Coding Agents、AI Assistants、Claude Code Ecosystem、ACP Ecosystem、Usage Analytics、Workflow & Project Management、Code Review、Voice & Transcription、Memory & Code Intelligence、Sandboxing & Isolation、Skills & Plugins、Utilities 等分组列出每个条目,并给出 source(source/binary/bytecode)、License(含 unfree)、Homepage、Usage 和 package.nix 路径。使用者执行 nix run github:numtide/llm-agents.nix#<属性名> -- --help,Nix 解析 flake、构建或获取对应派生,再把参数透传给上游 CLI。少数包另有 packages/<name>/README.md 说明细节(claude-code、forgecode、kandev、qmd)。仓库自身不做模型调用、不存数据,产物就是一个可运行的命令。
- 想在不动系统环境的前提下试跑某个新编码代理 CLI,例如先 nix run …#crush -- --help 看一眼再决定是否长期使用。
- 团队已在用 Nix,希望把 Claude Code、Codex、Gemini CLI 等多个代理写进同一个 shell 或开发环境并锁定版本。
- 需要横向对比不同厂商的终端代理(OpenAI、Anthropic、Google、xAI、Mistral、Qwen 等)而不想分别维护安装脚本。
- 正在搭多代理流程,想直接取用 beads、vibe-kanban、gastown、herdr 这类任务编排与工作区管理工具。
- 关注代理安全边界,需要 nono、sandbox-runtime、claudebox、fence 等沙箱运行时来隔离代理执行。
- 想统计各代理的 token 花费与会话记录,用 ccusage、tokscale、agentsview、mindwalk 做本地分析。
如何安装或部署这个 Agent?
唯一被文档化的前提是可用 Nix(并使用 flakes):README 中的所有示例都是 nix run。仓库没有给出非 Nix 的安装方式,也没有说明如何把它添加为 flake input 或 overlay。
nix run github:numtide/llm-agents.nix#claude-code -- --help换一个属性名即可换工具,例如:
nix run github:numtide/llm-agents.nix#codex -- --help
nix run github:numtide/llm-agents.nix#opencode -- --helpREADME 未记录的信息:如何 nix build 全部包、如何在 flake.nix 中引用本仓库、以及各包被标记 unfree 时使用者需要做什么配置。
如何使用这个 Agent?
按 README 生成表格中的属性名调用,-- 之后是透传给上游 CLI 的参数:
nix run github:numtide/llm-agents.nix#gemini-cli -- --help
nix run github:numtide/llm-agents.nix#beads -- --help
nix run github:numtide/llm-agents.nix#vibe-kanban -- --helpclaude-code、forgecode、kandev、qmd 另有 packages/<名称>/README.md 说明具体用法,其余条目只提供来源、许可证、主页和 nix run 一行用法;各家所需的账号、订阅或 API key 由上游工具自己决定,本仓库不负责也不记录这些凭据。
这个 Agent 有哪些优点和局限?
- 覆盖面罕见:编码代理、代码评审、任务编排、记忆检索、沙箱、用量统计集中在同一个 flake 中,属性名一目了然。
- 调用方式统一:源码构建、预编译二进制、字节码三种来源都用同一条 nix run github:numtide/llm-agents.nix#<名称> 命令跑起来。
- 元数据机器可读:每个条目标注 source 类型、License(含 unfree)、Homepage 与 package.nix 路径,README 表格自动生成,便于审查。
- 每日自动更新,上游发版后无需等待人工提交即可拿到较新的工具版本。
- 仓库自身为 MIT 许可,且基于 Nix 派生,构建结果可复现、可以和其他 Nix 环境组合。
- 强依赖 Nix 与 flakes,没有 Homebrew、npm、Docker 等替代路径的文档。
- 相当一部分条目是 unfree、binary 或 bytecode 分发,意味着要信任上游预编译产物而非本地从源码构建。
- README 未说明如何作为 flake input 引入或如何进行版本固定,而仓库又每日更新,长期可复现性需要使用者自行处理。
- 除 claude-code、forgecode、kandev、qmd 外,多数条目只有一行 nix run 用法,缺少配置、鉴权和参数说明。
- 仓库本身不提供稳定性承诺或版本矩阵,各工具的行为与授权完全取决于上游。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 逐包列出 source、license、homepage 和 Nix 路径,source_attribution 可得 2,但未验证上游来源。least_privilege 得 0:auto-merge 工作流在 pull_request_target 上授予 contents:write 与 pull-requests:write,并使用未固定版本的 Mic92/auto-merge@main。user_confirmation 得 0:依赖更新自动合并,无人工确认。data_flow_transparency、sensitive_data_handling、rollback 均无说明,得 0。dependency_security 得 0:未见锁文件或固定 action,且每日自动更新。external_effects 得 0:自动合并会直接写仓库,安装包也会引入外部二进制/源码,但无同意或恢复说明。
self_consistency 得 1:README 生成文档与 pyproject 基本一致,但缺少 flake.nix、package.nix 和锁文件证据,无法核对包定义。dependency_availability 得 1:只能从 nix run 命令推断可用,未展示 flake 输入或依赖固定。failure_messages 得 0:没有运行时代码或错误处理证据。
audience_and_scenarios 得 2:明确面向 Nix 用户,覆盖多种编码代理并给出逐包 usage。capability_boundaries 得 1:说明是包集合而非单一代理,但未说明平台、权限或能力限制。trigger_precision 得 0:没有触发机制或选择指南。environment_fit 得 1:Nix 环境适配明显,但未说明 Linux/macOS、unfree 配置等环境要求。
information_architecture 得 2:README 有生成式包文档和清晰分组。install_notes 得 1:只有 nix run 命令,缺少 Nix 安装、unfree 许可和 flake 使用说明。naming_stability 得 1:存在重命名/别名迹象,但无命名政策。examples_and_faq 得 1:有 usage 示例,无 FAQ。known_limitations 得 0:未列出限制。license 得 3:MIT LICENSE 完整,且 README 逐包标注许可证。versioning_changelog 得 1:pyproject 仅 0.1.0,无 changelog。maintenance_responsibility 得 1:有 Numtide 版权和 check-maintainers 工作流,但无明确维护者列表,发布者未验证。
output_usability 得 2:提供可直接执行的 nix run 命令和包路径。marginal_value 得 2:聚合大量 AI 编码代理,对 Nix 用户有实际价值。cost_benefit 得 1:大量 unfree/binary/bytecode 包、自动合并和未固定 action 增加使用与供应链成本,收益被部分抵消。
claim_traceability 得 2:README 链接 package.nix 和上游主页,可追溯主要声明。cross_source_corroboration 得 1:证据仅 README、LICENSE、pyproject 和两个工作流,缺少包定义与测试,交叉验证弱。fact_inference_separation 得 1:生成描述与事实推断未明确分离,部分包描述来自上游文案。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 自动合并工作流在 pull_request_target 上拥有写权限且使用未固定 action,存在供应链和误合并风险。
- README 列出大量 unfree、binary 或 bytecode 包,但未说明沙箱、数据流、敏感数据处理或回滚机制。
- 证据中缺少 flake.nix、package.nix 和测试,无法验证包可构建、依赖固定或更新流程正确性。
- 发布者未经验证,维护责任和上游来源未明确确认。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
assets Static Assets