Five steps from install to a live remote terminal

The whole system, end to end. Each step is expanded below.

Step 1

Install the daemon on your PC

Step 2

Link your device with an access key

Step 3

Connect — P2P or encrypted relay

Step 4

Terminal keeps running on the PC

Step 5

Files and localhost, same channel

1

Install the open-source daemon on your PC

Everything starts on the computer you want to reach. The CLIAnywhere daemon is a small open-source program that runs on Windows, macOS, and Linux — as a desktop app, or as a headless CLI build on machines with no display. It owns the shell sessions, spawns bash, zsh, fish, cmd, pwsh, and powershell as you open them, and keeps them alive.

You sign in with your account so your devices can find each other, and the daemon generates a Security Code locally on that machine. Signed builds are available from GitHub Releases, and because the source is published, you can also build it yourself. The full walkthrough lives in the setup guide.

2

Link your device with an access key

Next, you pair a client — the iOS or Android app, or the Web App — with that computer. The daemon displays a QR code you can scan, or an access key you can paste into the app. Either way, the key is used only to authenticate the SPAKE2 key exchange between your computer and the app; it is never uploaded to our servers.

Each PC also has its own Security Code, generated and stored locally on that machine and never uploaded anywhere. You are asked for it whenever you connect, which adds a layer of protection that works even if your account credentials are compromised.

3

Connect: P2P direct when possible, encrypted relay as fallback

When you tap a computer in the app, CLIAnywhere first tries to establish a direct peer-to-peer link between your devices, encrypted with DTLS. When no direct path is available — strict NATs, corporate firewalls, hotel Wi-Fi — traffic falls back to an encrypted WSS relay. It is a secure transport either way, and all connections are outbound from your computer.

That outbound-only design is why there is nothing to configure: no port forwarding, no router rules, no public IP address or DDNS. For more on that trade-off, see remote access without port forwarding.

4

The terminal keeps running — your devices are windows onto it

This is the part that changes how the terminal feels. The session lives on the PC, under the daemon — not in the app. Close the app, lock your phone, ride through a tunnel: the shell keeps running, with its processes, its scrollback, its environment. Reconnect and the same session is waiting.

It also means every client sees the same session. Start work at your desk, check on it from your phone while you are away, open it again later from a browser — you are always looking at one terminal, not three copies of one. This model is covered in depth in how persistent terminal sessions work.

5

Files and localhost access ride the same encrypted channel

On top of the terminal, two things ride the same connection. A file browser lets you walk the host's file system and download files straight to your phone. And because the daemon runs on your PC, it can reach services bound to localhost or your LAN — a dev server on localhost:5173, a router admin page, a NAS dashboard — and expose them to your phone from anywhere.

Both use the same end-to-end encrypted channel as the terminal itself. For the specifics, see how to access localhost web apps from your phone.

What the relay can see: when a direct path is not available and traffic passes through our relay, the relay only ever forwards ciphertext. Your keystrokes, terminal output, and files are readable by your devices alone. The full breakdown — DTLS/WSS transport, SPAKE2 key exchange, AES-256-GCM payload encryption — lives in how CLIAnywhere end-to-end encryption works.

Platform and feature facts

What CLIAnywhere supports, at a glance.

Windows hostYes
macOS hostYes
Linux hostYes — desktop UI or headless CLI
iOS clientYes
Android clientYes — Google Play
Web clientYes — webapp.clianywhere.com
Shellsbash, zsh, fish, sh, cmd, pwsh, powershell
Persistent sessionsYes
Desktop–mobile session switchingYes
File browser and downloadYes
Localhost / LAN web accessYes
P2P direct connectionYes — DTLS
Encrypted relay fallbackYes — WSS
End-to-end encryptionSPAKE2 + AES-256-GCM
Port forwarding / public IP requiredNo
Open-source daemonYes
Account modelOne account, multiple PCs, per-PC local Security Code

Common questions about how it works

Short, direct answers to the questions people ask most.

No. All commands run on your PC. The daemon installed on your Windows, macOS, or Linux computer owns the shell session and executes everything you type, using that machine's files, environment, and network. Your phone or browser only sends keystrokes and displays output, so nothing runs on the client device.
Nothing happens to the terminal. Sessions run on your PC under the daemon, so closing the app, locking your phone, or losing signal does not end them. The shell keeps running with its processes and scrollback, and when you reconnect you return to the exact same session.
Yes. The CLIAnywhere daemon is open source and the code is published at github.com/CLIAnywhere/clianywhere_daemon. You can read it, audit it, and build it yourself, or download signed release builds for Windows, macOS, and Linux. Because remote-access software can trigger antivirus false positives, building from source is an option if you prefer it.
No. The daemon makes outbound connections only. CLIAnywhere first tries to connect your devices directly with peer-to-peer DTLS, and falls back to an encrypted WSS relay when a direct path is not available. There is no port to open, no router configuration, and no public IP address to expose.
No. When traffic passes through the relay, the relay only ever forwards ciphertext. Application data is encrypted with AES-256-GCM before it leaves your device, and the session key is negotiated directly between your computer and the app with SPAKE2, so your keystrokes, terminal output, and files are readable by your devices alone.

Related guides

See it work on your own machine

Install the daemon, link your phone, and you are three steps in already.

Download App Setup Guide