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 與自架模型。

相關

  • 專案
  • 專案
  • 專案
  • 專案