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 texttermlink 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 onerevoke --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.4A 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/cliChecked against termlink --help from source on September 22, 2026.
Next: sessions and limits, Auto-Yes, or troubleshooting if something is already wrong.