Skip to content

Releases: mohitsoni48/TurboLLM

v1.8.1

Choose a tag to compare

@mohitsoni48 mohitsoni48 released this 17 Jul 17:31
4d2714d

A large batch of reliability fixes — auto-tune accuracy, Code's revert-to-message and /compact, and a real VRAM-detection bug — plus an opt-in MoE auto-tune "VRAM-spill" search.

Added

  • MoE auto-tune "VRAM-spill" search (opt-in) — set VRAM headroom to 0 (Settings → Models & loading → Advanced) to let auto-tune keep pushing more experts onto the GPU past its normal safety margin, as long as both generation AND prompt-processing speed keep improving. Off by default; your configured headroom is otherwise always honored exactly as before.
  • Auto-tune's results dialog now also shows prefill (prompt-processing) speed, not just generation speed.

Fixed

  • Auto-tune vs. real chat speed gap — the benchmark now uses a representative prompt and depth instead of a short generic one, so the tok/s it reports is much closer to what you'll actually see in a real conversation.
  • Auto-tune no longer picks the KV-cache type for you — it tunes GPU/CPU offload on whichever KV type you already have selected, and shows an advisory note (not an automatic switch) when a faster type is available. Fixes a case where the "quality-preserving" pick auto-tune made was measurably slower and used more VRAM than a manual choice.
  • Auto-tune wrongly skipped single-GPU placement whenever a model missed fitting fully on one card by even a hair, forcing a slower cross-GPU split even when the split had plenty of room to spare (#62). A related fix stops a noisy VRAM reading from silently ruling out a smaller KV-cache type.
  • Auto-tune could lose an unsaved manual config edit when a run started, and Cancel could take up to 8 seconds to actually stop.
  • AMD/Intel dedicated GPUs on Windows could be reported as ~4 GB VRAM regardless of their real size, due to a 32-bit limit in the Windows API used to read it (#63).
  • 1-click engine build failed with a bare "Code 1" for a repo that isn't a CMake project (e.g. exllamav3) — now fails fast with a clear explanation instead (#61).
  • Code: long sessions that ran out of context just failed instead of compacting, with no way to continue; a related crash from a background language-server message race is also fixed (#60).
  • Code: revert-to-message was fundamentally broken — reverting to an earlier message could leave it (and its reply) still showing, or in some cases hide the wrong part of the conversation entirely. Reverting now correctly discards the reverted message and everything after it, and /resume still brings it back exactly as before.
  • Code: manual /compact always said "nothing to compact," no matter how long the real conversation was — root-caused to how a session's most recent turn interacted with the underlying compaction logic. Also added a real "Compacting conversation…" indicator; previously the composer just went blank with no feedback while it worked.
  • Code: Blank persona could still leak tool instructions into the model despite promising none; an aborted/empty message kept showing Copy/Edit controls; an interrupted generation could show 0 tokens even though real output was saved; and hover-only actions in chat/Code were unreachable on touch devices — all fixed.
  • Code: custom-added engines (via "Add via git repo" or a manual path) now get the same Disable/Enable/Delete/Rebuild controls a built-in catalog engine has.
  • Sidebar conversation titles now update live without a page reload; an auto-generated title no longer gets derailed by injected memory facts on a brand-new chat.
  • macOS engine parity fixes (Metal builds, Rapid-MLX, and other cross-engine fixes) (#50).

v1.8.0

Choose a tag to compare

@mohitsoni48 mohitsoni48 released this 14 Jul 08:39
1ee931d

Code — a local coding agent that reads, edits, and runs commands in a real project directory,
entirely on your own machine — plus graduated thinking-budget control and a new Experimental
settings section.

Added

  • Code (Workspace → Code, opt-in via Settings → Experimental) — a local coding agent built on
    the same model you already have loaded. Point it at a real repo folder (optionally in an
    isolated git worktree so your checkout stays untouched), hand it a task, and it plans, edits
    files, runs shell commands, and reports a real diff — all local, nothing leaves your machine.
    • Session workspace: persistent sessions with archive/filters, revert-to-message (with
      optional real file-edit reversal), "Add context" file attachments, honest skill invocation,
      AGENTS.md/agents.md support, transcript copy, and a real "Coding activity" dashboard
      (sessions, tasks shipped, files touched, diff shipped, streaks) — no mock data.
    • Real LSP integration for TypeScript/JavaScript and Python — Code 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 now available to Code sessions too.
    • Independent API-key gating on non-host devices, separate from Chat's own gate.
  • Graduated thinking-budget control (Chat and Code) — a real token-budget slider, not just an
    on/off toggle: cap reasoning to a specific token count, turn it off entirely, or leave it
    unlimited.
  • Settings → Experimental — a new opt-in section gating three still-in-progress features
    (Code, Memory, Cloud Launch/RunPod), off by default. Disabling Code removes its entry point
    entirely.

Fixed

  • macOS: Metal builds, Rapid-MLX, and other cross-engine parity fixes (#50).
  • Multi-GPU: the auto-tuner now tunes the actual split across cards, not just offload + KV quant
    (#57).
  • Code: a turn could truncate to almost no output (a single reasoning token, then a hard stop)
    whenever the prompt — system prompt plus the full tool-schema catalog — used a large enough
    share of the loaded model's context window. Every Code turn now generates until it naturally
    finishes or the context genuinely runs out, instead of stopping at a stale token ceiling fixed
    at model-load time.
  • Code: context-usage % now updates live during a run and no longer drops to near-zero on an
    aborted turn or resets to 0% right after a completed turn.
  • Code: message and tool-call order is now preserved exactly as it happened on completed turns.
  • Code: a stop hit while a turn was queued behind another generation is now recorded as a clean
    interrupt instead of a cryptic failure.

v1.7.7

Choose a tag to compare

@mohitsoni48 mohitsoni48 released this 10 Jul 13:16
0579e74

Custom engine self-service, auto-fit GPU/MoE offload, and two real bug fixes.

Added

  • Custom engine: build from any git repo — Engines → "Add via git repo" lets you point at any llama.cpp-compatible fork's URL (+ optional branch) and build it in-app with one click, reusing the existing build pipeline. No more manually cloning and adding the binary by hand.
  • Auto-fit GPU layers / MoE CPU offload — new toggles in a model's Load settings (and honored by Auto-tune) that let llama.cpp decide the GPU/CPU split for you at load time, instead of a fixed number — useful when a large context or model doesn't fit the old fixed default. Off by default.

Fixed

  • A brief empty message bubble could appear above the real reply on a fresh chat send, with working Copy/Edit/Delete controls on it — a backend placeholder message racing the UI's optimistic refresh.
  • On a machine with an integrated GPU, its VRAM was sometimes reported as if it were dedicated graphics memory, causing wrong model-quant defaults and false "won't fit" warnings.

v1.7.6

Choose a tag to compare

@mohitsoni48 mohitsoni48 released this 09 Jul 10:40
90fa1c3

Token usage dashboard and an opt-in auto-memory feature.

Added

  • Usage dashboard (new nav tab, replaces nothing — sits above Developer) — an adaptive
    GitHub-style activity heatmap (1-hour boxes for the 7-day view, 12-hour for 30-day, 1-day for
    all-time, always the same overall size), 8 stat tiles (sessions, messages, total tokens, active
    days, streaks, peak hour, favorite model), a per-model tab with a stacked usage chart and ranked
    legend, and a lifetime milestone ladder with a rotating "you've generated more tokens than X"
    comparison.
  • Auto-memory (Settings → Memory, tagged Experimental, off by default) — silently extracts
    durable facts you mention in chat (name, preferences, hardware, projects) using the model you
    already have loaded, and adds them to future new conversations. Nothing leaves your device. A
    reviewable, deletable fact list lives right in the toggle section — turning it off immediately
    stops new facts from being injected into new chats.

v1.7.5

Choose a tag to compare

@mohitsoni48 mohitsoni48 released this 09 Jul 05:58
8323de6

Chat branching, message editing, preserve-thinking, and a background-generation UX pass — plus a real CUDA fallback bug and a model-swap silent failure fixed.

Added

  • Chat branching — editing a message or regenerating a reply no longer overwrites history: both create a branch, switchable via a ‹ 1/2 › control on the message, including nested branch points (branching inside an already-branched conversation).
  • In-place message editing for assistant replies — fixes the text without triggering a new generation; shows an "Edited" tag.
  • Preserve thinking across turns (Thread settings) — resends the model's past reasoning on later turns, not just its final answers. On by default for new conversations.
  • Thread settings usable on a blank chat — reachable as soon as a model is loaded, even before the first message is sent.
  • Sampling sliders now default to the loaded model's own recommended values instead of fixed generic constants.
  • Skills list in Thread settings is now collapsible (collapsed by default) with a master on/off checkbox.
  • Pinned models now sort to the top of the chat model picker, not just the Library list.
  • Background-generation sidebar indicators — a live spinner on any conversation still generating in the background, and a dot on one that finished while you were elsewhere.

Changed

  • Switching conversations no longer cancels an in-flight reply — it keeps generating and saves normally; only an explicit Stop/Eject/delete cancels a generation now.
  • Custom-added engines now render their own card in the engine gallery instead of being invisible next to auto-downloaded official builds.

Fixed

  • The CUDA backend could silently fall back to CPU if its cudart runtime bundle never finished downloading — a completeness check now catches this and backfills existing installs without forcing a re-download.
  • Reloading the same model or switching models could sometimes leave nothing loaded, with no error shown — a slow engine stop could abandon the load silently.
  • Engine directory scanning could crash on a permission-restricted subfolder.
  • A streaming display bug could briefly show an empty "thinking" block.
  • The Thread settings dialog could overflow off-screen with a lot of skills installed.
  • ConversationSettingsDialog now uses an accessible dialog title (screen-reader fix).

v1.7.4

Choose a tag to compare

@mohitsoni48 mohitsoni48 released this 07 Jul 04:35
38df0a8

Engines, Library, Developer, and Settings redesigned, and every screen now works on mobile.

Added

  • Mobile-responsive layouts across every screen (drawer navigation, stacked cards, horizontal tab strips, split panes that stack vertically) — the desktop/landscape layout is unchanged.
  • Library: a dedicated Folders dialog with a real folder picker for managing model directories, plus name search and facet-aware filter chips (a chip only appears if at least one model has it).
  • Engines: per-card hardware-fit indicators (green/amber/red: Compatible / runs after a build / incompatible + reason) and grounded pros/cons for every engine.
  • The folder/file picker (used by model folders and "Add your own engine") gained an editable address bar — paste or type an absolute path and jump there directly, alongside click-to-browse.

Changed

  • Library: rows are now a column-aligned two-tier layout (name + one state signal + quiet capability chips, with aligned Quant/Size/Ctx/Speed columns); multi-quant models fold into one row with a quant dropdown instead of a collapsible group.
  • Engines: the active-engine bar and hardware-fit selector merged into one panel with a run-state traffic light (green running / amber starting / red error / grey stopped); llama.cpp variants unified under one "Manage GPU builds" card; "Add your own engine" moved into a compact strip.
  • Developer: narrowed to connecting external tools — a Connection panel, one-command CLI setup cards, and a collapsed API reference. Cloud Deploy (RunPod) moved behind an internal feature flag, off by default.
  • Settings: reorganized into a two-pane, five-category layout (General · Models & loading · Tools & safety · Network & sharing · System) with one sticky Save bar; expert knobs (GPU layers, VRAM headroom, image/response token caps) moved into a collapsible Advanced section. Tool permissions moved here from Developer (Settings → Tools & safety).
  • "Add your own engine" filesystem browsing is local-only (same restriction as engine scanning) but can now browse the whole local filesystem, including other drives on Windows — previously confined to your home directory.

Fixed

  • Every dialog now keeps a gutter on narrow screens instead of rendering flush to the viewport edge.
  • Assorted mobile overflow issues: chat header controls clipping on narrow screens, Library action buttons pushed off-screen, Settings controls clipped at the edge, and long Hugging Face repo names/inline code overflowing their containers.

v1.7.3

Choose a tag to compare

@mohitsoni48 mohitsoni48 released this 06 Jul 12:21
eac41c6

The standalone Agents screen is retired — replaced by a shared Skills library used directly in chat, plus a new Agents tab in Customize for editing personas and building your own.

Added

  • Skills. A shared library of reusable instructions (Claude-style SKILL.md format) any
    conversation can enable — via the / picker in the composer (Tab-complete included) or a
    conversation's settings. Manage the library from Customize → Skills: upload a SKILL.md
    directly, or have TurboLLM learn one from a folder of docs or distill one from an existing
    conversation's transcript.
  • Agents in Customize. A new Agents tab (alongside Skills and MCP Servers) lets you edit any
    built-in persona's system prompt, skills, and tool access in place — with a Reset button to
    restore the original — or create your own custom agent from scratch. Each agent gets a name,
    description, system prompt, and checklists for which shared skills and which tools it may use
    (everything on by default). MCP tools are grouped by server with one toggle to select or
    deselect all of a server's tools at once, or expand to pick individually.
  • Two new built-in agents. Lite strips the hidden system prompt to the bare minimum for the
    fastest possible responses (every tool still available); Code is tuned for precise, idiomatic
    code with minimal narration.

Removed

  • The standalone Agents screen (background tasks running separately from chat) is gone. It's
    replaced by Skills used directly inside chat — the same idea, giving the model reusable extra
    capabilities, without a separate surface to launch into, reconnect to, or lose track of.

Discord

  • New: Skills — a shared library of reusable instructions you enable per chat with /, manage in
    Customize, upload, or have TurboLLM learn from a folder or an existing conversation.
  • New: Customize → Agents — edit any built-in agent's prompt/skills/tools in place, or create your
    own from scratch, with a Reset button on the built-ins.
  • New: Lite (fastest, bare-bones prompt) and Code (coding-focused) agents.
  • Changed: the old standalone Agents screen (background tasks) is retired in favor of Skills in
    chat.

v1.7.2

Choose a tag to compare

@mohitsoni48 mohitsoni48 released this 06 Jul 05:32
e805d08

MTP / speculative-decoding models load and run correctly, the Windows install crash is fixed, and auto-tune now respects your MTP setting.

Added

  • Developer → Connect a CLI now covers every launch target. openclaw and hermes have their own cards (previously missing), and opencode / kilo / openclaw / hermes each lead with the one-command turbollm launch <cli> setup, with the manual config kept as a fallback.

Changed

  • Auto-tune respects your MTP setting. Running auto-tune on an MTP / NextN model now tunes with speculative decoding active — so the chosen GPU/CPU offload leaves room for its real memory footprint — and keeps MTP enabled in the saved profile instead of silently turning it off.

Fixed

  • Install no longer crashes on Node 22.5–22.12. TurboLLM uses Node's built-in SQLite, which only works without an experimental flag on Node 22.13.0+. Below that, npx turbollm crashed with an obscure node:sqlite error; it now requires 22.13.0+ and says so clearly. (#40)
  • MTP / speculative-decoding models load again. A newer llama.cpp renamed its speculative-decoding flags; TurboLLM kept passing the removed ones, so any MTP model failed to load. It now detects and uses the current flags, and auto-corrects engines that were already installed. (#43)
  • MTP no longer balloons system RAM. Native MTP was loading a second full copy of the model into RAM (tens of GB on large models) and running slower; it now uses only a small amount of extra memory and runs faster, as intended.

v1.7.1

Choose a tag to compare

@mohitsoni48 mohitsoni48 released this 05 Jul 16:48
26dc573

Local coding CLIs: model pinning restored, /model now lists your local models, and four new launch targets.

Added

  • turbollm launch opencode|kilo|openclaw|hermes — wire any of these coding CLIs to your local model with one command, the same way turbollm launch claude already does. opencode, kilo, and openclaw each get a turbollm provider merged into their own config file (an existing config — comments included — is preserved as-is if it's already pointed at TurboLLM); hermes is configured through its own hermes config set command instead, since its config file is YAML.
  • Claude Code's /model picker now lists your local models, so you can switch mid-session instead of only at launch. Turn on Auto Model Swap in Settings → Gateway first — the picker only shows local models when a pick can actually load (otherwise it would silently do nothing).

Changed

  • turbollm launch claude pins the loaded model again by default, not just when you pass --model. Claude Code uses the model name for its status line, /status, and context-window sizing even when talking to a local model, so this keeps all three accurate instead of guessing a cloud default.

v1.7.0

Choose a tag to compare

@mohitsoni48 mohitsoni48 released this 04 Jul 18:35
defc624

A configurable VRAM headroom, a real tool-call approval gate for chat, and engine build fixes.

Added

  • VRAM headroom slider (Settings → Engine, 300 MB–2 GB, default 1 GB) — tell auto-tune how much VRAM to keep free for other GPU workloads (ComfyUI, a browser full of tabs, etc.) instead of the previous fixed 1 GB margin.
  • Tool-call approval gate for chat — every tool call (web search, fetch URL, run code, MCP tools) now asks for your approval by default before it runs. A small bar appears above the message box with Deny, Allow, Allow for this chat, or Always Allow. Set per-tool defaults (Ask / Allow / Deny) globally from Developer → Tool permissions. Replaces the old run_code-only confirmation, which didn't actually work (it always ran anyway). Background agents are unaffected — a tool an agent is configured to use still runs without a prompt, since there's no one there to ask.

Fixed

  • Dual-GPU systems no longer show the wrong VRAM total on the Engines screen — the "Your hardware" hero card fell back to a single un-summed GPU's VRAM instead of the primary-vendor sum whenever the recommendation query hadn't resolved yet, which happened on effectively every page load.
  • Source builds (CUDA engines) no longer fail configure with a -- unsupported Microsoft Visual Studio version! CMake error on newer VS releases (e.g. VS2026) that CUDA's nvcc doesn't yet recognize as a supported host compiler — cmake now passes nvcc's own -allow-unsupported-compiler escape hatch by default, for both the in-app 1-click build and the manual command list in the build guide.
  • The build guide's manual command list no longer produces an engine that silently runs CPU-only: a source build doesn't bundle the CUDA runtime, so the commands now also copy the CUDA DLLs/shared libs next to the binary — matching what the 1-click build already does.
  • The opencode connect snippet now uses the correct singular provider config key.