Sign in and set up
Installing normally does this for you. The install command starts Waired
and then goes straight into sign-in, so a first-time setup is covered by the
Quickstart and you never type waired init yourself.
This page is for the times you do:
- setup was interrupted and you are resuming it
- you installed with
--no-init - you are setting up a server with no desktop
- you want to know what each choice actually does
Start it
Section titled “Start it”Open Terminal (Administrator) — right-click the Start button — and run:
waired initsudo waired initsudo waired initIt prints a sign-in link and waits:
You should see
Sign in using this link: https://app.waired.ai/login/…
Control Plane: https://app.waired.ai
>> Press Enter to open your browser (or open the link above yourself)...Press Enter and choose your Google account. You can also copy the link into any browser, on this computer or another one — the terminal does not wait on that keystroke, and picks up as soon as you are signed in.
Finish in the browser
Section titled “Finish in the browser”After sign-in your browser lands on the setup page for this computer. Pick a model, press Continue, and it reports what the computer is doing, live:
public/img/setup-wizard-progress.png| Step | What is happening | How long |
|---|---|---|
| Download the inference engine | Fetching the program that loads and runs models — around 1.5 GB for the standard option, around 4 GB for the high-performance one. The page shows how far it has got and how fast it is going, the same figures the terminal shows. | A few minutes |
| Install the inference engine | Unpacking and setting it up. This is the part that needs administrator rights — which is why the terminal window has to stay open. | A minute or two; up to 15 for the high-performance option |
| Connect your coding tools | Pointing the coding tools you ticked at Waired. Also administrator work, so it is the terminal that does it — and it is done before the long download rather than after, so nothing is waiting on you later. | Seconds |
| Download the model | The model weights, several gigabytes. The page shows how far it has got and how fast it is going. | 5–30 minutes |
| Benchmark the inference speed | A short measurement, so Waired knows whether this machine keeps up. | Up to 5 minutes |
The download step only appears when there is something to download: a computer that already has the inference engine goes straight to the next step. The coding-tools step only appears when the page asked you about them.
The benchmark is a switch on the model step, next to the coding tools, and it is on to begin with. Leave it on and it runs by itself once the model has finished downloading; turn it off and the setup finishes without one.
When it finishes, the reading is on the page — and if it came in under the rate coding tools need on this machine, the page says so and offers Choose a different model ahead of finishing. Nothing is decided for you: a slower model still works, and you can leave it as it is.
The machine’s own figures — its graphics card, its memory — stay under the card for the whole of setup, so the model list can be read against them.
You should see
Every step ticked, and “Everything’s ready — this computer can now run AI on its own.” Press Finish setup for the list of your computers, or Go to device for this one’s page.
While the browser is driving, the terminal asks you nothing. It reminds you to leave it open, and — when the setup page has asked which coding tools to connect — it is this window that writes them, because that needs administrator access the page does not have:
Keep this terminal window open until setup finishes — it does the parts thebrowser can't.🔌 Setting up your coding tools (claude-code, openclaw, opencode)…Ticking Claude Code there does what the page says it does: it points
Claude Code at Waired for everyone who uses this computer. The other two
tools only drop files in your own home folder. This is the same routing the
terminal asks about after a non-browser install, decided in the browser
instead — and --skip-claude-proxy at install time still overrides it.
On an older setup page, which does not ask, it tells you how to do it yourself
instead: “You can set up your coding tools later from this terminal with
waired link all.”
That happens before the model download, which is deliberate: it is the last thing on this computer that needs administrator rights, and putting it behind a download that can take an hour meant coming back to a setup that had been waiting for you. So the terminal is finished with its share by the time the download starts, and says so — “Setup is continuing in your browser — nothing more is needed from this terminal”. You can close it from then on. The model download and the speed check do not need it, and the coding tools stay connected whether the window is open or not.
If you leave it open, it keeps showing the download’s progress. That is the only reason to.
Set up in the terminal instead
Section titled “Set up in the terminal instead”At “Setup is continuing in your browser…”, press Enter. Nothing moves yet — the terminal first says what taking over means and asks you to confirm:
You are asked
Taking over means this terminal drives setup and the browser page stops. Any model download keeps running either way. Take over setup in this terminal? [y/N] (default: No)Answer y to take over. Pressing Enter again answers No, so a keystroke you did not mean cannot move setup out of the browser; the offer stays open if you change your mind.
The offer closes once you press Continue in the browser. From that point this window is running the installation, and the terminal says so:
You should see
Setup has started in your browser — this window now runs the installation.Enter still answers, but it no longer switches:
Setup is running in your browser and this window is doing the installation.To abandon it, press Ctrl-C and run the setup command again.Abandoning costs the work in progress, which is why it takes a deliberate Ctrl-C rather than a keystroke. If the browser tab is what went wrong, you do not need this: open the computer’s page again and choose Resume setup.
What the terminal asks after that depends on how it is running.
After a normal install
Section titled “After a normal install”The terminal asks about your coding tools, and nothing else — the model was chosen in the browser, or by the installer. Both questions come after the model has finished downloading, so nothing interrupts the transfer:
You are asked
Whether to set up coding-agent integration, then whether to route Claude Code through Waired. Answer Y to both.
Routing points Claude Code at Waired. Which side answers a turn is then
the model you pick in /model: a session starts on Claude Code’s own
default, which is an Anthropic model, until you pick a Waired entry.
Answering no to the routing question leaves the connection installed but
inactive; turn it on later with sudo waired claude enable.
On a server, or with no browser
Section titled “On a server, or with no browser”With --no-browser, --non-interactive, or on a machine where Waired cannot
reach a running service to hand over to, waired init does the whole job
itself and asks the full set of questions:
-
Google sign-in. Only the link and a pairing code are printed — open them on another device. The terminal says “Nothing to press here”: no key is needed at this step, and it notices the sign-in on its own.
-
Run models on this computer?
[Y/n]— Y on a desktop or GPU box. N on a machine that should only use another computer’s AI; it still joins your network as a gateway/relay. The default follows this machine’s memory: with a model to recommend, Waired defaults to yes; a machine below the recommended spec is warned first and defaults to no. Which model is not decided here — that is step 5, after the inference engine is installed and this computer has been measured. Change your mind later withwaired inference on. -
Route Claude Code through Waired?
[Y/n] -
Keep local inference on anyway?
[y/N]— asked only if the quick one-time speed measurement, taken right after the inference engine is installed, finds this computer slow for everyday coding work. No (the default) turns local inference off; the machine still joins as a gateway/relay, andwaired inference onbrings it back. -
Choose the model for this computer — a numbered list of the bundled models, with the one recommended for this hardware preselected; press Enter to take it. A model that fits but cannot keep a whole coding session on the GPU says how much of its KV cache is read from system RAM instead — the same figure
waired models ls --detailprints. A model that does not fit this computer’s memory at all is listed with the reason, and picking it anyway is confirmed explicitly (Download it anyway?[y/N]— No returns to the list). Choosing 0) Don’t download a model now finishes setup with the inference engine installed and no model, which is a normal state, not an error: pick one later from the browser dashboard or withwaired models pull <model>. If nobody answers — the terminal closed, nobody at the keyboard — nothing is downloaded: the question is recorded as open and Waired waits until someone chooses. Asked only on the first install — a machine that already has a model keeps it. -
Benchmark the inference speed — a short measurement, taken once the model is ready. If this computer cannot keep up, Waired offers a lighter model, names both and says which direction it is offering, so you can weigh the trade-off. If nobody answers — the terminal closed, nobody at the keyboard — the model this machine is running is left alone and nothing is deleted.
Servers and containers: auth keys
Section titled “Servers and containers: auth keys”Sign-in normally needs a person and a browser. On a fleet of servers, or in a container image that has to come up on its own, there is neither. An auth key stands in: you create it once in the web console while signed in, and each machine presents it instead of signing in.
Create one under Settings → Auth keys, then on the machine:
sudo waired init --auth-key waired_ak_...Choose one device for a key you use once, or many devices for a key a fleet or a container image shares. Keys expire after at most 90 days, and you can revoke one at any time — revoking stops new machines from joining and leaves the ones already added signed in.
Waired must already be installed and its background service running: an auth
key is a credential, not a way to skip the service. If the service is not
answering, waired init says so and stops rather than half-joining the
machine.
Setting up this way, the machine joins your network and appears in the console
straight away, but the browser setup wizard does not open for it — there is no
browser. waired init knows that and carries on with setup in the terminal:
it does not mention a browser, and it does not wait for one. Everything else,
including choosing its model, is available from the console.
The model then downloads in the foreground with a progress bar:
Starting the inference engine…Preparing to download qwen3.8-27b…Downloading qwen3.8-27b: 41% 7.3 GB / 17.7 GB (44 MB/s)The model named on those lines is the one you chose. When setup is running in the browser, that is the model you picked there — not whichever model the computer would have selected for itself.
You should see
╭─ 🎉 Waired is ready — everything completed successfully! ─╮│ Account you@example.com ││ Model qwen3.8-27b — 58 tok/s ││ Claude routed through Waired ││ Local inference is live via the waired-agent daemon. ││ Point your coding agent at Waired and start building. │╰───────────────────────────────────────────────────────────╯Speed and Model are two different measurements, and both are worth reading. Speed is one whole request end to end — timed on a small stand-in model while Waired was setting up, so you can compare one computer against another. Model is the model you actually chose — the figure after its name is how fast it produces words on this computer. A fast computer can still be paired with a heavy model.
Speed is measured once per install, and again when Waired updates. To take it
again — after adding memory or a GPU, say — re-run waired init.
Claude routed through Waired means the machine-wide setting is in
place. A new Claude Code session still starts on Claude Code’s own model,
which the real Anthropic API answers; pick a Waired entry in /model to
have this computer answer — see
Use it from Claude Code.
You should see
╭─ 🎉 Waired is ready — local inference starts off on this computer ──────────────╮│ Account you@example.com ││ Speed 210.4 s or more per request (target: 45 s or less) ││ Claude still using the Anthropic API ││ Signed in and running — this device is on your network. ││ Local inference starts off here; it can still use your other computers' models. ││ Turn it on anyway with `waired inference on`. │╰─────────────────────────────────────────────────────────────────────────────────╯Nothing failed here. Waired timed this computer, one request would
take longer than it thinks is useful, and it left local inference off rather than
downloading tens of gigabytes you would then wait on. The computer is on your
network and can use the models running on your other computers. If you want it on
anyway, that is one command — and waired inference status repeats the reason
whenever you ask.
You should see
╭─ 🎉 Waired is ready — local inference is switched off on this computer ────────╮│ Account you@example.com ││ Claude routed through Waired ││ Signed in and running — this device is on your network. ││ Local inference is off here; requests go to your other computers. ││ Turn it on anytime with `waired inference on`. │╰────────────────────────────────────────────────────────────────────────────────╯The other way local inference ends up off: you said so. Answering no to
Run models on this computer?, or passing --inference-enabled=false, leaves
this computer as a gateway — signed in, on your network, sending requests to
your other computers. Nothing failed, and nothing is downloading.
The difference from the box above is who decided. There, Waired measured this computer and advises against it, so turning it on is going ahead anyway. Here nobody is advising against anything, so it is available anytime.
You should see
Engine install skipped (WAIRED_NO_OLLAMA).
* Waired is signed in — engine installs are turned off here Signed in and running — this device is on your network. No local inference here; it can still use the models on your other computers. Add local inference later with: waired runtimes install ollamaThis is what you get when you told setup not to install an engine —
--skip-ollama on Linux and macOS, -SkipOllama on Windows, or
WAIRED_NO_OLLAMA in the environment. Nothing went wrong: the computer is
signed in, on your network, and can use the models running on your other machines.
waired init exits 0 here, so a script cannot mistake it for a failure.
Not the same as the box above it, even though both end with local inference off.
There, Waired timed the computer and decided; here, you decided before it ever
looked. The difference that matters is the way back: waired inference on
fixes the one above and does nothing here, because this computer has no engine
to turn on.
Run sudo waired runtimes install ollama (waired runtimes install ollama
from an elevated prompt on Windows) whenever you want this computer to run
models itself.
You should see
Model still downloading; it will finish in the background. Run `waired status`to watch progress, or `waired runtimes benchmark` later to check performance.
* Waired is signed in — local inference is still setting up here Account you@example.com Claude still using the Anthropic API
Signed in and running — this device is on your network. Waired is still setting local inference up in the background; the line above says what it's waiting on. Watch it with: waired statusSetup finished before the model did. A model is several gigabytes, and on a
slow connection it can outlast the window waired init waits in — so setup
hands the terminal back and the background service carries on downloading. The
line above the box says which step it stopped on: the download, or an engine
that had not finished starting.
Nothing is wrong and there is nothing to run. waired init exits 0, and
waired status shows the download’s progress. Local inference starts answering on
this computer by itself when the file lands; you do not need to run setup
again.
The box you get instead of the first one on this page, and the difference is
only time. If you want the throughput figure that box shows, run
waired runtimes benchmark once waired status says the model is ready.
You should see
No model was chosen for this computer, so nothing is downloading.Pick one with `waired models pull <model>`, or from the browser dashboard.
* Waired is signed in — no model chosen for this computer Account you@example.com Claude still using the Anthropic API
Signed in and running — this device is on your network. No model is set up here, so local inference has nothing to answer with yet.Not the box above it, even though both end without a model on the computer.
There, one is on its way; here, nothing was ever picked — so there is nothing
to wait for and waired status has no progress to show.
This is what a computer Waired judged too small for any of its models gets. Setup still installs the inference engine and still signs the computer in, and it can still use the models running on your other computers. What it does not do is choose a model it cannot run well.
Pick one yourself with waired models pull <model> when you want to, or from
the browser dashboard. waired models ls --detail shows which models fit this
hardware and why. If a Speed figure appears in the box, that is what one
request costs here — the number worth checking before you pick.
That's not right
! The inference engine could not be installed on this device. no space left on device
Sign-in worked — this device is signed in and running. Only local inference is missing. Retry the install with: sudo waired initThe inference engine could not be installed — most often no disk space, no network, or the command was not run with administrator rights. Sign-in is unaffected: the computer is on your network and can use the AI on your other machines already. Fix what the message names and run the command again; setup stops there rather than waiting for an engine that is not coming.
That's not right
[!] Local inference could not complete a test generation: HTTP 500 Check `waired status`, then `waired doctor`, for the engine's own reason.
! Waired is signed in — local inference is not answering yet Signed in and running — this device is on your network. The inference engine here could not answer a test request; the reason is above.The inference engine installed and started, took the model, and then could not answer a single test request. This is different from the case above: nothing needs installing, so running the install again changes nothing.
The line above the box is the engine’s own reason, quoted as the engine gave
it. Two causes are common — the model is too large for this computer’s memory,
and a graphics driver the engine cannot use. waired status shows which model
is loaded and how much memory this computer has; waired doctor reports the
engine’s own state. waired runtimes benchmark re-runs the same test after a
change, and offers a lighter model when one would fit.
Sign-in is unaffected either way: the computer is on your network and can use the AI on your other machines.
Options for servers and scripts
| Flag | Effect |
|---|---|
--no-browser |
Never open a browser; print the URL and pairing code |
--non-interactive |
Accept the hardware-derived defaults, ask nothing |
--inference-bundled-model-id <id> |
Pin a model instead of letting Waired choose |
--inference-enabled=true|false |
Answer the “run models here?” question without being asked |
--control <url> |
Point at a non-default service |
--mask-pii |
Mask home directory, username, hostname and email in the output, for pasting into a bug report |
Signing in from the Waired app instead
Section titled “Signing in from the Waired app instead”The Waired app has a Sign in… entry, and it does sign this computer in.
Setting up again
Section titled “Setting up again”Running setup again on a computer that is already signed in is safe: it re-authenticates and reopens the setup page, and does not count as a new device against your account.
On a computer that is already set up and running a model, setup asks before it starts over:
This device is already set up — Qwen3.5 2B is serving here.Run setup again? It re-asks every question and re-measures this computer. No leaves this device exactly as it is. [y/N] (default: No)Press Enter to leave the computer alone — nothing is changed, and waired status shows what it is doing. Answer y to go through the whole setup again:
every question is asked afresh and the computer is re-measured, so the speed
check in step 6 may offer a different model than last time.
This question is skipped when you have already said what you want on the
command line (--model, --inference-enabled) and with
--non-interactive.
It is still asked after a re-authentication — waired init --force-reauth, or a
plain waired init on a computer whose sign-in expired. Signing in again
happens first, so answering No leaves the computer signed in and otherwise
exactly as it was.