Loopsy
Loopsy // About --:--:--
Live task: 0xa9671aac…

Your terminal,
in your pocket.

License: Apache-2.0 · Cost: $0 · Setup: ~2 min

The user wants to control their laptop's terminal from their phone — including Claude Code, Cursor, and Codex agents — over the public internet, on their own Cloudflare Worker.

✓ Pair phone. Open /app. Run code.
The laptop runs it. The Worker brokers the connection. No port forwarding. No public IP. No VPN.

Model: open-source · Host: your Cloudflare account · Tokens: ∞

macOS Linux Windows
Shipped feat: real-terminal

Real terminal

Type: PTY · Backend: node-pty

Full ANSI, scrollback, resize. vim, tmux, htop render properly.
Shipped feat: persistent-sessions

Persistent sessions

Idle: 10 min · Reconnect: instant

Switch tabs. Lock your phone. Lose signal. Pick up where you left off.
Shipped feat: voice-input

Voice input

API: Web Speech · Edit: before send

Dictate via the Web Speech API. Edit before you hit send.
Shipped feat: hardened

Self-hosted & hardened

CSO: 23 findings closed · Audit: clean

Bearer auth, 4-digit pair codes, secrets hashed at rest, npm provenance. No accounts. No middleman.
Status platforms

Native apps

Web works today. Native apps in submission review.

Web app — /app
Live
iOS · iPadOS
Submitted
Android
Submitted
Run deploy-relay

Self-host in 30 seconds

One command. Your Cloudflare account. Free tier.

$ npx @loopsy/deploy-relay

✓ Worker deployed
✓ PAIR_TOKEN_SECRET set
✓ Saved to ~/.loopsy/relay.json
You keep the secret. The relay runs on your account, not ours. We never see your traffic.

Tier: Cloudflare Workers free · DO storage: SQLite · Provenance: npm OIDC

3 pieces architecture

Three pieces.

Laptop daemon. Cloudflare Worker (ours or yours). Phone client.

1

Install

Run npm i -g loopsy && loopsy start on your laptop. Daemon connects to the relay and waits.

2

Pair

Run loopsy mobile pair. Scan the QR with your phone. Enter the 4-digit code.

3

Use it

Open /app. Pick the agent. Type, dictate, commit code. Your laptop runs it.