AI Skill Hub 强烈推荐:TurboLLM 是一款优质的AI工具。AI 综合评分 8.0 分,在同类工具中表现稳健。如果你正在寻找可靠的AI工具解决方案,这是一个值得深入了解的选择。
本地LLM引擎自动优化工具,支持GPU加速
TurboLLM 是一款基于 TypeScript 开发的开源工具,专注于 AI、GPU、TypeScript 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
本地LLM引擎自动优化工具,支持GPU加速
TurboLLM 是一款基于 TypeScript 开发的开源工具,专注于 AI、GPU、TypeScript 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
# 方式一:npm 全局安装 npm install -g turbollm # 方式二:npx 直接运行(无需安装) npx turbollm --help # 方式三:项目依赖安装 npm install turbollm # 方式四:从源码运行 git clone https://github.com/mohitsoni48/TurboLLM cd TurboLLM npm install npm start
# 命令行使用
turbollm --help
# 基本用法
turbollm [options] <input>
# Node.js 代码中使用
const turbollm = require('turbollm');
const result = await turbollm.run(options);
console.log(result);
# turbollm 配置说明 # 查看配置选项 turbollm --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export TURBOLLM_CONFIG="/path/to/config.yml"
<p align="center"> <img src="https://raw.githubusercontent.com/mohitsoni48/TurboLLM/main/turbollm/web/public/brand/turbollm-icon-512.jpeg?v=2" width="92" height="92" alt="TurboLLM" /> </p>
<p align="center"> <strong>Run <em>any</em> local LLM engine, auto-tuned to your GPU — with a polished web UI and an OpenAI/Anthropic-compatible API.</strong><br/> Bring your own llama.cpp fork. No compiling. No Electron. No Python. Point Claude Code at your own machine in one command — fully offline. </p>
<p align="center"> <a href="https://turbollm.dev"><img src="https://img.shields.io/badge/turbollm.dev-docs%20·%20models%20·%20guides-e2552e" alt="turbollm.dev" /></a> <a href="https://www.npmjs.com/package/turbollm"><img src="https://img.shields.io/npm/v/turbollm.svg?color=e2552e" alt="npm version" /></a> <a href="https://www.npmjs.com/package/turbollm"><img src="https://img.shields.io/npm/dm/turbollm.svg?color=e2552e" alt="npm downloads" /></a> <img src="https://img.shields.io/badge/node-%E2%89%A522-3c873a.svg" alt="node >= 22" /> <img src="https://img.shields.io/badge/license-FSL--1.1--ALv2-blue.svg" alt="license" /> <img src="https://img.shields.io/badge/platform-Windows%20%C2%B7%20macOS%20%C2%B7%20Linux-555.svg" alt="platforms" /> <a href="https://ko-fi.com/mohitsoni"><img src="https://img.shields.io/badge/Ko--fi-support%20us-FF5E5B?logo=kofi&logoColor=white" alt="Ko-fi" /></a> <a href="https://github.com/sponsors/mohitsoni48"><img src="https://img.shields.io/badge/GitHub%20Sponsors-support%20us-EA4AAA?logo=githubsponsors&logoColor=white" alt="GitHub Sponsors" /></a> <a href="https://discord.gg/v6kRbV7nC"><img src="https://img.shields.io/badge/Discord-join%20chat-5865F2?logo=discord&logoColor=white" alt="Discord" /></a> </p>
<p align="center"> <sub><strong>Source-available</strong> under <a href="#license">FSL-1.1</a> — free for personal and internal business use; every release converts to <strong>Apache-2.0</strong> two years after it ships.</sub> </p>
npx turbollm
That one command starts a local daemon, opens a browser UI, and serves your models over an API any tool can talk to. TurboLLM is the performance & bleeding-edge layer for local LLMs — built for people who today hand-compile forks and hunt forums for the right flags. The speed is measured, not promised: **74.7 vs 61 t/s on the same official llama.cpp as LM Studio — and 2.2× on forks it can't load** (the numbers).
<p align="center"> <strong>📖 Full docs · what runs on your GPU · model picks → <a href="https://turbollm.dev">turbollm.dev</a></strong> </p>
<p align="center"> <img src="https://raw.githubusercontent.com/mohitsoni48/TurboLLM/main/assets/how-it-works.svg?v=2" width="860" alt="How TurboLLM works: clients -> one lightweight daemon -> any engine on your GPU" /> </p>
---
The headline — running any engine, including community forks — has its own section below. Everything else is grouped here; each summary is the gist, expand for the detail:
<details> <summary><strong>📦 Models — bring your own, or browse Hugging Face</strong></summary>
<br/>
- Use the folders you already have. Point TurboLLM at any directory of GGUFs — your existing LM Studio folders or manual downloads — no re-downloading. It parses GGUF metadata (arch, params, quant, context, vision) for every file. (Models pulled by ollama pull live in Ollama's own blob store, which TurboLLM doesn't read.) - Browse & download from Hugging Face, in-app: a live, sortable list (trending / downloads / likes / recently updated / newest) alongside a permanent detail pane — pick a quant, read the rendered model card, and download with resume + SHA-256 verification. Each model lands in its own folder (mirroring Hugging Face's own layout) with its vision projector and every shard of a split/multipart quant fetched alongside it automatically. Gated models (Llama, Gemma) work via your own HF token, which never leaves your machine. - Import from any URL — not just Hugging Face. Paste a direct .gguf link (model-author sites, mirrors, private servers) and it disk-space-checks and downloads through the same manager; paste a Hugging Face model page link instead and it opens that repo's quant picker so you can choose which one to download. - Quant recommendation per GPU and a VRAM-fit verdict so you pick a quant that actually fits before you commit. - Primary download folder, real-time measured t/s per model, delete-from-disk, and pin your favourites to the top of the list.
</details>
<details> <summary><strong>⚡ Auto-tuning & performance</strong></summary>
<br/>
- Auto-benchmark on load derives fast defaults for your exact GPU. - Recommended sampling from Hugging Face — auto-tune checks a repo's structured params / generation_config.json sidecar first when the quantizer publishes one (exact values, no guessing), then falls back to reading the model's card (and the original model behind a requant) and prefills the author's recommended temperature / top_k / top_p / min_p. No recommendation → your sampling is left untouched. - Real measured tokens/sec in the model list — live while generating, last-session when idle (never a synthetic estimate). - Full load-parameter UI, a superset of what other tools expose: context length, GPU offload (-ngl), MoE CPU-offload (--n-cpu-moe), parallel slots, independent K and V cache-quant type (incl. low-bit on supporting forks), CPU threads, flash attention, speculative decoding (NextN / MTP / draft / DFlash, with a configurable draft min/max window), a pinned engine port per model, and a custom/raw flags field for anything not exposed as its own control. - Copy the exact launch command for a loaded model — runs the same config standalone with llama.cpp/the fork directly, no TurboLLM required. - Auto-fit GPU layers / MoE offload — an optional toggle (off by default) that hands the GPU/CPU split decision to llama.cpp's own memory-fitting logic at load time instead of a fixed number, honored by Auto-tune too. Useful when a large context or model doesn't fit your usual fixed setting. - Fast by default: flash attention on, NextN self-speculative decoding on for models that carry a draft head, threads auto — safely gated to what your engine actually accepts. - Multi-GPU, per model — split a model across cards (layer/row split + main-GPU pick on llama.cpp, tensor-parallel on vLLM). Defaults are no-ops, so single-GPU rigs are untouched. - Saved per-model profiles, per engine — tune once per (model, engine) pair, so switching engines (or between two installs of the same engine, e.g. a fork) never overwrites another engine's tuning for the same model. - Named load presets, many per model — keep "max speed 32k" and "200k long context" side by side instead of the second tune overwriting the first. Pick one from the Model Detail panel to fill the load parameters (it's remembered and auto-applied on the next load), Save as… captures the current settings, and rename/delete live in the ⋯ menu. Auto-tune mints a preset every time you save one — named Auto-tune <date> and badged with its measured tok/s — so every tune becomes browsable, restorable history rather than a one-slot overwrite. The ten newest auto-tune presets are kept; your own saves are never pruned. Existing profiles carry over as presets automatically, and a model with no presets behaves exactly as before. - Configurable VRAM headroom (Settings → Models & loading → Advanced, 300 MB–2 GB, default 1 GB) — tell auto-tune how much VRAM to keep free for other GPU workloads instead of a fixed margin. Drag it to 0 to opt into an experimental MoE "VRAM-spill" search — auto-tune keeps pushing more experts onto the GPU past the safe margin as long as both generation and prompt-processing speed keep improving.
</details>
<details> <summary><strong>💬 Chat & agentic tools — a genuinely good UI, not an afterthought</strong></summary>
<br/>
- Streaming with a stop button, live tokens/sec, prompt-processing % and prefill t/s, time-to-first-token, total time, exact token counts, and a context-usage meter (filled / max) on every reply. - Thinking control — toggle reasoning off for a direct answer, or leave it on with collapsible, timed "thought for N s" blocks. - Markdown + syntax-highlighted code with one-click copy — plus inline Unicode charts the model draws when a comparison, trend, or hierarchy is genuinely worth a visual. - Live artifacts — html, svg, and mermaid replies render as sandboxed, offline previews shown as an image, with one-click export to PNG / JPEG / SVG / animated GIF / HTML. - Agents — pick a style (Default · Designer · Concise · Detailed · Blunt · Formal · Tutor · Creative · Research · Lite · Code) per conversation, no prompt-wrangling required. The Designer persona produces polished, self-contained, previewable designs by default; Lite strips the hidden prompt to the bare minimum for the fastest responses. See below for editing built-ins or creating your own. - Edit or regenerate any message without losing history — both branch instead of overwriting, with a ‹ 1/2 › switcher to flip between versions (including nested branch points); delete and copy still work as before. Persistent, searchable conversations with rename, delete, and auto-generated titles, organized into drag-resizable, collapsible folders you create/rename/move conversations into. - Switching chats never cancels a reply — an in-flight generation keeps running in the background and saves normally; the sidebar shows a live indicator on any chat still generating, and a dot on one that finished while you were elsewhere. - Preserve thinking across turns (on by default) — the model's past reasoning is resent on later turns, not just its final answers, so follow-ups have real context to work with. - Per-chat system prompt and per-chat sampling overrides — temperature, top-p/k, min-p, repeat/presence/frequency penalties, and stop strings — prefilled from the loaded model's own recommended values, available even before you send the first message. - Image input for vision models, PDF and code/text attachments (real extracted text, not raw bytes), and TurboLLM Expert — a built-in assistant that knows the app and your hardware for onboarding and troubleshooting without leaving the UI. - Agentic tools — built-in web_search (Tavily), fetch_url, and sandboxed run_code, plus an MCP marketplace in Customize: one-click connect for hosted MCPs (GitHub, Linear, Stripe, Atlassian, Neon, Supabase, Cloudflare, Zapier, Apify, Mixpanel) and open-source local MCPs (filesystem, git, postgres, playwright, …), plus your own custom servers. Connected tools appear in every chat with no restart. A Research persona forces multi-step web search and cites sources inline. - Tool-call approval gate — every tool call asks for your approval by default before it runs, with Deny, Allow, Allow for this chat, or Always Allow on an inline bar above the composer. Set per-tool defaults globally from Settings → Tools & safety, or flip Auto-allow all to skip prompts entirely — a tool set to Deny still stays blocked either way. - Usage dashboard — a GitHub-style activity heatmap of your local generation history (adaptive 1h/12h/24h boxes for the 7-day/30-day/all-time views), streaks, peak hour, a per-model breakdown, a lifetime token-milestone tracker, and a separate API tab tracking tokens hitting the gateway from external tools like Claude Code — not just in-app chat. - Auto-memory (experimental, off by default) — silently extracts durable facts you mention in chat (name, preferences, hardware) using your own loaded model, and carries them into future new conversations. Nothing leaves your device; the full fact list is reviewable and deletable from Settings → Memory, and turning the toggle off stops new chats from seeing it immediately. - Turbo Link (experimental, off by default) — link a second machine running TurboLLM with one pasted link string and use its models as if they were local: they appear in the chat model picker (grouped by machine), in /v1/models and in launch --model, and Models, Downloads and Engines merge both machines' rows into one list. You grant an explicit capability set per link — use models only, run a server, or full control — optionally pinned to specific models, and revocable at any time from the host. Not yet verified against a real two-machine setup, so it stays behind Settings → Experimental. - Thinking-budget control — a graduated slider, not just on/off: cap reasoning to a specific token count, disable it entirely, or leave it unlimited. Works in Chat and Code alike. - Reasoning-effort control for models whose own chat template supports it (e.g. Qwen3.8) — an Off/Low/Medium/xhigh slider swaps in automatically in place of the thinking-budget one, detected per model.
</details>
<details> <summary><strong>🧑💻 Code — a local coding agent, in a real project directory</strong></summary>
<br/>
Workspace → Code hands a task to an agent running on the same model you already have loaded — point it at a repo folder, describe what you want, and it reads, edits, and runs commands to get there. Entirely local; nothing leaves your machine.
- Real repo access — plans and edits end-to-end (or asks before mutating, or plan-only, depending on mode), with an optional isolated git worktree so your actual checkout stays untouched, and a real diff summary of what changed. - Persistent sessions — archive/filter past runs, revert to any earlier message (with optional real file-edit reversal), attach files as context, and a "Coding activity" dashboard (sessions, tasks shipped, files touched, diff shipped, streaks) built from real history, not mock data. - Real LSP integration for TypeScript/JavaScript and Python — detects the language, installs the language server if needed, and uses it for edits. - The same tools Chat gets from Customize — any connected MCP server, plus the sandboxed run_code tool — are available to Code too, alongside honest skill invocation and AGENTS.md/agents.md support. - Independent access control — gated behind its own API key on non-host devices, separate from Chat's gate. - Expose it to other tools over MCP — turbollm mcp-server runs a stdio MCP server so any MCP-compatible tool (Claude Desktop, Cursor, Windsurf, Cline, Claude Code, and more) can delegate a real coding task to Code, not just chat completions. Setup snippets for any host are in the Developer tab. - Or run Claude Code, pi or opencode itself, inside Code — set Settings → Code agent and a session opens the real CLI in a full-screen terminal, on your local model, in your project folder. The model picker, context ring, thinking-budget slider and stats row stay right where they are: the CLI replaces the transcript, not the controls. Any of the three not installed yet is shown with an Install button rather than failing when you open the session, and a CLI launched this way sees only your local models — never your cloud API keys. It starts in the mode you picked (auto / plan / ask), the thinking budget applies live with no restart, switching models keeps your scrollback, and the conversation survives a restart of TurboLLM. The terminal backend is an optional native component — if it can't be built for your platform it's skipped (TurboLLM installs and runs normally), and this agent simply isn't offered on that machine.
</details>
<details> <summary><strong>🤖 Customize → Agents — edit any built-in, or build your own</strong></summary>
<br/>
- Edit any built-in agent in place — system prompt, which shared skills it uses, and which tools it may call — with a one-click Reset back to the original. - Create your own agent from scratch: a name, description, and system prompt, plus a checklist of which shared skills and which tools it's allowed to use (everything on by default). Pick it from the same in-chat agent picker as the built-ins. - MCP tools grouped by server in the tool checklist — one toggle selects or deselects an entire server's tools at once, or expand it to pick individually.
</details>
<details> <summary><strong>🔌 APIs & integrations — OpenAI + Anthropic, a model-loading gateway, and a stateful chat API</strong></summary>
<br/>
With a model loaded, TurboLLM serves two compatible APIs on the same port:
```bash
No other local-LLM app lets you run whatever inference engine you want. TurboLLM treats the engine as a swappable component.
Add a custom engine (Engines screen → Add your own engine):
1. Compile or download any llama-server-compatible binary — stock llama.cpp, a community fork, or your own build. 2. Point TurboLLM at the folder — it scans for the llama-server binary, runs a capability probe, and learns exactly which flags and features that build supports. (Optional: paste the source repo URL so TurboLLM flags when a newer build ships.) 3. Activate it. The load-parameter UI adapts to that engine — features the build doesn't support are hidden; ones it adds (e.g. low-bit KV cache, NextN) light up.
No prebuilt for your OS? The build-from-source guide checks your toolchain (git / CMake / CUDA / a compiler — MSVC on Windows, gcc/clang on Linux), hands you the exact build commands (or a 1-click "Build it for me" on Windows and Linux), then drops you into the folder scan above.
Or skip the manual clone entirely — Engines screen → Add via git repo: paste any llama.cpp-compatible fork's git URL (+ optional branch, defaults to the repo's own default) and build it in-app with the same 1-click flow, no separate "point at a folder" step needed.
Branch pickers and engine update checks both read GitHub's API, which allows 60 anonymous requests an hour. If you run into that ceiling, add a GitHub token in Settings → Models & loading to raise it to 5,000/hour — it is write-only and never leaves your machine.
Auto-provisioned default. Don't want to fetch anything? On first run TurboLLM downloads the right upstream prebuilt for your GPU automatically — and a backend picker lets you switch between CUDA / ROCm / Metal / SYCL / Vulkan / CPU at any time (it downloads the variant you choose, LM Studio-style).
Engine types. llama.cpp / GGUF, KoboldCpp and llamafile (GGUF, every OS), MLX and MLX-VLM (macOS), and vLLM (Linux + NVIDIA) are all first-class engine kinds — install from the curated catalog, pick the right one per model, and switch from a single dropdown.
Fully supervised. Every engine runs under a real state machine: health-gated readiness, graceful stop, an idle auto-stop watchdog, and live logs + clear error surfacing in the UI when something fails to load.
Why it matters: fork-exclusive features — speculative decoding (NextN / MTP / draft), low-bit KV cache, new quant formats — are usable on day 0, with zero compiler knowledge on your part beyond producing the binary (and often not even that).
---
<details> <summary><strong>Don't have Node?</strong> One command installs it.</summary>
<br/>
- Windows: winget install OpenJS.NodeJS.LTS (or download from <https://nodejs.org>) - macOS: brew install node (or download from <https://nodejs.org>) - Linux: use your distro's package manager or <https://nodejs.org> — make sure it's v22+ (node --version)
Then open a new terminal (Windows needs one for PATH to refresh) and run npx turbollm.
</details>
- Windows, macOS, or Linux for npx turbollm. A native Android app also exists, with a bundled Vulkan-accelerated engine — currently in closed/open testing, see turbollm.dev. - A GPU is recommended but not required — a CPU build is provisioned as a fallback. - On Windows, the first time the auto-downloaded llama-server runs, SmartScreen/Defender may prompt (it's an upstream binary). Allow it once.
---
npx turbollm
npm install -g turbollm turbollm ```
On first run the daemon:
1. Detects your GPU and downloads a matching llama-server build (CUDA for NVIDIA, ROCm for AMD, Metal for Apple, SYCL for Intel, Vulkan otherwise — with a CPU fallback). 2. Starts on <http://127.0.0.1:6996> and opens your browser. 3. Walks you through a short setup wizard: pick how you'll use it (casual chat, coding, tinkering, or pro), get a model recommended for your actual hardware (or bring your own), watch it download and load for real, and try it — before landing in Chat or Code. Skippable from any step, and safe to close mid-download — reopen /onboarding any time from Models to pick up where you left off.
After that (or any time later), open Models, download or pick a GGUF, click Load, and start chatting. Stop the daemon any time with Ctrl+C.
---
TurboLLM includes Docker support with dedicated configurations for NVIDIA CUDA and AMD ROCm GPUs.
The Docker images provide an isolated environment while allowing TurboLLM to access your GPU directly for accelerated local LLM inference.
TheDockerfile.*anddocker-compose-*.yamlfiles referenced below live in the GitHub repository, not in the npm package — clone the repo to use them.
```bash
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \ sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update sudo apt install -y nvidia-container-toolkit
sudo systemctl restart docker
docker compose -f docker-compose-nvidia.yaml up -d ```
sudo apt update sudo apt install wget gnupg
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | \ sudo gpg --dearmor -o /usr/share/keyrings/rocm.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/latest ubuntu main" | \ sudo tee /etc/apt/sources.list.d/rocm.list
sudo apt update
sudo apt install rocm sudo usermod -aG render,video $USER sudo reboot
docker compose -f docker-compose-amd.yaml up -d ```
---
Everything lives under ~/.turbollm/ on every OS — config.json, the SQLite chat database, downloaded engines, models cache, and logs. Back it up or delete it to reset. Use --config <file> to point at an alternate config (its directory becomes the data dir).
---
turbollm # start on :6996, open browser
turbollm --port 9000 # listen on a specific port
turbollm --no-open # start without opening a browser
turbollm --addr 0.0.0.0:6996 # bind all interfaces (LAN sharing)
turbollm --stop # stop a running daemon (any terminal)
turbollm launch claude # start Claude Code (auto-loads a model if none is running)
turbollm launch claude --model qwen3-8b # load a specific model, then launch
turbollm launch opencode # wire opencode (or kilo / openclaw) to TurboLLM, then launch
| Flag | Description |
|---|---|
--port <n> | Listen on a specific port (default: 6996) |
--addr <host:port> | Full host:port override, e.g. 0.0.0.0:6996 for LAN sharing |
--no-open | Start without opening a browser window |
--config <file> | Path to a custom config file |
--stop | Stop a running TurboLLM daemon (reads ~/.turbollm/daemon.pid) and exit |
--help, -h | Show usage and exit |
turbollm launch claude also accepts --model <key|name> to load a specific model before launching; without it, an already-loaded model is used, or the last-used / first model is auto-loaded. The same command works with opencode, kilo, and openclaw — each gets a turbollm provider merged into its own config file before it starts — and with hermes, which gets configured via its own hermes config set command instead.
---
The container publishes port 6996 on 0.0.0.0, so TurboLLM's daemon requires an API key for every request the moment it starts — there is no browser inside the container to log in with. Both images launch with --print-token, which mints a fresh key and prints it on every container start (not just the first), so it's always one command away:
docker compose -f docker-compose-nvidia.yaml logs | grep 'Token:' # or docker-compose-amd.yaml
Grab the value after Token: and either paste it into the web UI's login prompt, or send it yourself as X-TurboLLM-Auth: <key> (or Authorization: Bearer <key>). Each restart mints a new one, so re-run the command above after a restart rather than reusing an old value — old keys keep working too and can be revoked from Developer → API Keys once you're in.
---
Same GPU (RTX 5070 Ti 16 GB), same model, same 200K context — measured generation speed. TurboLLM is faster than LM Studio on the very same official llama.cpp, and faster still when you run a community fork LM Studio can't.
① On official llama.cpp, TurboLLM is faster. It auto-provisions a GPU-native engine build (CUDA 13 for Blackwell here) and tunes expert-offload to the layer, so at the same KV-cache quant it beats LM Studio's bundled runtime:
| Qwen3.6-35B-A3B · 200K | TurboLLM | LM Studio | Speed-up |
|---|---|---|---|
official llama.cpp — q4_0 | **74.7 t/s** | 61.0 t/s | **1.2×** |
official llama.cpp — q8_0 | **72.3 t/s** | ~66 t/s\* | **1.1×** |
② Run a faster engine and pull far ahead. Because TurboLLM runs any engine, you can drop in the TurboQuant fork — a llama.cpp fork with a low-bit turbo4 KV cache that LM Studio simply can't load — in one click. On a large-KV model it delivers q8_0-level quality at more than double the speed:
| Qwen3.6-27B · 200K · matched quality | TurboLLM + TurboQuant | LM Studio | Speed-up |
|---|---|---|---|
turbo4 vs q8_0 | **24.6 t/s** | 11.4 t/s | **2.2×** |
Same run, 1.7× faster prefill too (1288 vs 757 tok/s).
<sub>\*LM Studio's q8_0 mildly spilled VRAM at its best offload. A low-bit KV cache helps most when the cache is large; TurboLLM's auto-tuner and on-screen measured t/s pick the fastest engine + config for each model, so you don't have to.</sub>
---
Focused on the differences that matter — all four are good tools, and the others move fast. Marks reflect mid-2026; verify the moving rows against each tool's current docs.
| **TurboLLM** | LM Studio | Ollama | Open WebUI | |
|---|---|---|---|---|
| Run **any engine / community forks** | ✅ | ❌ llama.cpp/MLX only | ❌ hidden | ❌ frontend |
| **Benchmark-based auto-tune** of launch flags | ✅ | ◐ basic offload | ◐ basic offload | ❌ |
| **Measured** t/s in the model list | ✅ | ◐ per-run | ◐ --verbose | ❌ |
**Anthropic** API (/v1/messages) → Claude Code | ✅ | ✅ 0.4.1+ | ✅ v0.14+ | ❌ |
| OpenAI-compatible API | ✅ | ✅ | ✅ | ◐ proxy |
| Auto-load the requested model / multi-model pool | ✅ | ✅ JIT | ✅ | ❌ |
| Use existing model folders (no re-download) | ✅ | ◐ import | ◐ import | ❌ frontend |
| Speculative decoding (draft / MTP) | ✅ | ✅ | ◐ env flag | ❌ |
| Web UI from any LAN device | ✅ | ❌ | ❌ | ✅ |
| **Lightweight** (no Electron / no Python) | ✅ npm | ❌ Electron | ✅ Go | ❌ Python |
| Offline-first · **verifiable telemetry** (on by default) | ✅ verifiable (source-available) | ◐ closed app — not verifiable | ✅ | ✅ |
LM Studio and Ollama both added Anthropic /v1/messages endpoints in 2026, so the API rows are now parity — Claude Code works against any of them. TurboLLM's durable edges are any engine including community forks, benchmark-based auto-tuning with a VRAM-fit verdict + measured t/s before you commit, and telemetry you can actually verify — on by default, changeable any time, and checkable against source-available code rather than taken on trust.
Prefer Open WebUI's chat breadth? It works great pointed at TurboLLM's OpenAI endpoint.
---
- TurboLLM requires Node.js 22.13.0 or newer — upgrade Node: <https://nodejs.org>. - Model won't load / OOM — pick a smaller quant (the VRAM verdict warns you), lower GPU offload, or close other GPU apps. Failures surface in the Engines screen with the engine log. - Windows Defender / SmartScreen prompt — that's the upstream llama-server binary on first run; allow it once. - Port already in use — turbollm --port 9000. - Slow generation — open the model's load params; ensure GPU offload is high and flash attention / NextN are on for supported models.
---
TurboLLM 是一款强大的本地大语言模型(LLM)运行工具。它支持运行任何本地 LLM 引擎,并能针对您的 GPU 进行自动优化调优。通过提供精致的 Web UI 以及与 OpenAI 和 Anthropic 完全兼容的 API,TurboLLM 让开发者能够轻松地在本地部署并调用各种模型,实现“自带模型”的高效工作流。
TurboLLM 的核心亮点在于其极高的灵活性:它允许用户运行任何推理引擎,包括���区分支版本。您可以将推理引擎视为可插拔组件,通过添加自定义的 llama-server 兼容二进制文件来扩展功能。此外,它支持直接使用现有的模型文件夹,或直接从 Hugging Face 浏览并下载模型,真正实现了引擎与模型的解耦。
运行 TurboLLM 需要 Node.js 22 或更高版本。系统支持 Windows、macOS 和 Linux。虽然强烈建议使用 GPU 以获得最佳性能,但它也支持 CPU 模式作为兜底方案。在 Windows 环境下,首次运行时系统会自动处理相关的驱动与环境配置。
对于初次尝试的用户,推荐使用无需安装的命令 `npx turbollm` 直接运行。若需长期使用,可以通过 `npm install -g turbollm` 进行全局安装。首次启动时,后台守护进程会自动检测您的 GPU 类型(如 NVIDIA 的 CUDA、AMD 的 ROCm、Apple 的 Metal 等),并下载匹配的 `llama-server` 构建版本,随后在 http://127.0.0.1:6996 启动 Web 界面。
安装完成后,只需在终端输入 `turbollm` 即可启动服务并自动打开浏览器。进入 Chat 界面后,您可以前往 Models 页面下载或选择已有的模型进行对话。如果您希望在特定端口运行或在后台静默启动,可以配合命令行参数进行调整。
TurboLLM 的所有数据(包括 config.json 配置文件、SQLite 聊天数据库、下载的引擎、模型缓存及日志)均统一存储在各操作系统的 `~/.turbollm/` 目录下。您可以随时备份或删除该目录来重置环境。此外,通过使用 `--config <file>` 参数,您可以指定自定义的配置文件及其数据目录。
TurboLLM 提供丰富的命令行接口(CLI)用于管理服务。例如,使用 `turbollm --port 9000` 指定监听端口,使用 `turbollm --no-open` 在不打开浏览器的情况下启动,或使用 `turbollm --addr 0.0.0.0:6996` 进行局域网共享。若需停止正在运行的守护进程,可以使用 `turbollm --stop` 命令。
常见问题解答:若遇到 Node.js 版本错误,请升级至 Node.js 22+;若模型加载失败或出现 OOM(显存溢出),建议选择更小的量化版本(Quant)、降低 GPU Offload 权重或关闭其他占用显存的应用。所有引擎运行日志均可在 Engines 界面查看,以便于排查 Windows Defender 或驱动兼容性问题。
高性能本地AI模型部署工具
该工具未明确声明开源协议,商业使用前请联系原作者确认授权范围,避免侵权风险。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
总体来看,TurboLLM 是一款质量优秀的AI工具,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | TurboLLM |
| 原始描述 | 开源AI工具:Run any local LLM engine, auto-tuned to your GPU — polished web UI + OpenAI/Anth。⭐124 · TypeScript |
| Topics | AIGPUTypeScript |
| GitHub | https://github.com/mohitsoni48/TurboLLM |
| 语言 | TypeScript |
收录时间:2026-06-27 · 更新时间:2026-06-27 · License:未公布 · AI Skill Hub 不对第三方内容的准确性作法律背书。