
XDA ran a piece this week about an open-source Claude Code dashboard that lets you approve tool calls from your phone. The dashboard is a nice trick, but the real problem it names is bigger: you kick off an AI coding agent at 4 pm, you leave the house at 5, and the agent hits a permission prompt at 5:15 and just sits there. What actually solves that is a stack of mobile apps on your phone that between them let you check the agent, approve a diff, ssh in to unblock it, or kill the whole thing. These are the eight Android apps we run on ours.
What to look for in a remote-workstation Android app
The category is small in name and huge in practice. The picks below all pass the same checks:
- Real background work. Notifications arrive when you need them. Not “when the app is open.”
- Secure by default. Key-based SSH, WireGuard-based VPN, or an OAuth flow tied to a real account. Nothing that asks for a password over the internet.
- Fast to reach. From the lock screen to a working shell (or a “approve” tap) in under ten seconds. Anything slower and you will not use it.
- Works over cellular. No assumption of home Wi-Fi or a corporate VPN client that only runs on a laptop.
- Handles the last-100m problem. Your dev machine is behind a NAT and a router your ISP owns. The app has to solve that with a mesh network or a real tunnel, not port forwarding.
- Small enough to keep installed. Every one of these is under 100 MB. On a phone that is already full of everything else, that matters.
Quick comparison
| App | Best for | Free plan | Standout feature |
|---|---|---|---|
| GitHub Mobile | Reviewing and approving AI-generated PRs | Fully free | Push notifications for review-requests |
| Termius | Polished SSH for daily use | Free tier | Cross-device key sync, saved sessions |
| JuiceSSH | Longtime lightweight SSH client | Fully free | Snippets, plugin ecosystem |
| Tailscale | Reaching the dev machine at home or in a cafe | Free tier | WireGuard mesh with SSO, magic DNS |
| Termux | A real Linux terminal on the phone | Fully free (F-Droid) | Local scripts, cron, package manager |
| AnyDesk | Full-screen remote desktop when SSH is not enough | Free tier | Low-latency screen share over its network |
| Home Assistant | Getting webhook notifications from the agent | Fully free (open source) | React to any HTTP event, push locally |
| Claude by Anthropic | Chat-side of the same account running Claude Code | Free tier | Continues the same conversation as your desktop |
The 8 apps
1. GitHub Mobile — best for approving AI-generated PRs
GitHub Mobile is the one app on this list that everyone with a GitHub account should already have. Its push notification for “review requested” arrives seconds after the AI agent pushes a branch and opens a pull request, and the diff view is polished enough that you can actually read a real diff on a phone screen. The “merge when ready” button ships in the same tap flow.
Where it falls short: No terminal, no way to intervene when the agent is stuck. It handles the finished-work case, not the mid-run one.
Pricing:
- Free: fully free with a GitHub account
- Paid: none
Platforms: Android, iOS
Bottom line: The pick for the finished-diff half of the loop. Pair it with an SSH app.
2. Termius — best polished SSH client
Termius is the SSH client we hand people who have never used one. Sessions are saved with tags, keys sync across devices behind a login, port-forward tunnels open with a single tap, and the terminal font rendering is genuinely good on a phone screen. It also does SFTP, which is the second thing you need after “please look at what the agent wrote.”
Where it falls short: The best features (key sync, more than three saved hosts, port forwards) require the paid tier. The free version is functional but tight.
Pricing:
- Free: up to three hosts, one-device use, no key sync
- Paid: individual and team plans starting at a modest monthly fee
Platforms: Android, iOS, Windows, macOS, Linux
Bottom line: The pick for the everyday “ssh in, tail the log, kill the process” flow.
3. JuiceSSH — best free SSH client with plugins
JuiceSSH has been the Android SSH default for a long time and it earned the spot. The core client is fully free, the snippet system is fast enough for the “run the same three commands every time” workflow, and the plugin ecosystem covers Mosh, extra ciphers, and performance overlays. It is boring in the way you want a tool that unblocks your production agent to be boring.
Where it falls short: The last major UI refresh predates Material You. Development is slower than Termius.
Pricing:
- Free: fully free, no core-feature paywall
- Paid: JuiceSSH Pro for team key management
Platforms: Android
Bottom line: The pick if you want free, fast, and never-going-away.
4. Tailscale — best for reaching the dev machine from anywhere
Tailscale is a WireGuard-based mesh network with an SSO login on top, and it is how a lot of us solved the “my dev machine is at home, my phone is at a cafe” problem. Install Tailscale on the workstation, install it on the phone, and the phone can reach the workstation on a stable hostname, from any network, without touching the home router.
Where it falls short: The free tier caps at 100 devices and 3 users, which is fine for one person and cramped for a small team. Requires an SSO provider (Google, GitHub, Apple, Microsoft).
Pricing:
- Free: personal tier, one user, up to 100 devices
- Paid: team plans starting per-user per-month
Platforms: Android, iOS, Windows, macOS, Linux, ChromeOS
Bottom line: The pick for the transport layer. Everything else runs on top.
5. Termux — best real terminal on the phone itself
Termux turns the phone into a real Linux box. Not a client that talks to a server, a full local terminal with a package manager, cron, ssh-agent, and enough of the userland to run a Python script or trigger a webhook without leaving the device. When the AI agent needs “curl a URL,” Termux is what runs it.
Where it falls short: Not available on Google Play any more; get it from F-Droid or GitHub. Setting up notifications from a Termux script takes a few steps.
Pricing:
- Free: fully open source
- Paid: none
Platforms: Android
Bottom line: The pick for scripts that need to run on the phone itself, not on the workstation.
6. AnyDesk — best when SSH is not enough
AnyDesk is the pick for the times you need to see the desktop, not the terminal. An IDE window with a diff in it, a browser tab with a preview, a Figma inspection view: SSH does not help. AnyDesk streams the workstation’s screen to the phone with low latency, supports touch and mouse input, and works cross-platform.
Where it falls short: The free tier is personal-use only. Corporate use requires a license.
Pricing:
- Free: personal use, unlimited devices
- Paid: subscription tiers for professional and team use
Platforms: Android, iOS, Windows, macOS, Linux
Bottom line: The pick for the “I need to see what the IDE is showing, right now” cases.
7. Home Assistant — best for webhook notifications from the agent
Home Assistant on the phone is not just for smart-home things. Its webhook trigger accepts any HTTP POST, and the mobile app pushes a proper notification when it fires. A script on the workstation can hit that webhook when the AI agent hits a permission prompt, and the notification lands with a title and body you control. Both a phone-side action button and a full “open the SSH client” tap flow are one config away.
Where it falls short: Requires a running Home Assistant instance. Reasonable overhead if you don’t already have one.
Pricing:
- Free: fully open source (both the server and the app)
- Paid: HA Cloud subscription for external webhooks without opening a port, not required
Platforms: Android, iOS
Bottom line: The pick when your household already runs HA and you want the agent’s alerts to land like every other alert.
8. Claude by Anthropic — best for continuing the conversation
Claude on Android continues the same conversation your desktop had. If the AI agent that hit the permission prompt was Claude Code, the mobile app lets you keep talking to the same account, ask the model to explain what it was doing, and generate the exact command you want to paste into your SSH terminal. It is not a coding agent on the phone; it is the same brain, available from a different keyboard.
Where it falls short: Not a direct control surface for Claude Code sessions. Free tier caps at a limited number of messages per day.
Pricing:
- Free: chat tier with limits
- Paid: Claude Pro and Team subscriptions
Platforms: Android, iOS, Web
Bottom line: The pick when the workstation-side agent is Claude Code and you want to reason with it from your phone.
How to pick the right combination
Every phone benefits from a two-app minimum. Everything else is layered on top:
- Must have: GitHub Mobile and one SSH client (Termius or JuiceSSH). This is the smallest stack that actually solves the problem.
- If the dev machine is at home: Add Tailscale. Otherwise, port-forwarding is the wrong answer.
- If the agent runs in a browser preview a lot: Add AnyDesk for when SSH is not enough.
- If you already run Home Assistant: Wire the agent to a webhook and reuse the mobile app.
- If your account runs Claude Code: Add the Claude Android app to reason with the model when SSH is a blunt tool.
FAQ
Can I actually approve a Claude Code tool call from my phone? Yes, via the open-source Claude Pulse dashboard XDA covered. Run the dashboard on your dev machine, reach it over Tailscale or a local URL, and it puts an Allow / Allow All / Deny button on your phone screen when Claude Code pauses.
Is GitHub Mobile enough on its own? For AI agents that only push branches and open PRs, yes. For agents that run interactively and pause for permissions, no. Pair it with SSH or a dashboard.
Which SSH app has the best free tier? JuiceSSH. Fully free, no host cap, no key-sync paywall.
How do I ssh into a machine at home? Tailscale is the cleanest answer in 2026. Alternatives include Cloudflare Tunnel or a personal VPN like WireGuard, but Tailscale’s “install and it works” setup is hard to beat.
Is any of this dangerous? Running an AI coding agent unattended and approving its actions from a phone is a real category of risk. Restrict which files it can write, review diffs before merging, and never approve without reading. The tooling above does not replace judgment.