TermLink

CLI reference

Six commands. This is what termlink --help prints, with what each one actually does.

Usage: termlink <command> [options]

Commands:
  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

termlink start

Run the host in this folder. This is the one you will use most, and it is the default — bare termlink does the same thing.

Run it from the folder you want to work in. The host registers under your Google account by dialing out, and from then on it is reachable from the web client. Leave the terminal open — the host stops when the process does.

By default it offers five kinds of session — Claude, Codex, Cursor, Copilot, and a plain terminal — and you choose which one to open from the web client, not from this command. The options below narrow or change that:

--port <n>                      local WebSocket port (default 7420)
--host <addr>                   bind address (default 127.0.0.1)
--token <token>                 local client token (default: $TERMLINK_LOCAL_TOKEN or a random one)
--show-local-url                print the local WebSocket URL with its token (for development)
--verbose                       print the relay connection details as they happen
--relay-session <name>          relay session name (default: <hostname>-agent)
--allow-root <dir>              folder sessions may open in; repeatable
                                (default: the current folder)
--state <file>                  where agent sessions are remembered across restarts
--no-restore                    start without bringing back remembered agent sessions
--auto-approve <mode>           off | edits | all: approvals new agent sessions answer by themselves (default off)
--providers <list>              comma-separated providers to enable (default claude,codex,cursor,copilot,terminal)
--shell <path>                  shell for terminal sessions (default: the user's shell)
--scrollback <lines>            lines kept for a terminal reconnect (default 5000)
--claude-permission-mode <mode> default | acceptEdits | plan | dontAsk | auto (default: Claude Code settings)
--claude-model <model>          model for new Claude sessions (default: Claude Code settings)
--codex-approval <mode>         untrusted | on-request | never (default: ~/.codex/config.toml)
--codex-sandbox <mode>          read-only | workspace-write | danger-full-access (default: ~/.codex/config.toml)
--cursor-model <model>          a session/new modelId for new Cursor sessions (default: the account's own default)
--cursor-mode <mode>            agent | plan | ask for new Cursor sessions (default: the account's own default, usually agent)

--providers terminal,claude narrows the list to those two, for instance. The host does not handle any agent's credentials itself — sign in to each tool directly (claude, codex login, cursor-agent login, copilot login) first, and the host only checks that you did. An agent whose command is not on PATH reports back as unavailable with the reason, rather than failing when you try to open one.

termlink login

Sign in with Google and enrol this machine.

If the machine is already enrolled it tells you so:

Already logged in: Your Name <you@example.com>
This machine is enrolled, so signing in again is not needed.
To log in with a different account, run `termlink logout` first.

On a headless machine, follow the URL it prints from whatever device you are sitting at.

termlink logout

Sign this machine out. Revokes the enrolment on the server first, then clears the local credential — run it before enrolling under a different account.

termlink whoami

Print the signed-in account, device id, server, and when the credential expires. Useful on a shared box before you start the host from it.

termlink devices

List the machines enrolled on this account. This is the one command that takes a subcommand and options.

termlink devices                    list every enrolled machine
termlink devices revoke <id>        sign out one machine by id (from the list)
termlink devices revoke --all       sign out every machine, including this one

revoke --all includes the machine you are typing on, so you will be signing yourself out too.

termlink help

Print the usage text above. -h, --help, and no command at all with an unknown first word all fall back to it.

-v / --version prints just the version:

termlink 0.1.4

A mistyped command

Prints this, then the full command list:

unknown command "bogus"

The usual cause is looking for a subcommand that shares a terminal. There is not one to look for — it is termlink start, or bare termlink.

Staying up to date

There is no update command — npm owns that. Run the install command again to pull the latest version:

npm install -g @termlink/cli

Checked against termlink --help from source on September 22, 2026.

Next: sessions and limits, Auto-Yes, or troubleshooting if something is already wrong.