CLIAnywhere is a remote terminal app that lets you access terminal sessions running on your Windows, macOS, or Linux computer from an iPhone, Android device, or web browser. Sessions keep running on the computer even when the mobile connection drops, and connections go over peer-to-peer DTLS or an encrypted relay, so no port forwarding or public IP address is required.
A remote terminal connects you to a shell session that lives on another machine. Everything you type executes on that host — with its files, its environment, and its network position — while the device in your hand only sends keystrokes and displays output. That is what makes a remote terminal different from a terminal app that runs locally on a phone: you are not running a small shell on the phone, you are using your actual computer.
CLIAnywhere implements this with two parts: an open-source daemon that runs on your PC and owns the shell sessions, and a client on iPhone, Android, or the web that attaches to them. Because the daemon holds the sessions, they survive whatever happens to the client.
The CLIAnywhere daemon runs on Windows, macOS, or Linux and keeps your shell sessions alive — bash, zsh, fish, pwsh, and more.
Peer-to-peer DTLS when your devices can reach each other directly, with an encrypted WSS relay as fallback. No open ports.
Attach from an iPhone, an Android device, or a browser with the Web App. Any client opens the same live session.
The pieces that make a remote terminal usable day to day, not just in a demo.
Terminal sessions run under the daemon on your computer, so closing the app, locking your phone, or losing signal does not end them. Reconnect and the same shell is still there, with its running processes and scrollback.
Start work at your desk, check on it from your phone, and open the same session again later from a browser. One account can link multiple computers, each protected by its own locally generated Security Code.
Browse the host's file system and download files straight to your phone, and reach web apps bound to localhost or your LAN — dev servers, router admin pages, NAS dashboards — from wherever you are.
The daemon runs on Windows, macOS, and Linux — as a desktop app or a headless CLI — and speaks bash, zsh, fish, sh, cmd, pwsh, and powershell. It is open source, so you can audit and build it yourself.
Classic remote access asks you to expose your computer to the internet: open a port on the router, get a public IP or set up DDNS, and hope the exposed service stays safe. CLIAnywhere does not work that way. The daemon makes outbound connections only — a peer-to-peer DTLS link when your devices can reach each other directly, or an encrypted WSS relay when they cannot — so there is nothing to forward, open, or expose.
For a walkthrough of the underlying problem, see how to access your PC remotely without port forwarding.
Terminal traffic is encrypted end-to-end: keys are negotiated between your computer and your client with SPAKE2, and all data is encrypted with AES-256-GCM before it leaves the device. The relay, when used, only ever sees ciphertext. Each computer's Security Code is generated locally and never uploaded. For the full picture, see how CLIAnywhere secures connections.
What CLIAnywhere supports, at a glance.
| Windows host | Yes |
|---|---|
| macOS host | Yes |
| Linux host | Yes — desktop UI or headless CLI |
| iOS client | Yes |
| Android client | Yes — Google Play |
| Web client | Yes — webapp.clianywhere.com |
| Shells | bash, zsh, fish, sh, cmd, pwsh, powershell |
| Persistent sessions | Yes |
| Desktop–mobile session switching | Yes |
| File browser and download | Yes |
| Localhost / LAN web access | Yes |
| P2P direct connection | Yes — DTLS |
| Encrypted relay fallback | Yes — WSS |
| End-to-end encryption | SPAKE2 + AES-256-GCM |
| Port forwarding / public IP required | No |
| Open-source daemon | Yes |
| Account model | One account, multiple PCs, per-PC local Security Code |
Short, direct answers to the questions people ask most.
Install the daemon on your computer, sign in from your phone, done.