Shipped · Product builder · Personal project · 2026
How I controlled Cursor from my phone
Cursor Local Remote keeps the real session on my Mac. I forked it, tunneled it with Cloudflare, and open-sourced the path so I can nudge the agent from my phone off-LAN.
- Cursor
- CLI
- PWA
- Cloudflare Tunnel
- OSS
Problem
I wanted to use Cursor from my phone while the real session runs on my Mac. The original local-network UI stopped at LAN. Hosting the agent on Vercel is impossible: it needs the Mac filesystem and the Cursor CLI.
Metrics
- Phone or browser UI that streams the Mac-hosted Cursor CLI agent: QR connect, git panel, terminal, PWA install
- Cloudflare Tunnel deploy path so the Mac answers off-LAN; optional Access in front for me
- Public GitHub fork (`rawshn97/cursor-local-remote`); npm `cursor-local-remote` stays the upstream package
Decisions
- Keep the agent on the Mac. Expose it with Cloudflare Tunnel on a hostname I control, instead of pretending it can be serverless.
- Fork Cursor Local Remote (QR, git, terminal, PWA) and open-source the tunnel scripts so others can run the same phone-to-Mac path.
- Public CTA is GitHub. clr.rawshn.com is Access-gated for me; it is not a hiring demo.
Outcomes
- Daily driver for bathroom / couch / kitchen nudges: scan QR on LAN, or hit the tunneled hostname when I am off-network.
- Published install, tunnel, and Access scripts in `deploy/` plus a user guide for scroll-while-streaming and PWA install.
- Recruiters get the repo and docs, not Agent HQ or the private remote.
I wanted Cursor on my phone while the real agent session stays on my Mac. Cursor Local Remote is the local web UI that talks to Cursor’s CLI on the machine: QR connect, live streaming, git panel, terminal, PWA. I forked it, added a Cloudflare Tunnel deploy path so the Mac can answer from the internet, and made that fork public.
Live demo: public GitHub (rawshn97/cursor-local-remote). Do not use clr.rawshn.com (Access-gated). Docs live in the repo (deploy/README.md, docs/USER_GUIDE.md).
GitHub →
Public OSS fork. Clone and run locally.
Why it is not a hosted app
CLR spawns agent on the Mac, reads the workspace, and runs shell commands. Vercel has none of that. The honest architecture is: phone → HTTPS → Cloudflare Tunnel → localhost:3100 on a Mac that stays awake. Optional Cloudflare Access sits in front for me. That hostname is private nav, not a portfolio CTA.