Turbo Link

Point one TurboLLM at another and the second machine's models show up in the first one's model picker, tagged with the machine they live on. You pick one, chat normally, and the generation happens over there — on its GPU, its VRAM, its engine.

Experimental, and off by default

Turbo Link shipped in v1.11.6 behind Settings → Experimental → Turbo Link, and it is off until you turn it on — on both machines. While it's off the feature is completely inert: the link endpoint refuses with a plain "switched off", no remote models reach your picker, and the settings panel doesn't render. Turning it off later leaves your existing links intact but dormant; turning it back on resumes them with no re-linking.

What it's for

The common shape is a workstation with a real GPU and a laptop without one. Run TurboLLM on both, link the laptop to the workstation, and the laptop gets the workstation's 70B as an ordinary entry in its own model list — no SSH, no port-forwarding, no second UI. The same works for a home server, or for a rented cloud box that only exists for an afternoon (see Running the host in the cloud below).

Both ends must be running TurboLLM. That's the only requirement — Turbo Link connects TurboLLM to TurboLLM, not TurboLLM to an arbitrary inference server.

Vocabulary

A link is one-way. If you want each machine to be able to use the other's models, link it in both directions — that's two links, each with its own grant.

Linking two machines

On the host — Settings → Turbo Link:

  1. Give the machine a name (the field defaults to its hostname). This name is what prefixes its models on the peer, so make it something you'll recognise: workstation, server, kaggle-t4.
  2. Choose what the link is allowed to do:
    • Inference only — use models to generate, nothing else.
    • Server box — use, wake, load, and unload models.
    • Full control — everything above, plus downloading models onto this machine and changing its settings.
    • Customize — the raw capability checkboxes, if none of the three fit.
  3. Optionally restrict it to specific models. Blank means every local model.
  4. Mint it. You get a link string starting tllink_, shown once. Copy it then — the host only stores a hash, so it cannot show it to you again.

On the peer — Settings → Turbo Link → paste the link string. That's it. The peer handshakes, learns the host's name, models and granted capabilities, and the host's models start appearing in your lists.

The Base URL is editable on purpose

A link stores where the host lives. If that address changes — a new tunnel URL, a machine that moved subnets — edit the Base URL on the peer instead of minting a new link. This is routine for cloud hosts, whose address changes every session.

What actually federates

Remote models carry a machine-prefixed id — workstation/Qwen3-35B. Your local model ids are untouched, so nothing you already scripted changes.

Live stats are first-class, not approximated: tokens/sec, time-to-first-token, prefill percentage and the context meter all render on the peer, reported by the host that's doing the work. For the same reason, a federated generation is attributed to the host in stats — the machine that actually burned the GPU time.

Security model

Possession of the link string is the entire gate. There's no IP allowlist and no pairing approval — over a tunnel every request arrives from localhost anyway, so an address list would prove nothing. Treat a tllink_ string like a password.

The link endpoint always demands a valid link token. It exempts nothing — not loopback, not "require API key" being switched off, not a full-access key from elsewhere in the app. It fails closed and is independent of your other network settings, so opening LAN access for convenience can't accidentally hand a peer the run of your machine.

Revoke from the host, in the same panel, at any time. The peer notices on its next poll. Capabilities are re-reported on every poll too, so if you narrow a grant, the peer's controls tighten within seconds rather than lying until it reconnects.

One thing worth knowing: the peer stores the link string on disk in order to reconnect. Keep the grant as small as the job needs — Inference only is the right default, and Full control genuinely means the other machine can download multi-gigabyte files onto this one and change its settings.

Running the host in the cloud (Kaggle + Turbo Link)

A host doesn't have to be a machine you own. Kaggle gives every free account two Tesla T4s — about 30 GB of pooled VRAM — and TurboLLM runs there from a one-click notebook with a public URL. Make that box the host and your laptop the peer, and you're running a model your own hardware can't hold, from your normal local UI, for free.

The shape of it:

  1. Bring up TurboLLM on Kaggle and note its public URL and token — How to use TurboLLM with Kaggle walks through the whole thing.
  2. On the Kaggle box, turn on Settings → Experimental → Turbo Link, name the machine, and mint an Inference only link.
  3. On your laptop, turn the same flag on and paste the link string.
  4. The Kaggle T4s' models now appear in your local picker, prefixed with the name you gave.
Expect the address to change

A Kaggle session is temporary and hands you a fresh tunnel URL every time. That's what the editable Base URL is for — point the existing link at the new address rather than minting a new one each session.

Getting started

$ npx turbollm

Run that on both machines, then Settings → Experimental → Turbo Link on each. If you're new to TurboLLM, start with Install & first run and Load your first model instead.