samuelfaj/distill
Get FAR MORE done with FAR FEWER tokens 🔥
Distill – 基于终端的编码助手
是什么 – Distill 是一个命令行工具,可在读取代码库、编辑文件、运行 shell 命令的同时,与大型语言模型(LLM)进行对话。整个交互过程都保留在终端内。它作为任何 OpenAI 兼容模型(本地或托管)的轻量级封装,并与 Grok、ChatGPT 和 OpenRouter 集成。
主要功能
- 多模型层级 – 可配置三种角色:
- 推理模型 – 主要的重型模型,负责复杂的推理和代码变更。
- 工作模型(可选) – 更轻量的模型,可在同一对话中处理更廉价的调用。
- 工具模型 – 专门用于有限任务的模型,例如提取值、总结日志或压缩文本。
- 自动路由(Jev) – 内部决策层会根据每个请求,决定由哪个层级处理调用、使用多少“努力”(模型大小/温度),以及是否回退到工具模型。路由逻辑透明,可通过
GROK_LOG_JEV=1检查。 - 供应商无关 – 与 Grok、ChatGPT、OpenRouter 或任何自托管的 OpenAI 兼容服务器兼容。无需强制登录;只需可访问的端点和相应的 API 密钥即可。
- 零安装运行时 – 可通过单个
curl … | sh命令安装预构建的二进制文件(macOS Apple Silicon、Intel、Linux x86_64/ARM64)。终端用户无需安装 Rust 工具链。 - 基于配置文件的配置 – 设置存储在
~/.distill(或自定义DISTILL_HOME)中。可为每个供应商保存独立的凭据,并通过简单的斜杠命令(/model、/worker-model、/utility-model)切换模型。 - 实时更新 –
distill update命令可在保留配置、凭据和会话状态的同时升级已安装的二进制文件。
快速上手
# 安装(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 # 启动交互式 UI
在 UI 中,可通过 模型层级 界面或输入以下命令更改模型:
/model gpt-6-astra auto
/worker-model gpt-5.6-luna auto
/utility-model openrouter-qwen37 auto
工具将自动验证所选工作模型是否在推理模型的上下文窗口范围内。
使用本地模型运行 – 启动任意 OpenAI 兼容服务器(如 Ollama、vLLM),并在 ~/.distill/config.toml 中添加条目:
[models]
default = "local"
[model.local]
name = "本地模型"
model = "my-local-model"
base_url = "http://127.0.0.1:8000/v1"
api_backend = "chat_completions"
Distill 将把所有层级路由到该服务器(或可混合使用本地工具模型与远程推理模型)。
从源码构建 – 如需自定义二进制文件,克隆仓库并使用 Cargo 编译:
git clone https://github.com/samuelfaj/distill.git
cd distill
cargo build --locked --release -p distill-pager-bin --bin distill
./target/release/distill
仓库包含一个 rust-toolchain.toml 文件,用于锁定所需的 Rust 版本。
许可证 – Apache 2.0(参见 LICENSE)。贡献请遵循 CONTRIBUTING.md 中的政策。
Distill 本质上是一个以终端为优先的 LLM 驱动的配对程序员,让开发者在 shell 内工作时,由模型代为读取、编辑和运行代码。它抽象了供应商细节,提供自动模型层级路由,并支持云 API 和自托管模型。
相关
- 项目
- 项目
- 项目
- 项目