Active · AI-native tooling · Cursor companion · Local-first mobile
DeckAgent
- Role
- Solo founder / full-stack product — daemon, PWA, Cursor extension, iOS + Watch app
- Period
- 2026

Key numbers
- Daemon · PWA · Extension · iOS · WatchProduct surfaces
- TestFlightiPhone beta
- andrea0x.deckagentExtension
- Local-first · QR pairingSecurity posture
01 · DeckAgent
Problem
Agentic coding on Cursor is still desktop-bound: away from the Mac you lose visibility into running agents, plans, chats and repo files, and you cannot queue the next Composer prompt without opening the laptop. Official mobile targets cloud agents; anyone who wants code to stay on their machine has no privacy-first mobile remote.
02 · DeckAgent
Architecture
Local-first monorepo: a Node daemon (Express + WebSocket, bound to 127.0.0.1) indexes Cursor workspaces, agent chats, plans/files and a prompt queue without writing `state.vscdb`; a React 19 PWA (Vite + service worker) and an Expo app (native shell + WebView of the same PWA, Apple Watch, push) share one API surface; a Cursor/VS Code extension (`andrea0x.deckagent`) handles QR pairing, heartbeat and delivery into Composer/Agents, with a macOS Accessibility fallback when the IDE is stale. Remote access via Cloudflare tunnel / Tailscale with auth required off-localhost; short-TTL one-time pairing codes.
03 · DeckAgent
Decisions
- 01
Local-first, not a cloud mirror
The repo stays on the machine you trust. The daemon exposes sandboxed workspace reads plus a prompt queue — no third-party codebase sync. Tunnel and Tailscale are opt-in on top of a localhost bind.
- 02
No mutation of Cursor's private DB
Discovery from filesystem and workspace metadata; zero writes to `state.vscdb`. Delivery into Composer uses clipboard + UI focus (extension) or Accessibility automation — not reverse-engineered private APIs.
- 03
One PWA, two shells (web + native)
Feature parity between installable browser and iOS: the Expo app is a shell (QR, push, Watch, haptics) around the same React UI. Avoids maintaining two feature-complete clients.
- 04
Dual-path prompt delivery
The extension claims/acks the queue over a ~8s heartbeat. If the IDE is missing or stale, the daemon can deliver via the macOS Agents window — resilience without a single point of failure.
- 05
Onboarding via a Cursor Agent skill
Technical GTM: one copy-paste message plus the `@deckagent-pairing` skill starts the bridge and QR. The user stays inside the agentic loop they already know.
04 · DeckAgent
Results
- Daemon · PWA · Extension · iOS · Watch
Product surfaces
- TestFlight
iPhone beta
- andrea0x.deckagent
Extension
- Local-first · QR pairing
Security posture
- Node · React 19 · Expo 57
Core stack
05 · DeckAgent
Tech & Pillars
Tech stack
- TypeScript
- Node.js
- Express
- WebSocket
- SQLite
- React 19
- Vite
- PWA
- VS Code Extension API
- Expo
- React Native
- Apple Watch
- Cloudflare Tunnel
- Playwright
Pillars touched
- AI Engineering
- Traditional Software Engineering
- Cloud & DevOps
Contact
Building something similar?
Walk me through the context in a 30-minute call.
hello@andrea0x.me · @andrea0x_eth