Start Claude Code anywhere on any of your machines — from your phone.
Pick a computer, pick a folder, tap Start. Anywhere opens a Claude Code session there and gives you the link to continue in the Claude app.
Install · How it works · Security · FAQ
![]() |
![]() |
Note
Anywhere is an independent open-source project. It is not affiliated with or endorsed by Anthropic. "Claude" and "Claude Code" are trademarks of Anthropic.
Claude Code's Remote Control lets you drive a session from the Claude app — but someone still has to start it on the machine. Anywhere is that someone:
- 🖥️ All your machines in one list — Linux servers, WSL and Windows PCs.
- 📂 Browse folders and start Claude where your project is.
- ⏱️ Watch it start live, answer Claude's first questions (folder trust…) from your phone.
- ⏹️ Stop, restart, rename, pin your sessions.
- 🔐 Choose permissions per session: Ask, Accept edits, Auto or Bypass permissions.
- 📱 Installable app for your phone's Home Screen, light and dark mode.
You need a Linux server (any small VPS or home server) and Claude Code installed and signed in on each machine you want to use.
The full guide, with updating and uninstalling, is in docs/INSTALL.md.
curl -fsSL https://github.com/raph559/anywhere/releases/latest/download/install.sh | sudo shIt installs everything (Node.js included if needed) and asks how you'll open the app:
| Option | You get | Good for |
|---|---|---|
| Tailscale — picked automatically if installed | https://server.your-tailnet.ts.net:8443, private to your devices |
the easiest private setup |
| A domain name | https://anywhere.example.com, HTTPS set up for you (Caddy) |
reaching it from anywhere |
| Your own reverse proxy | whatever address you use (nginx, Traefik, Cloudflare Tunnel…) | servers that already host websites |
| Local network only | http://192.168.1.20:18250 |
trying it out at home |
Then it prints the address and your access key:
✓ Anywhere is running.
Open: https://anywhere.example.com
Access key: 3kP9… (shown once; keep it in your password manager)
Non-interactive install
curl -fsSL …/install.sh | sudo ANYWHERE_DOMAIN=anywhere.example.com sh # domain + automatic HTTPS
curl -fsSL …/install.sh | sudo ANYWHERE_ORIGIN=https://my-address sh # your own proxy → 127.0.0.1:18250
curl -fsSL …/install.sh | sudo ANYWHERE_LAN=1 sh # local network, plain httpOpen the address, sign in with the access key, then click + Add next to Devices. Give the machine a name, pick its system, and paste the command it shows on that machine:
| System | Where to paste it |
|---|---|
| Linux / WSL | a terminal |
| Windows | PowerShell |
The machine appears online a few seconds later, and its agent starts automatically from then on.
Open the same address on your phone, sign in, then Share → Add to Home Screen (needs an HTTPS address).
That's it. To update later, run the install command again: your settings, devices and sessions are kept, and every machine updates its agent by itself.
your phone ────── HTTPS ──────▶ hub (your server)
▲
outbound only │ one secret per machine
┌──────────────────────────┼──────────────────────────┐
agent · laptop agent · office PC agent · server
│ │ │
claude remote-control claude remote-control claude remote-control
- The hub is a single Node.js file that serves the app and passes commands along. It never sees your Claude login.
- Each agent is a single Python file. It connects out to the hub (no ports to open on your computers), browses folders inside your home folder, and starts or stops
claude remote-control. - Your conversations happen in the official Claude app; Anywhere only manages the sessions.
Anywhere can start Claude Code with full permissions on your machines from a web page. Please read this:
- Prefer a private address. With Tailscale or a local network, only your own devices can even reach the sign-in page. With a public domain, the sign-in is protected by a long random access key and rate limiting, but it is still reachable by anyone — use a strong setup (HTTPS only, keep the key secret).
- Plain http is for local networks only: traffic, including device secrets, is not encrypted.
- Secrets are hashed. The access key and each machine's secret are stored as SHA-256 hashes. Device codes work once and expire after 30 minutes.
- Agents stay in their lane. They only browse your home folder and only stop the Claude processes they started.
- Bypass permissions is powerful. Claude will edit and run anything on that machine without asking and without any safety check (it is Claude Code's
--dangerously-skip-permissions). The default, Auto, also works without asking but has each action reviewed by Claude Code's safety classifier. Use Ask or Accept edits when in doubt. - Updates are signed. Agents only install new versions signed with your server's own key (kept root-only, out of the web service's reach). Set
"autoUpdate": falsein an agent'sconfig.jsonto opt out.
Does it work on macOS?
Not yet: the agent relies on Linux and Windows process APIs. The app itself works in any browser.
I lost my access key.
On the server: sudo sh /opt/anywhere/deploy/reset-access-key.sh prints a new one.
A machine stays offline.
- Linux server:
systemctl status anywhere-agent - WSL / desktop Linux:
systemctl --user status anywhere-agent, or~/.anywhere-agent/agent.log - Windows: Task Scheduler → Anywhere agent
The machine must be awake and connected to the internet.
WSL: WSL only runs while Windows has something open in it, so the installer also adds a Windows task (Anywhere agent (WSL …)) that wakes it when you sign in. If you set up this machine before that existed, run this once in WSL (replace HUB with your address):
curl -fsSL https://HUB/install/wsl-autostart.sh | sh"Taking longer" while starting.
Claude Code on that machine is probably waiting for a sign-in or a setup prompt. Open Claude Code there once, then try again.
Do I need Tailscale?
No. It's one option: the installer also supports a domain name with automatic HTTPS, your own reverse proxy, or your local network. See Install.
Manual setup / configuration reference
- Hub configuration:
/etc/anywhere/config.json— see examples/hub-config.json. Devices listed there are managed by hand; devices added from the app are stored in/var/lib/anywhere/state.json. - Agent configuration:
config.jsonnext todevice_agent.py— see examples/agent-config.json. - New secret and its hash: deploy/new-secret.sh. Linux agent as a system service: deploy/install-agent-linux.sh.
- Publishing an agent update by hand: raise
VERSIONinpublic/install/device_agent.py, thensudo python3 /opt/anywhere/deploy/publish-agent.py.
MIT. The bundled Source Serif 4 font is under the SIL Open Font License.


