TermLink

Troubleshooting

What each message means and what to do about it. If you are looking at something on screen, search this page for the exact words.

Checked against TermLink 0.1.4 on September 22, 2026. If you hit something that is not here, tell us what you saw and it gets added.

Hosts are offline

Hosts are offline

Your account has machines registered, but none of them are connected right now. This is almost always the same cause: the TermLink process on that machine stopped.

TermLink is not a background service. It runs in the terminal you started it in, so it goes away when that terminal does — you closed the window, the SSH session ended, the laptop slept, or the machine rebooted.

  1. Go to the machine itself.
  2. Run termlink start again in a terminal there.
  3. Leave that terminal open. To keep it alive after you disconnect from SSH, start it inside tmux or screen.

If the machine is on and you did leave TermLink running, check that it can reach the internet outbound over HTTPS. TermLink only makes outgoing connections, so a firewall that blocks outbound 443 will stop it — but nothing needs an inbound port opened.

Reconnecting…

Reconnecting…

The browser lost its connection to the relay and is trying to get it back. This one usually resolves itself.

Your session is not lost while this is on screen. The terminal is still running on your machine; what dropped is the pipe between your browser and it. When it reconnects, the screen is repainted as the session left it.

If it stays on Reconnecting… for more than a minute, the machine itself has probably gone offline rather than the browser — see above.

Failed to load your hosts.

Failed to load your hosts.

The web client could not fetch your machine list. This is about your browser reaching TermLink, not about the machines.

Reload the page first. If it persists, sign out and back in — the usual cause is a session that expired while the tab was open.

The Esc key does nothing on Windows

This is the one Windows problem worth knowing about, and it is not a TermLink bug. PowerShell's PSReadLine swallows the Esc key, which terminal UIs — Claude Code included — rely on.

The TermLink host uses cmd.exe by default for exactly this reason. If you have changed the shell, or you are running the agent inside PowerShell yourself, Esc stops reaching the application.

The fix is to run the agent under cmd.exe. Why that default exists, and what else differs on Windows, is in running Claude Code on Windows.

unknown command "…"

unknown command "bogus"

You typed a subcommand TermLink does not have. It prints this and then the full command list.

The commands that exist:

start                 run the host in this folder (default)
login                 sign this machine in to TermLink with Google
logout                sign this machine out
whoami                show the signed-in account
devices               list the machines signed in to this account
devices revoke <id>   sign one machine out (or --all for every machine)
help                  show this text

The one people miss is the first line: to run the host you use termlink start, or bare termlink on its own — start is the default when no command is given.

If the list you got back looks different — it has claude, client and update in it, and no start — that is the old standalone binary from before September 13, 2026. TermLink shipped as a single downloaded executable until then, and start did not exist in it. Installing the package gets that machine current:

npm install -g @termlink/cli

That install leaves the old file wherever you put it, so it can still come first on your PATH afterwards and you get the same message again. which termlink (where.exe termlink on Windows) says which one you are actually running; delete the old one if it is still winning.

--flag must be one of: …

--auto-approve must be one of: off, edits, all

An option was given a value TermLink does not recognise. The message names the flag and the values it accepts.

This is the shape of most option errors, not just --auto-approve — --claude-permission-mode, --codex-approval, and --codex-sandbox all validate the same way. Run termlink --help for the full option list, including what each one defaults to.

Already logged in

Already logged in: Your Name <you@example.com>
This machine is enrolled, so signing in again is not needed.

Not an error. termlink login is telling you the machine is already enrolled under an account.

To switch accounts, run termlink logout first. To see which account you are on without changing anything, use termlink whoami.

A session will not start, and others are already running

Every plan caps how many sessions run at the same time: four on Free, twelve on Pro, forty on Max.

The cap counts sessions, not viewers — you can watch the same sessions from as many browsers and phones as you like without using any of it up. Closing a session frees a slot immediately.

What each plan includes is on the pricing page.

The agent stopped while I was away

If the run is sitting at a permission prompt rather than finished, nothing is broken — the agent is waiting for a human and there was not one.

Approvals are per session. An agent session has an Auto-approve setting in its header — Ask for everything, Allow file edits, Allow commands and edits — and a terminal session has an Auto-Yes switch. Either keeps a long run going while you are somewhere else, and you can change it from a phone. Both start off and both are a convenience rather than a safety feature — how it works, and when to leave it off.

If the session is gone rather than blocked, the host process stopped. That is the first case on this page.

Still stuck?

Send the exact text on screen and what you were doing to bert@n2computing.com. If it belongs on this page, it gets added — that is how this page is meant to grow.

Not stuck, just starting? Getting started walks through the first session, or open the app.