Skip to content
HomeFeedbackOpen Remote

Install ​

Install pulls binaries from this project's official instance at https://dl.remote.lzinternal.ai/daemon. curl is required. macOS and Linux. Windows is rejected.

sh
curl -fsSL https://remote.lzinternal.ai/install.sh | sh

The same command on a second computer. Then pair it from the phone: Settings → Switch computer → Add a computer. Do not set REMOTE_JOIN_TOKEN.

Remote does not install or sign in to AI agents. Install and sign in to your chosen agent on the computer before using it, or choose Terminal after pairing to work without an agent.

Herdr checks and installation ​

Before replacing Remote, enrolling, or installing its service, the installer checks Herdr. It reuses a ready server, starts an installed server when needed, and waits for its API. If Herdr is missing, it automatically installs the latest stable release into ~/.local/bin/herdr, verifies SHA-256 and records its source. Existing installations are preserved.

For unattended installation, use the following command; missing Herdr is still installed automatically:

sh
curl -fsSL https://remote.lzinternal.ai/install.sh | sh -s -- --non-interactive

--non-interactive never prompts and still installs missing Herdr by default. Use --no-install-herdr to fail instead when Herdr is missing. --skip-herdr-check installs Remote without claiming session readiness. --no-service still checks Herdr; for offline preparation use --no-service --no-enroll --skip-herdr-check.

Later, run remote setup to check and start Herdr, or remote setup --install-herdr to install a missing dependency. remote doctor only diagnoses; it never installs or starts anything. Incompatible protocols, startup failures, and invalid HERDR_BIN or socket settings must be resolved before continuing. Existing Herdr sessions are never automatically upgraded or restarted. Remote starts only the default server; with REMOTE_HERDR_AUTOSTART=0, start the configured Herdr server yourself. See Named Herdr sessions for the autostart limits.

What the script does ​

  1. Downloads the remote binary for this OS
  2. Verifies the checksum and refuses to overwrite on mismatch
  3. Checks Herdr, automatically installs the latest stable release if missing, starts it if needed, and verifies its API
  4. Enrolls
  5. Unless --no-service, installs a user-level login service

Flags ​

FlagRole
--prefix DIRInstall directory. A writable /usr/local/bin uses that; otherwise ~/.local/bin
--no-serviceBinary and enroll only; no login service
--no-enrollSkip enrollment; service and Herdr checks still apply
--no-install-herdrFail instead of installing missing Herdr
--install-herdrCompatibility alias: install missing Herdr (the default)
--non-interactiveNever prompt; install missing Herdr unless explicitly disabled
--skip-herdr-checkSkip Herdr checks without claiming session readiness

Also valid:

sh
curl -fsSL https://remote.lzinternal.ai/install.sh | sh -s -- --prefix "$HOME/bin"

Machines that already enrolled: rerunning the installer refreshes the binary and leaves existing pairings alone.

The service retains the checked Herdr executable, socket, configuration paths, and startup options so a different login PATH does not break the connection.

The installer checks and starts Herdr from the home directory, matching the login service. Relative Herdr configuration paths are also interpreted from home.

Where it lands ​

ConditionBinary
Writable /usr/local/binDefault /usr/local/bin/remote
Ordinary userDefault ~/.local/bin/remote

remote is the command shown in this documentation. The installer also creates remoted → remote in the same directory as a compatibility alias.

If ~/.local/bin is not on PATH, the script tells you to add it. For zsh:

sh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

After install ​

After a login, the service starts on its own. It is a login service, not a boot daemon: sleep and logout stop it; coming back to the same graphical session starts it again. In a terminal, remote shows status and suggests the appropriate recovery command. Use remote run for foreground use. To inspect or restart the installed service:

sh
remote service status
remote service restart

Day to day you should not need those. remote update replaces the binary and restarts an installed user service.

Update ​

sh
remote update

Replaces the binary and restarts the user service. Do not rerun the installer as an “update”.

Uninstall ​

sh
remote service uninstall
prefix="$(dirname "$(command -v remote)")"
rm -f "$prefix/remote" "$prefix/remoted"

Uninstalling the service does not delete the state directory. To drop pairings too, remove ~/.config/remote after you are sure you do not need those device credentials.

From source ​

Clone the repository for local comparison. Run setup once to prepare Herdr automatically. Everyday use still follows the install command above.

sh
go run ./cmd/remote setup
go run ./cmd/remote

Local pairing and checks are in the repository README.

Update the Herdr runtime ​

remote update and Update to v… in the browser update Remote only. For Herdr installed and still managed by Remote, run:

sh
remote setup --update-herdr

With running sessions, this only downloads and verifies the update. Exit code 2 means prepared but not active; tasks keep running. When tasks can be interrupted, run on that computer:

sh
remote setup --update-herdr --restart-herdr

The command describes the target and impact and asks in the terminal before stopping the default service, updating and verifying. Stopping terminates terminal processes; agents may need recovery. Restoring a binary cannot restore those processes. Named sessions, custom sockets and externally supervised servers need local maintenance using their original setup. Non-interactive mode cannot authorize a restart.

Update Homebrew, mise, Nix or unknown installations through their original installer. Older Remote installs without provenance are not adopted automatically. remote doctor reports installed and running versions and pending updates. Uninstalling Remote keeps Herdr, sessions and projects.

Keys stay on your computer and paired devices. remote.lzinternal.ai relays encrypted content and records connection metadata. · Privacy · Report an issue