All case studies

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
Screenshot of DeckAgent

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

DeckAgent — AI-native tooling · Cursor companion · Local-first mobile · Andrea Ritondale