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

  1. Keep the agent on the Mac. Expose it with Cloudflare Tunnel on a hostname I control, instead of pretending it can be serverless.
  2. Fork Cursor Local Remote (QR, git, terminal, PWA) and open-source the tunnel scripts so others can run the same phone-to-Mac path.
  3. 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.

← All projects