turbollm 1.6.5 → 1.7.1

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.
Files changed (95) hide show
  1. package/README.md +31 -9
  2. package/dist/cli.js +967 -222
  3. package/dist/webdist/assets/{AgentsScreen-D0J8ZEtf.js → AgentsScreen-BToQ_CZg.js} +1 -1
  4. package/dist/webdist/assets/ChatScreen-B4T7fIcx.js +65 -0
  5. package/dist/webdist/assets/{CustomizeScreen-z5568762.js → CustomizeScreen-IL-QlVq2.js} +1 -1
  6. package/dist/webdist/assets/DeveloperScreen-DN-FWjXV.js +1 -0
  7. package/dist/webdist/assets/EnginesScreen-GZYaJJNx.js +7 -0
  8. package/dist/webdist/assets/MessageBubble-DG7ZWPCw.js +21 -0
  9. package/dist/webdist/assets/ModelDetailDialog-DhCCmMnp.js +1 -0
  10. package/dist/webdist/assets/{ModelDirs-C-riHLWK.js → ModelDirs-D0d7xetP.js} +1 -1
  11. package/dist/webdist/assets/{ModelsScreen-DnASH2bF.js → ModelsScreen-Bl0OP-BY.js} +2 -2
  12. package/dist/webdist/assets/SettingsScreen-DXy_TCXo.js +1 -0
  13. package/dist/webdist/assets/{arc-OPogq9vx.js → arc-DVrcAJc9.js} +1 -1
  14. package/dist/webdist/assets/{architectureDiagram-3BPJPVTR-DI3zlQZC.js → architectureDiagram-3BPJPVTR-BaL05OA8.js} +1 -1
  15. package/dist/webdist/assets/{arrow-left-DWtpbvUs.js → arrow-left-nmoUPZoB.js} +1 -1
  16. package/dist/webdist/assets/{blockDiagram-GPEHLZMM-bbqbctKR.js → blockDiagram-GPEHLZMM-D8aCVMG0.js} +1 -1
  17. package/dist/webdist/assets/{c4Diagram-AAUBKEIU-CGj5BFj-.js → c4Diagram-AAUBKEIU-Bpj96pxf.js} +1 -1
  18. package/dist/webdist/assets/channel-M9YFYffr.js +1 -0
  19. package/dist/webdist/assets/check-CD6cKVwJ.js +1 -0
  20. package/dist/webdist/assets/chevron-down-DgTSOyZG.js +1 -0
  21. package/dist/webdist/assets/{chevron-right-CIKvJUaG.js → chevron-right-BshRZEvM.js} +1 -1
  22. package/dist/webdist/assets/{chunk-2J33WTMH-CZKSYaHn.js → chunk-2J33WTMH-DA6mFoN-.js} +1 -1
  23. package/dist/webdist/assets/{chunk-4BX2VUAB-D3SQCGwz.js → chunk-4BX2VUAB-B_fmKUNu.js} +1 -1
  24. package/dist/webdist/assets/{chunk-55IACEB6-DDmZTA0L.js → chunk-55IACEB6-3cWMWgYr.js} +1 -1
  25. package/dist/webdist/assets/{chunk-727SXJPM-DRutYNQM.js → chunk-727SXJPM-Cwb5Sv7F.js} +1 -1
  26. package/dist/webdist/assets/{chunk-AQP2D5EJ-B_u0ow9I.js → chunk-AQP2D5EJ-7QIg1x7-.js} +1 -1
  27. package/dist/webdist/assets/{chunk-FMBD7UC4-Cu73-Koh.js → chunk-FMBD7UC4-D_Qfl5Jc.js} +1 -1
  28. package/dist/webdist/assets/{chunk-ND2GUHAM-Z71l0U4D.js → chunk-ND2GUHAM-pgqeq7NP.js} +1 -1
  29. package/dist/webdist/assets/{chunk-QZHKN3VN-D2PeraEx.js → chunk-QZHKN3VN-EUqDaxxx.js} +1 -1
  30. package/dist/webdist/assets/{circle-check-DXOwCXEz.js → circle-check-Dey3SdiG.js} +1 -1
  31. package/dist/webdist/assets/{circle-x-caNFmCHm.js → circle-x-M54_eiYo.js} +1 -1
  32. package/dist/webdist/assets/classDiagram-4FO5ZUOK-BtQ5UIn2.js +1 -0
  33. package/dist/webdist/assets/classDiagram-v2-Q7XG4LA2-BtQ5UIn2.js +1 -0
  34. package/dist/webdist/assets/collapsible-CwqYFc9v.js +1 -0
  35. package/dist/webdist/assets/{common-CQQGhjlM.js → common-Dn21s6g5.js} +1 -1
  36. package/dist/webdist/assets/{copy-button-Dt4Afcgb.js → copy-button-D6JkFOO9.js} +1 -1
  37. package/dist/webdist/assets/{cose-bilkent-S5V4N54A-D3rxBv0J.js → cose-bilkent-S5V4N54A-BzxdTTj-.js} +1 -1
  38. package/dist/webdist/assets/{dagre-BM42HDAG--G2XvGhI.js → dagre-BM42HDAG-YQn0mFsV.js} +1 -1
  39. package/dist/webdist/assets/{diagram-2AECGRRQ-Te1rwFql.js → diagram-2AECGRRQ-DtSRGaVH.js} +1 -1
  40. package/dist/webdist/assets/{diagram-5GNKFQAL-B5vALx3-.js → diagram-5GNKFQAL-Dko3hF44.js} +1 -1
  41. package/dist/webdist/assets/{diagram-KO2AKTUF-CBxjZi0b.js → diagram-KO2AKTUF-CQAm-tYF.js} +1 -1
  42. package/dist/webdist/assets/{diagram-LMA3HP47-BGiirNkw.js → diagram-LMA3HP47-gz5BqFhM.js} +1 -1
  43. package/dist/webdist/assets/{diagram-OG6HWLK6-BVgMIJkt.js → diagram-OG6HWLK6-BqsSoNIn.js} +1 -1
  44. package/dist/webdist/assets/dialog-B_Yd5di3.js +1 -0
  45. package/dist/webdist/assets/{erDiagram-TEJ5UH35-DowgN2O9.js → erDiagram-TEJ5UH35-D8rPsHw-.js} +1 -1
  46. package/dist/webdist/assets/{flowDiagram-I6XJVG4X-BD0xs8q_.js → flowDiagram-I6XJVG4X-DhGWyp50.js} +1 -1
  47. package/dist/webdist/assets/{ganttDiagram-6RSMTGT7-BHHhhU_7.js → ganttDiagram-6RSMTGT7-WEinw7mP.js} +1 -1
  48. package/dist/webdist/assets/{gitGraphDiagram-PVQCEYII-Brchy1Vz.js → gitGraphDiagram-PVQCEYII-BJ-BzBFO.js} +1 -1
  49. package/dist/webdist/assets/index-B_WtFoLC.css +1 -0
  50. package/dist/webdist/assets/{index-oSSYX1Lk.js → index-C-xjjrht.js} +2 -2
  51. package/dist/webdist/assets/index-DHmOrvk5.js +29 -0
  52. package/dist/webdist/assets/{infoDiagram-5YYISTIA-D4HdfOcs.js → infoDiagram-5YYISTIA-BA9oHMe2.js} +1 -1
  53. package/dist/webdist/assets/{ishikawaDiagram-YF4QCWOH-wmMjgjbp.js → ishikawaDiagram-YF4QCWOH-BJ5McdEJ.js} +1 -1
  54. package/dist/webdist/assets/{journeyDiagram-JHISSGLW-CaF09KKI.js → journeyDiagram-JHISSGLW-Bu6WJyQy.js} +1 -1
  55. package/dist/webdist/assets/{kanban-definition-UN3LZRKU-BuBI9QG2.js → kanban-definition-UN3LZRKU-C_Y8cJ9D.js} +1 -1
  56. package/dist/webdist/assets/{linear-DHVGKuTX.js → linear-BssoHTW-.js} +1 -1
  57. package/dist/webdist/assets/{mermaid.core-CrU-xSQY.js → mermaid.core-C331Qhyf.js} +4 -4
  58. package/dist/webdist/assets/{mindmap-definition-RKZ34NQL-cBLMFEJ9.js → mindmap-definition-RKZ34NQL-B6NCYWu3.js} +1 -1
  59. package/dist/webdist/assets/{pencil-BBioAa4x.js → pencil-bwNY7waZ.js} +1 -1
  60. package/dist/webdist/assets/personas-C_q63e_2.js +75 -0
  61. package/dist/webdist/assets/{pieDiagram-4H26LBE5-BJnfOXlL.js → pieDiagram-4H26LBE5-CV23vNlv.js} +1 -1
  62. package/dist/webdist/assets/{plus-C8MMVqVA.js → plus-12BmUfjg.js} +1 -1
  63. package/dist/webdist/assets/{quadrantDiagram-W4KKPZXB-Cm-qlQtE.js → quadrantDiagram-W4KKPZXB-DxWTWFL7.js} +1 -1
  64. package/dist/webdist/assets/{refresh-cw-DTqN58WZ.js → refresh-cw-Cl7RshCH.js} +1 -1
  65. package/dist/webdist/assets/{requirementDiagram-4Y6WPE33-DHY3RUt1.js → requirementDiagram-4Y6WPE33-DRRulwpq.js} +1 -1
  66. package/dist/webdist/assets/{sankeyDiagram-5OEKKPKP-DQkDAi3z.js → sankeyDiagram-5OEKKPKP-BTBSg_uE.js} +1 -1
  67. package/dist/webdist/assets/{save-PN9--sf1.js → save-YXge1rTt.js} +1 -1
  68. package/dist/webdist/assets/{sequenceDiagram-3UESZ5HK-OJf-ZzIm.js → sequenceDiagram-3UESZ5HK-HiTl9dyH.js} +1 -1
  69. package/dist/webdist/assets/{skeleton-Dpg8YusE.js → skeleton-BMhnZFjx.js} +1 -1
  70. package/dist/webdist/assets/{stateDiagram-AJRCARHV-QupYS2FV.js → stateDiagram-AJRCARHV-SGw6a8ke.js} +1 -1
  71. package/dist/webdist/assets/stateDiagram-v2-BHNVJYJU-C7Pv9LnA.js +1 -0
  72. package/dist/webdist/assets/{timeline-definition-PNZ67QCA-B7kdKKeO.js → timeline-definition-PNZ67QCA-B_X3zBz0.js} +1 -1
  73. package/dist/webdist/assets/{trash-2-C5mszq8p.js → trash-2-BNQkpp4n.js} +1 -1
  74. package/dist/webdist/assets/{vennDiagram-CIIHVFJN-DCckmGsZ.js → vennDiagram-CIIHVFJN-C8ibsbKD.js} +1 -1
  75. package/dist/webdist/assets/vram-D4ttIJVy.js +1 -0
  76. package/dist/webdist/assets/{wardley-L42UT6IY-C66hVI6t.js → wardley-L42UT6IY-ClFBGt2Y.js} +1 -1
  77. package/dist/webdist/assets/{wardleyDiagram-YWT4CUSO-0WD2JYDy.js → wardleyDiagram-YWT4CUSO-1iaMKpVQ.js} +1 -1
  78. package/dist/webdist/assets/{wrench-BotIMKYs.js → wrench-Chhk_zTw.js} +1 -1
  79. package/dist/webdist/assets/{xychartDiagram-2RQKCTM6-Dc0w49oN.js → xychartDiagram-2RQKCTM6-FIIVikoF.js} +1 -1
  80. package/dist/webdist/index.html +2 -2
  81. package/package.json +1 -1
  82. package/dist/webdist/assets/ChatScreen-7bIHB35Z.js +0 -85
  83. package/dist/webdist/assets/DeveloperScreen-C5opqGrE.js +0 -1
  84. package/dist/webdist/assets/EnginesScreen-NqAMc4rS.js +0 -7
  85. package/dist/webdist/assets/ModelDetailDialog-CtjNu2Qc.js +0 -29
  86. package/dist/webdist/assets/SettingsScreen-v-LAgJFH.js +0 -1
  87. package/dist/webdist/assets/channel-aq4Rip4D.js +0 -1
  88. package/dist/webdist/assets/check-CMGnr_Ph.js +0 -1
  89. package/dist/webdist/assets/classDiagram-4FO5ZUOK-C5KHEB9t.js +0 -1
  90. package/dist/webdist/assets/classDiagram-v2-Q7XG4LA2-C5KHEB9t.js +0 -1
  91. package/dist/webdist/assets/dialog-coezioYj.js +0 -1
  92. package/dist/webdist/assets/dropdown-menu-Ce842M-W.js +0 -1
  93. package/dist/webdist/assets/index-CVyS_zSS.css +0 -1
  94. package/dist/webdist/assets/personas-DaUrwq7m.js +0 -290
  95. package/dist/webdist/assets/stateDiagram-v2-BHNVJYJU-DPP0kwbC.js +0 -1
package/README.md CHANGED
@@ -79,7 +79,7 @@ TurboLLM does the opposite:
79
79
  a **VRAM-fit verdict before you load** — no more flag guessing.
80
80
  - **📊 Real tokens/sec, never faked.** Speed in the model list is *measured on your machine*
81
81
  from actual generation — live while you chat, and remembered per model.
82
- - **🪶 Lightweight.** A ~0.3 MB npm package on Node — **no Electron, no bundled Chromium, no
82
+ - **🪶 Lightweight.** A ~2 MB npm package on Node — **no Electron, no bundled Chromium, no
83
83
  Python**. It downloads only the engine your GPU actually needs (Vulkan ≈ 38 MB).
84
84
  - **🔌 Drop-in APIs.** OpenAI **and** Anthropic-compatible — so Claude Code and every existing
85
85
  tool work unchanged.
@@ -177,6 +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 → Engine, 300 MB–2 GB, default 1 GB) — tell auto-tune
181
+ how much VRAM to keep free for other GPU workloads instead of a fixed margin.
180
182
 
181
183
  </details>
182
184
 
@@ -210,6 +212,9 @@ the detail:
210
212
  Atlassian, Neon, Supabase, Cloudflare, Zapier, Apify, Mixpanel) and open-source local MCPs
211
213
  (filesystem, git, postgres, playwright, …), plus your own custom servers. Connected tools appear
212
214
  in every chat with no restart. A **Research** persona forces multi-step web search and cites sources inline.
215
+ - **Tool-call approval gate** — every tool call asks for your approval by default before it runs,
216
+ with **Deny**, **Allow**, **Allow for this chat**, or **Always Allow** on an inline bar above the
217
+ composer. Set per-tool defaults globally from Developer → Tool permissions.
213
218
 
214
219
  </details>
215
220
 
@@ -256,6 +261,12 @@ library, and loads it on the fly** if it isn't already running — then keeps up
256
261
  hot** in an LRU pool so the next switch is instant. An agent (or Claude Code) that hops between a
257
262
  coding model, a vision model, and an embedder just names each one and it works — no pre-wiring.
258
263
 
264
+ **One command wires up more than just Claude Code.** `turbollm launch <cli>` also supports
265
+ `opencode`, `kilo`, `openclaw`, and `hermes` — each gets pointed at TurboLLM the way that tool
266
+ expects (config file merge, or its own CLI command) instead of a manual copy-paste setup. Inside
267
+ Claude Code, `/model` lists your local models directly (with **Auto Model Swap** on in Settings →
268
+ Gateway) so you can switch mid-session instead of only at launch.
269
+
259
270
  </details>
260
271
 
261
272
  <details>
@@ -284,7 +295,7 @@ connected); **Remove** undoes it.
284
295
 
285
296
  <br/>
286
297
 
287
- - A **~0.3 MB npm package** on Node — no Electron, no bundled Chromium, no Python.
298
+ - A **~2 MB npm package** on Node — no Electron, no bundled Chromium, no Python.
288
299
  - **Offline-first** — no account, no backend, no internet, no telemetry.
289
300
  - **Windows · macOS · Linux**, with a CPU fallback when there's no GPU.
290
301
 
@@ -365,12 +376,20 @@ turbollm launch claude # auto-loads a model if none is running, th
365
376
  turbollm launch claude --model qwen3-8b # load a specific model first, then launch
366
377
  ```
367
378
 
368
- It sets Claude Code's `ANTHROPIC_BASE_URL` / `ANTHROPIC_MODEL` at TurboLLM and execs `claude`;
369
- extra args are forwarded. If no model is loaded it auto-loads your last-used one (or the first
370
- in your library); `--model` picks a specific one by key or name. If `claude` isn't installed,
371
- it tells you how. The in-app
372
- **Developer** screen also shows copy-paste env snippets for any OpenAI- or Anthropic-compatible
373
- tool (Open WebUI, Kilo Code, opencode, …).
379
+ It sets Claude Code's `ANTHROPIC_BASE_URL` and pins `ANTHROPIC_MODEL` to whatever model is
380
+ loaded (so the status line, `/status`, and context-window sizing all reflect the real model),
381
+ then execs `claude`; extra args are forwarded. If no model is loaded it auto-loads your
382
+ last-used one (or the first in your library); `--model` picks a specific one by key or name.
383
+ If `claude` isn't installed, it tells you how.
384
+
385
+ Other coding CLIs work too — `turbollm launch opencode`, `turbollm launch kilo`, and
386
+ `turbollm launch openclaw` write a `turbollm` provider into that tool's own config file
387
+ (preserving anything you already configured) and then launch it. If an existing config can't
388
+ be parsed, TurboLLM refuses to overwrite it and prints how to add the provider by hand.
389
+ `turbollm launch hermes` does the equivalent for [Hermes Agent](https://github.com/NousResearch/hermes-agent)
390
+ via its own `hermes config set` command (its config is YAML, so we drive its CLI instead of
391
+ hand-editing that file). The in-app **Developer** screen also shows copy-paste snippets for
392
+ any OpenAI- or Anthropic-compatible tool (Open WebUI, Kilo Code, opencode, …).
374
393
 
375
394
  ---
376
395
 
@@ -397,6 +416,7 @@ turbollm --addr 0.0.0.0:6996 # bind all interfaces (LAN sharing)
397
416
  turbollm --stop # stop a running daemon (any terminal)
398
417
  turbollm launch claude # start Claude Code (auto-loads a model if none is running)
399
418
  turbollm launch claude --model qwen3-8b # load a specific model, then launch
419
+ turbollm launch opencode # wire opencode (or kilo / openclaw) to TurboLLM, then launch
400
420
  ```
401
421
 
402
422
  | Flag | Description |
@@ -410,7 +430,9 @@ turbollm launch claude --model qwen3-8b # load a specific model, then launch
410
430
 
411
431
  `turbollm launch claude` also accepts `--model <key|name>` to load a specific model before
412
432
  launching; without it, an already-loaded model is used, or the last-used / first model is
413
- auto-loaded.
433
+ auto-loaded. The same command works with `opencode`, `kilo`, and `openclaw` — each gets a
434
+ `turbollm` provider merged into its own config file before it starts — and with `hermes`,
435
+ which gets configured via its own `hermes config set` command instead.
414
436
 
415
437
  ---
416
438