Four Things Developers Actually Do

Not "mobile development" — just the ordinary terminal tasks that used to chain you to your machine until they finished.

Watching a dev server

Run npm run dev, rails server or go run . in a session, then step away. Errors keep printing whether you are watching or not — read them from the couch, not the desk.

Builds and deploys

Kick off the build before you leave, check the exit code from the train, and run the deploy in the same session when it is green. The command runs on your machine — the phone is just where you type.

Tailing logs

tail -f, journalctl -f, docker logs -f — a stream you want to glance at occasionally, not stare at. Keep it in a persistent session and glance from anywhere.

Incident response

When the page goes down, the first tool is a shell on the box that is unhappy. Getting one from wherever you happen to be — without a laptop, a VPN or a port forward — is the whole point.

deploy — 80x24
~/api $ npm run build
built in 3m 12s — 0 errors, 2 warnings
~/api $ ./deploy.sh staging
uploading 41 files…
● health check 200 OK
⚠ 1 old migration pending
~/api ./deploy.sh prod

Illustrative session: a build and deploy, watched from the phone over cellular.

What Persistence Changes for Dev Work

Every workflow above has the same failure mode without it: the moment your connection drops, the session dies and takes your context with it.

Long tasks survive

Builds, test suites, migrations and data jobs run for minutes to hours. Sessions live on your computer, so a dead phone battery or a subway tunnel costs you nothing but time.

No network setup

No public IP, no port forwarding, no VPN to remember. The daemon on your machine connects outbound, which is why it works from other people's Wi-Fi and hotel networks.

Localhost comes with you

Web apps served on the machine's localhost or LAN open on your phone too, so you can check the UI and the server log without running back to the desk.

Files when you need them

The built-in file browser downloads logs, reports and build artifacts to your phone over the same encrypted channel — no separate file-transfer step.

Your shell, unmodified

bash, zsh and fish on Unix-like hosts; cmd, pwsh and powershell on Windows — with the aliases, prompt and history you already have. See the remote bash, remote zsh and remote PowerShell guides for specifics.

Any device, same session

iOS, Android and the web client all attach to the same sessions, so the phone, a tablet and a borrowed laptop's browser are interchangeable windows onto your machine.

A Friday Deploy, Without Staying at the Desk

One incident-free release cycle, from the moment you leave the office.

It is 5 p.m. on Friday and the release branch is merged. The plan was to wait out the build, deploy, and go home — instead you start it in a CLIAnywhere session and leave.

  1. On the walk home, you open the app and tap your work machine. The build is still running; you scroll the output so far and there is nothing to do yet, so you pocket the phone.
  2. A test fails. The phone buzzes back into the session later: one flaky integration test. You re-run just that file from the phone, it passes, and the suite goes green.
  3. You deploy staging from the same session, watch the health check return 200, and check the migration output in the scrollback before promoting to production.
  4. An hour after that, a log line looks wrong. You tail -f the service log from the couch, confirm it is a known warning, and close the app. The tail keeps collecting output on the machine in case you look again.

None of this required a laptop, a VPN, or a single open port on the office network — only the machine you already develop on, left switched on.

Production Access, Encrypted End-to-End

Developers point this at machines that can deploy to production, so the channel is not a detail. Keystrokes, output and downloaded files are encrypted end-to-end: keys are negotiated between your devices with SPAKE2 and payloads are sealed with AES-256-GCM, so the relay used as a fallback only ever sees ciphertext. Each linked machine is protected by a Security Code generated locally on that machine and never uploaded. The full model is on the end-to-end encryption page.

What CLIAnywhere Supports

Platform and capability facts for this use case, all verified against the shipping product.

Windows hostYes
macOS hostYes (signed and notarized, distributed via GitHub Releases)
Linux hostYes (desktop UI or headless CLI build)
iOS clientAvailable on the App Store — see the download page
Android clientGoogle Play
Web clientwebapp.clianywhere.com
Shellsbash, zsh, fish, sh, cmd, pwsh, powershell
Persistent sessionsYes
Desktop↔mobile session switchingYes
File browser + downloadYes
Localhost / LAN web accessYes
Port forwarding / public IPNot required
Open-source daemongithub.com/CLIAnywhere/clianywhere_daemon

Frequently Asked Questions

It depends on what you administer. If your work is mostly logging into servers you already manage over SSH, a traditional SSH client such as Termius or Blink Shell is a good fit. If your work happens in terminals on your own Windows, macOS or Linux machines and you want to reach those sessions from a phone, CLIAnywhere fits better: sessions persist across disconnects, no port forwarding or public IP is needed, and the same session follows you from desktop to mobile.
Start the dev server inside a CLIAnywhere terminal session on your computer, then open that session from the CLIAnywhere app on your phone. Output keeps streaming to your phone wherever you are, and if the connection drops the server keeps running because it lives on your machine, not on the phone. You can also open web pages served on the machine's localhost or LAN directly from the phone.
Yes. Any command you can type at your desk you can type from the phone, and it executes on your computer, not on the phone. Start a build before you leave, watch it finish from the road, then run the test suite and the deploy command from the same session. Nothing runs on or through the phone itself.
Yes. Run tail -f (or journalctl -f, or kubectl logs -f) in a CLIAnywhere terminal session and the stream continues into the app on your phone. Because the session is persistent, a dropped mobile connection does not kill the tail — you reconnect and the output is still flowing, with the earlier scrollback preserved.
On the computer acting as host, CLIAnywhere supports bash, zsh, fish and sh on Unix-like systems, and cmd, pwsh and powershell on Windows. You work in the shell you already have configured, with its existing aliases, prompt and history. Shell-specific details are covered in the remote bash, remote zsh and remote PowerShell guides.

Keep Reading

Take the terminal with you

Free download, one-minute setup, and your machine's terminal on every device.

Download App Setup Guide