开发与工程 terminal-codingfile-editingcommand-executionmodel-routingcontext-compressionopenrouterlocal-models

Distill 终端编程助手

在终端中读代码、改文件并执行命令,同时通过模型分层减少令牌消耗。

FollowAgents 评估 · FARS-2.1
不推荐
47/ 100 五分制 2.4 / 5
1 2 3 4 5 6
按维度查看评分与理由
1信任安全10 / 29 · 1.7/5

最小权限为1:发布工作流明确使用 contents: read,并只在发布作业提升到 contents: write,但没有展示代理运行时的文件、网络、Shell或沙箱权限边界。用户确认为1:PTY场景显示由用户输入“!”命令并标注“Run (user)”,但未证明代理发起的高影响操作具有确认门。数据流透明度为0:虽有 auth、telemetry、mixpanel、HTTP、云存储等组件名称,却没有说明发送哪些数据、发送到哪里或如何退出。敏感数据处理为1:存在 secrets、auth、extra-ca 等专用模块,但没有提供存储、脱敏、日志或生命周期措施。依赖安全为2:构建使用 --locked,Git依赖固定到提交,下载的 protoc 校验SHA-256;扣分在于依赖面非常大、部分Git修订较短、GitHub Actions仅按主版本标签固定且macOS工具安装未固定版本。外部影响为1:用户Shell执行和发布资产上传是显式可见的,但未系统列出代理可能修改文件、运行命令、联网或调用服务的影响。回滚为0:没有展示撤销文件变更、命令副作用或会话操作的恢复机制。来源归因为2:LICENSE列出SpaceXAI及Distill修改者,Cargo注释标示修改,发布物包含NOTICE和第三方声明;但所给材料没有清楚描述上游关系或完整变更范围。

2可靠稳定8 / 14 · 2.9/5

自洽性为2:Distill命名、工作区模块、TUI场景和发布二进制大体一致,README.en也明确指向主README;扣分是主README未提供,且GROK环境变量等遗留命名使产品边界不完全清晰。依赖可用性为2:提供四种macOS/Linux构建目标、锁定构建、固定protoc及校验、缓存和安装器测试;扣分是Git依赖、系统包、Homebrew protobuf以及庞大依赖图仍带来供应和平台风险,且没有Windows发布目标。失败消息为1:工作流有明确的“protoc checksum mismatch”以及版本断言,PTY测试使用超时和失败断言;但没有代理运行时、提供商认证、网络错误或工具失败的用户消息证据。

3适用触发10 / 18 · 2.8/5

受众与场景为2:材料清楚呈现面向编码和终端用户的TUI,覆盖Shell输出、输入、终端缩放及多平台发布;扣分是受众层级、典型工作流和非适用场景未展开。能力边界为1:模块名揭示Shell、MCP、记忆、插件、遥测和工作区等广泛能力,但没有说明默认启用项、权限边界或不支持事项。触发精度为2:“!”用户命令、标签触发发布以及终端高度阈值均有具体触发条件和回归场景;扣分是未展示普通代理工具选择和危险操作的触发规则。环境适配为2:测试覆盖不同终端尺寸,发布矩阵覆盖四种macOS/Linux架构,并声明Windows相关依赖;扣分是没有Windows发布产物、运行前提或兼容性表。

4规范维护9 / 18 · 2.5/5

信息架构为1:Cargo工作区按build、codegen、common、third_party和prod组织,但规模很大,所给用户入口README.en仅转向一个未提供的README。安装说明为1:README.en声称主README包含安装、升级和提供商设置,但这些实际说明不在证据中,不能验证步骤完整性。命名稳定性为2:crate和产物普遍采用distill前缀;扣分是GROK_VERSION与GROK_CONTEXTUAL_HINTS等遗留名称造成配置认知负担。示例与FAQ为1:PTY场景提供具体交互示例,但它们是测试夹具,不是面向用户的教程或FAQ。已知限制为1:注释说明小终端自动紧凑、发布配置差异、CI lint折衷等限制;缺少集中、面向用户的限制清单。许可证为3:完整Apache-2.0文本、版权声明、Cargo元数据和发布打包相互一致,证据中未见缺口。版本与变更记录为2:版本从专用crate读取、标签与版本匹配、标签验证且自动生成发布说明;扣分是没有提供独立CHANGELOG或兼容性/迁移历史。维护责任为1:Samuel Fajreldines被标为修改者,安全策略指向HackerOne且发布路径明确;但发布者身份未知,安全链接仅为泛化的“x”,没有明确维护团队、支持范围或响应承诺。

5有效结果6 / 13 · 2.3/5

输出可用性为2:PTY回归场景验证ANSI输出清理、紧凑模式布局恢复和即时括号输入,显示对终端交互质量有具体关注;扣分是未提供完整代理输出或真实任务结果。边际价值为1:广泛模块和轻量TUI定位暗示相对普通聊天接口的编码工作流价值,但“更少token”没有比较基线或测量。成本收益为1:声称以显著更少token完成更多工作,且紧凑UI可能改善使用体验;扣分是缺少token、延迟、资源消耗或任务成功率数据,庞大工作区和依赖面还表明较高构建维护成本。

6证据核验4 / 8 · 2.5/5

主张可追溯性为1:界面行为可追溯到具名PTY场景,构建和发布主张也有工作流支撑;但核心“FAR FEWER tokens”主张没有基准、数据或对应测试。跨来源印证为2:Cargo、LICENSE、发布工作流和PTY测试共同印证Distill身份、Apache许可、跨平台构建及TUI行为;扣分是核心README正文和实现文件缺失,无法交叉核验安全与产品主张。事实与推断分离为1:测试描述和构建注释通常明确说明预期行为与配置原因;但营销性效率主张未标注为未经验证,且部分模块能力只能从名称推断。

证据充分度: 评估于 2026年9月20日 审查版本 0e0aa328e58a
源码中未见的安全控制:数据流向说明、回滚或恢复路径
使用前请注意
  • 未提供主README或运行时权限实现;安装、提供商配置、沙箱、确认门和默认外部影响均不能验证。
  • 仓库声明包含telemetry、Mixpanel、auth、secrets、HTTP和云存储组件,但材料没有数据清单、目的地、保留期或退出方式。
  • “FAR FEWER tokens”没有基准、测量方法或结果数据,不应作为已验证的成本优势。
  • 供应链面较大;除固定Git修订和protoc校验外,GitHub Actions主版本标签、Homebrew工具和大量依赖仍需单独审计。
  • SECURITY.md中的HackerOne地址仅为泛化的“x”;在提交敏感报告前应确认其确属该项目。
  • 没有证据表明文件或命令副作用可回滚;在受控工作区、最小凭据和版本控制保护下试用。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Distill 是 Samuel Fajreldines 开发的轻量级终端编程 harness 与 TUI,可读取代码库、编辑文件、运行命令,并将整个对话留在终端中。2.0.0 版支持 Grok、ChatGPT、OpenRouter,以及本地 OpenAI 兼容模型服务器。它把模型分为 Reasoning、Worker 和 Utility 三层:主模型处理对话与复杂修改,可选 Worker 分担合适的调用,Utility 则接收受限载荷完成提取、摘要和压缩等任务。Jev 决策层依据当前阶段、上下文容量和候选项进行模型、推理强度及内容保留路由;失败、超时或置信度不足时会回退到正常执行路径。Distill 以 macOS 和 Linux 预编译二进制或 Rust 源码形式部署,本地文件、会话、配置与凭据保存在用户配置目录中。

用户从终端启动 distill 后,程序读取当前代码库,并可根据对话编辑文件和运行命令。Reasoning model 默认处理主对话、复杂推理和代码变更;配置兼容的 Worker model 后,Jev 可在同一对话内将适合的调用路由给它。Utility model 接收工具结果、日志片段或候选列表等受限载荷,用于字面值提取、日志摘要、文本压缩、候选 ID 选择与内容分类,并在结果通过相应检查后才交回 harness 使用。e_retention 可分块处理大型输出并决定保留内容,b2_local_model 可在容量和上下文限制允许时把完整调用交给 Utility model。Jev 只从代码提供的候选项中选择,不负责权限决策;计划模式、自动批准、YOLO 和权限策略均由 Distill 管理。

  1. 希望不离开终端就能检查代码库、修改文件和运行命令的软件开发者。
  2. 拥有 ChatGPT、Grok 或 OpenRouter 账户,希望在同一编程界面中切换模型与推理强度的用户。
  3. 希望以较轻量 Worker 分担合适请求、同时保留高能力 Reasoning model 处理复杂改动的团队成员。
  4. 运行 OpenAI 兼容本地推理服务器,希望将代码工作流保留在自有环境中的开发者。
  5. 经常处理大型日志或工具输出,希望通过受检验的提取、摘要和内容保留流程控制上下文规模的用户。

这个 Agent 有哪些优点和局限?

优点
  • 明确支持 Grok、ChatGPT、OpenRouter 和本地 OpenAI 兼容服务,不必绑定单一模型提供商。
  • Reasoning、Worker、Utility 三层将复杂代码工作、轻量同会话调用和受限机械任务分开处理。
  • Utility 结果经过字面路径、错误信息、引用片段或候选 ID 等针对性检查,拒绝结果会回退到正常路径。
  • Jev 决策失败、超时或置信度不足时保留常规执行路径,并设置每轮失败上限。
  • 发布安装器会校验 SHA-256,并在切换可执行文件前运行版本检查;升级不会删除配置、凭据和会话。
局限
  • 生成回答仍依赖可访问的提供商模型或自行运行的本地模型服务器;仅安装程序并不能离线完成推理。
  • Reasoning 与 Worker 必须共享兼容的 base URL、API backend 和凭据方案,限制了跨提供商混搭。
  • Linux 预编译二进制依赖 glibc;其他 Linux 环境需要从源码构建。
  • 源码构建需要 Rust、C/C++ 编译器、CMake、pkg-config 和 Protocol Buffers,环境准备成本高于直接下载二进制。
  • OpenRouter 模型的可用性和费用由提供商决定,Jev 的独立决策端点也需要相应凭据。

如何安装或部署这个 Agent?

macOS 或 Linux 可安装发布版:

curl -fsSL https://raw.githubusercontent.com/samuelfaj/distill/main/install.sh -o /tmp/distill-install.sh
sh /tmp/distill-install.sh
export PATH="$HOME/.local/share/distill/bin:$PATH"
distill

安装器会选择对应操作系统与 CPU 的二进制文件、校验 SHA-256,并在启用前运行 --version。预编译版本覆盖 Apple Silicon、Intel Mac,以及 x86_64/ARM64 的 glibc Linux。指定版本可运行 DISTILL_VERSION=2.0.0 sh /tmp/distill-install.sh;自定义位置可设置 DISTILL_INSTALL_DIR。源码构建需要 rust-toolchain.toml 指定的 Rust 工具链,以及 C/C++ 编译器、CMake、pkg-config 和 Protocol Buffers:

git clone https://github.com/samuelfaj/distill.git
cd distill
cargo build --locked --release -p distill-pager-bin --bin distill
./target/release/distill

如何使用这个 Agent?

先启动 distill;打开程序本身不要求登录,但生成回答必须能连接一个模型。可从主页分别登录 Grok、ChatGPT 或 OpenRouter;OpenRouter 也可使用 OPENROUTER_API_KEY。在主页的 Model tiers 中配置模型,或使用 /tiers/model/worker-model/utility-model,例如:

/model gpt-6-astra auto
/worker-model gpt-5.6-luna auto
/utility-model openrouter-qwen37 auto

本地模型需先启动 OpenAI 兼容服务器,再在配置目录的 config.toml 中填写模型 ID、base_urlapi_backend = "chat_completions"。新配置默认位于 ~/.distill,也可通过 DISTILL_HOME 更改。进入代码库目录后启动 Distill,并在终端对话中提出代码阅读、文件修改或命令执行任务。使用 GROK_LOG_JEV=1 distill 可把路由决策写入活动配置目录的 logs/jev.jsonl

这个 Agent 与同类方案有什么区别?

与只使用单个主模型的终端编程流程相比,Distill 可配置同会话 Worker,并让 Utility model 处理受限的提取、摘要和压缩任务。与完全依赖云端提供商的方案相比,它也支持本地 OpenAI 兼容服务器;但本地模型的部署、容量与上下文限制需要用户自行承担。

常见问题

不登录模型提供商也能使用吗?
可以打开 Distill,但要生成回答,必须有可访问的模型;它可以来自 Grok、ChatGPT、OpenRouter,或本地 OpenAI 兼容服务器。
Jev 能自动批准命令或绕过权限确认吗?
不能。Jev 不决定权限,也不能批准、否决或暂停工具调用;计划模式、自动批准、YOLO 和权限策略由 Distill 本身控制。
路由服务失败会不会中断工作?
Jev 决策失败、超时或置信度不足时,harness 会保持正常执行路径;不可用的 Utility 路由不会接管调用,每条路由还有每轮失败次数限制。
Worker 可以使用与主模型完全不同的提供商吗?
不一定。Worker 必须与 Reasoning model 使用兼容的 base URL、API backend 和凭据方案;Utility model 才可以使用独立连接。
升级会清除设置和会话吗?
通过 distill update 或重新运行安装器升级时,配置、凭据和会话会保留;已打开的 Distill 会话需要重启才能使用新版。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents