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 與自架模型。
相關
- 專案
- 專案
- 專案
- 專案