turbollm 1.7.3 → 1.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -13
- package/dist/cli.js +245 -71
- package/dist/webdist/assets/AgentEditPage-CfiJQeRy.js +1 -0
- package/dist/webdist/assets/ChatScreen-CyzSdlm7.js +65 -0
- package/dist/webdist/assets/CustomizeScreen-BQMntB-C.js +4 -0
- package/dist/webdist/assets/DeveloperScreen-DKDEoZ_0.js +1 -0
- package/dist/webdist/assets/EnginesScreen-BGc09u0i.js +7 -0
- package/dist/webdist/assets/FsBrowser-CxCRvnU8.js +1 -0
- package/dist/webdist/assets/{MessageBubble-mJwFfOab.js → MessageBubble-CxHvNrgj.js} +15 -15
- package/dist/webdist/assets/ModelsScreen-RRK-uCW8.js +2 -0
- package/dist/webdist/assets/SettingsScreen-CDUlGnqu.js +1 -0
- package/dist/webdist/assets/SkillEditPage-CHh9An9Z.js +1 -0
- package/dist/webdist/assets/WorkspaceScreen-BbjiYb6f.js +1 -0
- package/dist/webdist/assets/{agent-api-B3GXwr4Y.js → agent-api-B0qitSjr.js} +1 -1
- package/dist/webdist/assets/{arc-CRcL8nar.js → arc-Cdcmyops.js} +1 -1
- package/dist/webdist/assets/{architectureDiagram-3BPJPVTR-BmOKGMd0.js → architectureDiagram-3BPJPVTR-BQlFr2uc.js} +1 -1
- package/dist/webdist/assets/arrow-left-BgPNNAIi.js +1 -0
- package/dist/webdist/assets/{blockDiagram-GPEHLZMM-C4vusmQ-.js → blockDiagram-GPEHLZMM-CMRPD5BN.js} +1 -1
- package/dist/webdist/assets/bot-CVbPHmTQ.js +1 -0
- package/dist/webdist/assets/{c4Diagram-AAUBKEIU-DdY0YXKs.js → c4Diagram-AAUBKEIU-BYXwwlnp.js} +1 -1
- package/dist/webdist/assets/channel-B3OIXexj.js +1 -0
- package/dist/webdist/assets/chat-api-x93Fzf3q.js +3 -0
- package/dist/webdist/assets/check-Cx4ep7jU.js +1 -0
- package/dist/webdist/assets/{chevron-left-CfyO2AXW.js → chevron-left-D03iirWA.js} +1 -1
- package/dist/webdist/assets/{chevron-right--1OIa5uV.js → chevron-right-B7Mj5eje.js} +1 -1
- package/dist/webdist/assets/{chunk-2J33WTMH-DzCJsNN1.js → chunk-2J33WTMH-BTHWkgj0.js} +1 -1
- package/dist/webdist/assets/{chunk-4BX2VUAB-BNPfO47j.js → chunk-4BX2VUAB-C0OdA31w.js} +1 -1
- package/dist/webdist/assets/{chunk-55IACEB6-_vELiE2B.js → chunk-55IACEB6-V6hn9Bpx.js} +1 -1
- package/dist/webdist/assets/{chunk-727SXJPM-CsQCgUxY.js → chunk-727SXJPM-DCntVbqt.js} +1 -1
- package/dist/webdist/assets/{chunk-AQP2D5EJ-G0waQ7sq.js → chunk-AQP2D5EJ-D4PhS_5c.js} +1 -1
- package/dist/webdist/assets/{chunk-FMBD7UC4-CkNtvlrw.js → chunk-FMBD7UC4-qDBSNTHO.js} +1 -1
- package/dist/webdist/assets/{chunk-ND2GUHAM-DGnw4n1I.js → chunk-ND2GUHAM-D7KguwAx.js} +1 -1
- package/dist/webdist/assets/{chunk-QZHKN3VN-BpJ4HH0V.js → chunk-QZHKN3VN-3zsu8TEd.js} +1 -1
- package/dist/webdist/assets/circle-x-Bm98m9k6.js +1 -0
- package/dist/webdist/assets/classDiagram-4FO5ZUOK-CIneh01q.js +1 -0
- package/dist/webdist/assets/classDiagram-v2-Q7XG4LA2-CIneh01q.js +1 -0
- package/dist/webdist/assets/collapsible-CZm9yoBQ.js +1 -0
- package/dist/webdist/assets/common-DhVKZnxd.js +1 -0
- package/dist/webdist/assets/{cose-bilkent-S5V4N54A-fol9bGNP.js → cose-bilkent-S5V4N54A-CdJ22dvm.js} +1 -1
- package/dist/webdist/assets/{dagre-BM42HDAG-kyg4YiiE.js → dagre-BM42HDAG-C0tsLnJj.js} +1 -1
- package/dist/webdist/assets/{diagram-2AECGRRQ-CK_mQs9l.js → diagram-2AECGRRQ-tReRMIGZ.js} +1 -1
- package/dist/webdist/assets/{diagram-5GNKFQAL-MBl66jsh.js → diagram-5GNKFQAL-BPDwtKWf.js} +1 -1
- package/dist/webdist/assets/{diagram-KO2AKTUF-IxjaUqTu.js → diagram-KO2AKTUF-dxXvPo_e.js} +1 -1
- package/dist/webdist/assets/{diagram-LMA3HP47-Cc_fuuLo.js → diagram-LMA3HP47-BblbbKep.js} +1 -1
- package/dist/webdist/assets/{diagram-OG6HWLK6-DvprGLFT.js → diagram-OG6HWLK6-Bm5kmmiK.js} +1 -1
- package/dist/webdist/assets/dialog-BS2ga4Li.js +1 -0
- package/dist/webdist/assets/{erDiagram-TEJ5UH35-BEebeQO0.js → erDiagram-TEJ5UH35-DtBl4psP.js} +1 -1
- package/dist/webdist/assets/{flowDiagram-I6XJVG4X--NtrYHee.js → flowDiagram-I6XJVG4X-inuE1WTM.js} +1 -1
- package/dist/webdist/assets/{folder-input-C5Td4Oz0.js → folder-input-DPrdjjXF.js} +1 -1
- package/dist/webdist/assets/{ganttDiagram-6RSMTGT7-DOx3A2YH.js → ganttDiagram-6RSMTGT7-C1x80EJK.js} +1 -1
- package/dist/webdist/assets/{gitGraphDiagram-PVQCEYII-BEY69HKU.js → gitGraphDiagram-PVQCEYII-BHFBSO22.js} +1 -1
- package/dist/webdist/assets/{index-Tpho8qZ0.js → index-BPqqiChM.js} +17 -17
- package/dist/webdist/assets/index-CuJf6kYG.css +1 -0
- package/dist/webdist/assets/{index-tVO2x-Rw.js → index-DT-1Skfu.js} +3 -3
- package/dist/webdist/assets/{infoDiagram-5YYISTIA-C4X5I5eI.js → infoDiagram-5YYISTIA-DErEOAbT.js} +1 -1
- package/dist/webdist/assets/{ishikawaDiagram-YF4QCWOH-BhUZzSmP.js → ishikawaDiagram-YF4QCWOH-CFYAcSCu.js} +1 -1
- package/dist/webdist/assets/{journeyDiagram-JHISSGLW-R-rmKLZ-.js → journeyDiagram-JHISSGLW-BRF8x-vW.js} +1 -1
- package/dist/webdist/assets/{kanban-definition-UN3LZRKU-DUcDGDiT.js → kanban-definition-UN3LZRKU-Bpxu1hZh.js} +1 -1
- package/dist/webdist/assets/{linear-Cbr5iYFb.js → linear-SOR4O2dK.js} +1 -1
- package/dist/webdist/assets/{mermaid.core-DJVxydy1.js → mermaid.core-Gi-pYgdj.js} +4 -4
- package/dist/webdist/assets/{mindmap-definition-RKZ34NQL-BSOgl-Cn.js → mindmap-definition-RKZ34NQL-DtatIfBM.js} +1 -1
- package/dist/webdist/assets/{pencil-Blh_Q7or.js → pencil-Bi7z3_2g.js} +1 -1
- package/dist/webdist/assets/{personas-Dm0JD8kn.js → personas-CsvqnRpC.js} +26 -24
- package/dist/webdist/assets/{pieDiagram-4H26LBE5-BwQ854zg.js → pieDiagram-4H26LBE5-DQYaIU8r.js} +1 -1
- package/dist/webdist/assets/{quadrantDiagram-W4KKPZXB-BOQGjhZD.js → quadrantDiagram-W4KKPZXB-CUu3EWq8.js} +1 -1
- package/dist/webdist/assets/{radix-DVGeLgPN.js → radix-krE_SGZJ.js} +1 -1
- package/dist/webdist/assets/refresh-cw-CkhIL2Hz.js +1 -0
- package/dist/webdist/assets/{requirementDiagram-4Y6WPE33-b3dNYy6K.js → requirementDiagram-4Y6WPE33-D54OOdDO.js} +1 -1
- package/dist/webdist/assets/{rotate-ccw-B7QiZxpr.js → rotate-ccw-BOQNX9cU.js} +1 -1
- package/dist/webdist/assets/{sankeyDiagram-5OEKKPKP-C26ntsbR.js → sankeyDiagram-5OEKKPKP-yykV1xV0.js} +1 -1
- package/dist/webdist/assets/{sequenceDiagram-3UESZ5HK-Bp8i1DIR.js → sequenceDiagram-3UESZ5HK-CD2n3CVh.js} +1 -1
- package/dist/webdist/assets/{star-BCxsXqcv.js → star-geKnFl6r.js} +1 -1
- package/dist/webdist/assets/{stateDiagram-AJRCARHV-CmZpIELB.js → stateDiagram-AJRCARHV-C7hTc-QA.js} +1 -1
- package/dist/webdist/assets/stateDiagram-v2-BHNVJYJU-BEt8Mhcv.js +1 -0
- package/dist/webdist/assets/switch-BIJmJ4CL.js +1 -0
- package/dist/webdist/assets/{timeline-definition-PNZ67QCA-slNuxmat.js → timeline-definition-PNZ67QCA-6kJpBXAe.js} +1 -1
- package/dist/webdist/assets/{trash-2-DGVXsIsP.js → trash-2-CT_92vaT.js} +1 -1
- package/dist/webdist/assets/useIsDesktop-Dxs_CPEE.js +1 -0
- package/dist/webdist/assets/{vennDiagram-CIIHVFJN-Lf4xPS3i.js → vennDiagram-CIIHVFJN-B7h2KOpV.js} +1 -1
- package/dist/webdist/assets/{wardley-L42UT6IY-DbEeYkcX.js → wardley-L42UT6IY-CvmW62QW.js} +1 -1
- package/dist/webdist/assets/{wardleyDiagram-YWT4CUSO-WNGbDcCj.js → wardleyDiagram-YWT4CUSO-BNvpRPx5.js} +1 -1
- package/dist/webdist/assets/wrench-DNrLSGCv.js +1 -0
- package/dist/webdist/assets/{xychartDiagram-2RQKCTM6-D2kBZ8cG.js → xychartDiagram-2RQKCTM6-BQI4t1tF.js} +1 -1
- package/dist/webdist/index.html +3 -3
- package/package.json +1 -1
- package/dist/webdist/assets/AgentEditPage-DLuckXeR.js +0 -1
- package/dist/webdist/assets/ChatScreen-BOZjtqGu.js +0 -65
- package/dist/webdist/assets/CustomizeScreen-DoVGTM4C.js +0 -4
- package/dist/webdist/assets/DeveloperScreen-BJ7m4ZxK.js +0 -1
- package/dist/webdist/assets/EnginesScreen-D3b9VNx0.js +0 -7
- package/dist/webdist/assets/ModelDetailDialog-M2tPWvP4.js +0 -1
- package/dist/webdist/assets/ModelDirs-CaIf1TUh.js +0 -1
- package/dist/webdist/assets/ModelsScreen--sPDS_sx.js +0 -2
- package/dist/webdist/assets/SettingsScreen-lBpo_MAD.js +0 -1
- package/dist/webdist/assets/SkillEditPage-B5S9Gtlh.js +0 -1
- package/dist/webdist/assets/WorkspaceScreen-Cpm-gLG1.js +0 -1
- package/dist/webdist/assets/channel-BB6NPD_B.js +0 -1
- package/dist/webdist/assets/chat-api-DrMO_g5m.js +0 -3
- package/dist/webdist/assets/check-BLFw3EpE.js +0 -1
- package/dist/webdist/assets/circle-check-ByN99MCf.js +0 -1
- package/dist/webdist/assets/classDiagram-4FO5ZUOK-DwCs4wFr.js +0 -1
- package/dist/webdist/assets/classDiagram-v2-Q7XG4LA2-DwCs4wFr.js +0 -1
- package/dist/webdist/assets/collapsible-B_M28W08.js +0 -1
- package/dist/webdist/assets/common-Cy1uxtS_.js +0 -1
- package/dist/webdist/assets/copy-button-DgYGL35x.js +0 -1
- package/dist/webdist/assets/dialog-d6eLRBbl.js +0 -1
- package/dist/webdist/assets/index-B8H9eSFq.css +0 -1
- package/dist/webdist/assets/plus-D4IwdkJ3.js +0 -1
- package/dist/webdist/assets/refresh-cw-BVSLL9xa.js +0 -1
- package/dist/webdist/assets/save-DI4M5kP-.js +0 -1
- package/dist/webdist/assets/skeleton-D6toQA7p.js +0 -1
- package/dist/webdist/assets/stateDiagram-v2-BHNVJYJU-CswfYrBO.js +0 -1
- package/dist/webdist/assets/vram-DVAmNgRC.js +0 -1
- package/dist/webdist/assets/wrench-DzoqtmhJ.js +0 -1
package/README.md
CHANGED
|
@@ -177,8 +177,8 @@ the detail:
|
|
|
177
177
|
- **Saved per-model profiles, per engine** — tune once per (model, engine) pair, so
|
|
178
178
|
switching engines (or between two installs of the same engine, e.g. a fork) never
|
|
179
179
|
overwrites another engine's tuning for the same model.
|
|
180
|
-
- **Configurable VRAM headroom** (Settings →
|
|
181
|
-
how much VRAM to keep free for other GPU workloads instead of a fixed margin.
|
|
180
|
+
- **Configurable VRAM headroom** (Settings → Models & loading → Advanced, 300 MB–2 GB, default
|
|
181
|
+
1 GB) — tell auto-tune how much VRAM to keep free for other GPU workloads instead of a fixed margin.
|
|
182
182
|
|
|
183
183
|
</details>
|
|
184
184
|
|
|
@@ -201,11 +201,19 @@ the detail:
|
|
|
201
201
|
**Designer** persona produces polished, self-contained, previewable designs by default; **Lite**
|
|
202
202
|
strips the hidden prompt to the bare minimum for the fastest responses. See below for editing
|
|
203
203
|
built-ins or creating your own.
|
|
204
|
-
- **Edit
|
|
205
|
-
with
|
|
206
|
-
|
|
204
|
+
- **Edit or regenerate any message without losing history** — both branch instead of
|
|
205
|
+
overwriting, with a **‹ 1/2 › switcher** to flip between versions (including nested branch
|
|
206
|
+
points); delete and copy still work as before. **Persistent, searchable conversations** with
|
|
207
|
+
rename, delete, and **auto-generated titles**, organized into **drag-resizable, collapsible
|
|
208
|
+
folders** you create/rename/move conversations into.
|
|
209
|
+
- **Switching chats never cancels a reply** — an in-flight generation keeps running in the
|
|
210
|
+
background and saves normally; the sidebar shows a live indicator on any chat still generating,
|
|
211
|
+
and a dot on one that finished while you were elsewhere.
|
|
212
|
+
- **Preserve thinking across turns** (on by default) — the model's past reasoning is resent on
|
|
213
|
+
later turns, not just its final answers, so follow-ups have real context to work with.
|
|
207
214
|
- **Per-chat system prompt** and **per-chat sampling** overrides — temperature, top-p/k, min-p,
|
|
208
|
-
repeat/presence/frequency penalties, and **stop strings
|
|
215
|
+
repeat/presence/frequency penalties, and **stop strings** — prefilled from the loaded model's
|
|
216
|
+
own recommended values, available even before you send the first message.
|
|
209
217
|
- **Image input** for vision models, **PDF and code/text attachments** (real extracted text,
|
|
210
218
|
not raw bytes), and **TurboLLM Expert** — a built-in assistant that knows the app and your
|
|
211
219
|
hardware for onboarding and troubleshooting without leaving the UI.
|
|
@@ -216,7 +224,7 @@ the detail:
|
|
|
216
224
|
in every chat with no restart. A **Research** persona forces multi-step web search and cites sources inline.
|
|
217
225
|
- **Tool-call approval gate** — every tool call asks for your approval by default before it runs,
|
|
218
226
|
with **Deny**, **Allow**, **Allow for this chat**, or **Always Allow** on an inline bar above the
|
|
219
|
-
composer. Set per-tool defaults globally from
|
|
227
|
+
composer. Set per-tool defaults globally from Settings → Tools & safety.
|
|
220
228
|
|
|
221
229
|
</details>
|
|
222
230
|
|
|
@@ -255,7 +263,7 @@ curl http://127.0.0.1:6996/v1/chat/completions \
|
|
|
255
263
|
- **Anthropic-compatible** `/v1/messages` — including **tool use and streaming** — which powers
|
|
256
264
|
Claude Code below. No other local host offers this.
|
|
257
265
|
- **Structured output** — constrain any response to a **GBNF grammar** (or JSON shape).
|
|
258
|
-
- **API-key auth** you can require when sharing over a LAN (Settings → Network).
|
|
266
|
+
- **API-key auth** you can require when sharing over a LAN (Settings → Network & sharing).
|
|
259
267
|
|
|
260
268
|
**The gateway loads models for you.** Most local hosts make you load a model first, then call it.
|
|
261
269
|
TurboLLM's gateway reads the `model` field of any incoming request, **fuzzy-matches it to your
|
|
@@ -267,7 +275,7 @@ coding model, a vision model, and an embedder just names each one and it works
|
|
|
267
275
|
`opencode`, `kilo`, `openclaw`, and `hermes` — each gets pointed at TurboLLM the way that tool
|
|
268
276
|
expects (config file merge, or its own CLI command) instead of a manual copy-paste setup. Inside
|
|
269
277
|
Claude Code, `/model` lists your local models directly (with **Auto Model Swap** on in Settings →
|
|
270
|
-
|
|
278
|
+
Models & loading) so you can switch mid-session instead of only at launch.
|
|
271
279
|
|
|
272
280
|
</details>
|
|
273
281
|
|
|
@@ -285,7 +293,7 @@ fight for memory (and one usually OOMs). TurboLLM can hand the GPU over automati
|
|
|
285
293
|
It's **push-based, not polling** — ComfyUI signals TurboLLM the moment a job starts/ends, so the
|
|
286
294
|
handoff is immediate and deterministic (the model is gone *before* ComfyUI executes).
|
|
287
295
|
|
|
288
|
-
**One-time setup** (Settings → ComfyUI): turn on **Pause for ComfyUI**, enter your ComfyUI folder
|
|
296
|
+
**One-time setup** (Settings → Network & sharing → ComfyUI): turn on **Pause for ComfyUI**, enter your ComfyUI folder
|
|
289
297
|
(the one containing `custom_nodes`), click **Install gate** (it writes a small custom node wired to
|
|
290
298
|
this daemon), then **restart ComfyUI** once. The panel shows a live indicator (rendering / idle /
|
|
291
299
|
connected); **Remove** undoes it.
|
|
@@ -333,7 +341,7 @@ daemon any time with **Ctrl+C**.
|
|
|
333
341
|
No other local-LLM app lets you run **whatever inference engine you want**. TurboLLM treats
|
|
334
342
|
the engine as a swappable component.
|
|
335
343
|
|
|
336
|
-
**Add a custom engine** (Engines screen → **Add engine**):
|
|
344
|
+
**Add a custom engine** (Engines screen → **Add your own engine**):
|
|
337
345
|
|
|
338
346
|
1. Compile or download any `llama-server`-compatible binary — stock
|
|
339
347
|
[llama.cpp](https://github.com/ggml-org/llama.cpp), a community fork, or your own build.
|
|
@@ -398,13 +406,14 @@ any OpenAI- or Anthropic-compatible tool (Open WebUI, Kilo Code, opencode, …).
|
|
|
398
406
|
## Use it from any device on your network
|
|
399
407
|
|
|
400
408
|
The UI runs in the browser, so any phone, tablet, or laptop on your LAN can use the model on
|
|
401
|
-
your GPU box
|
|
409
|
+
your GPU box — every screen is responsive down to phone widths, with the desktop layout
|
|
410
|
+
untouched:
|
|
402
411
|
|
|
403
412
|
```bash
|
|
404
413
|
turbollm --addr 0.0.0.0:6996 # bind all interfaces, then open http://<your-ip>:6996
|
|
405
414
|
```
|
|
406
415
|
|
|
407
|
-
Turn on **Require API key** in Settings → Network when you expose it.
|
|
416
|
+
Turn on **Require API key** in Settings → Network & sharing when you expose it.
|
|
408
417
|
|
|
409
418
|
---
|
|
410
419
|
|