{
  "schema": "codee.remote.v1",
  "version": "2026.05.27-codee-light-saas-v2.0",
  "updated_at": "2026-05-27",
  "positioning": "Codee Remote has two tracks: a phone-to-desktop viewer for seeing and controlling the user's own computer, and a Remote CLI bridge for sending safe Codee commands without screen control.",
  "public_page": "https://clients.codee.chat/codee-remote.html",
  "viewer_page": "https://clients.codee.chat/codee-remote-viewer.html",
  "cli_bridge_page": "https://clients.codee.chat/codee-remote-cli.html",
  "installer_page": "https://clients.codee.chat/codee-remote-installer.html",
  "demo_page": "https://clients.codee.chat/codee-remote-demo.html",
  "security_page": "https://clients.codee.chat/codee-remote-security.html",
  "manifest_url": "https://clients.codee.chat/assets/codee/codee-remote-manifest.json",
  "host_download_url": "https://clients.codee.chat/assets/downloads/codee-remote-host.py",
  "entitlement_required": ["pro", "partner", "business-suite", "owner-admin"],
  "moves": [
    {"id": "desktop-host-skeleton", "status": "foundation-live", "proof": "codee-remote-host.py download and host command"},
    {"id": "secure-device-pairing", "status": "foundation-live", "proof": "remote pair packet with expiration and device id"},
    {"id": "device-registry-plan", "status": "foundation-live", "proof": "remote host profile and installer manifest"},
    {"id": "session-start-stop-api-plan", "status": "foundation-live", "proof": "remote session command and session packet"},
    {"id": "phone-viewer-shell", "status": "foundation-live", "proof": "codee-remote-viewer.html"},
    {"id": "desktop-consent-banner-rule", "status": "foundation-live", "proof": "remote security gate and viewer rules"},
    {"id": "emergency-stop-rule", "status": "foundation-live", "proof": "remote security gate blocks silent control"},
    {"id": "remote-cli-command-queue", "status": "foundation-live", "proof": "remote bridge command and host skeleton queue file"},
    {"id": "cli-allowlist-lock", "status": "foundation-live", "proof": "remote bridge blocked actions and host allowlist"},
    {"id": "audit-log-events", "status": "foundation-live", "proof": "remote audit command and event trail"},
    {"id": "entitlement-gate", "status": "foundation-live", "proof": "remote manifest requires pro or business-suite"},
    {"id": "portal-remote-controls-plan", "status": "foundation-live", "proof": "remote portal URLs in pairing/session packets"},
    {"id": "remote-installer-page", "status": "foundation-live", "proof": "codee-remote-installer.html"},
    {"id": "host-self-update-plan", "status": "foundation-live", "proof": "remote host download URL and stable channel note"},
    {"id": "webrtc-signaling-plan", "status": "foundation-live", "proof": "remote manifest backend components"},
    {"id": "turn-relay-plan", "status": "foundation-live", "proof": "remote manifest specialized components"},
    {"id": "playwright-proof-targets", "status": "foundation-live", "proof": "404 loop targets for remote pages"},
    {"id": "remote-readiness-scan", "status": "foundation-live", "proof": "remote readiness command"},
    {"id": "public-demo-mode", "status": "foundation-live", "proof": "codee-remote-demo.html and demo command"},
    {"id": "security-review-gate", "status": "foundation-live", "proof": "codee-remote-security.html and security command"}
  ],
  "phases": [
    {
      "id": "desktop-viewer-mvp",
      "status": "foundation",
      "summary": "Phone opens a viewer page, pairs with the user's own desktop host, and receives a user-approved screen stream.",
      "components": ["PWA viewer", "desktop host agent", "pairing code", "WebRTC signaling", "TURN relay", "visible consent banner", "session revoke"]
    },
    {
      "id": "remote-cli-bridge",
      "status": "foundation",
      "summary": "Phone or browser sends allowlisted Codee CLI jobs to the paired desktop agent. Output returns to the portal.",
      "components": ["PWA command panel", "Codee backend command queue", "desktop host agent", "allowlisted CLI runner", "audit log"]
    },
    {
      "id": "desktop-remote",
      "status": "future-pro",
      "summary": "Chrome Remote Desktop style full remote control for trusted pro workspaces after code signing, MFA, and audit controls.",
      "components": ["native host", "mobile web client", "device registry", "MFA/passkey", "policy engine", "emergency lock"]
    }
  ],
  "gcloud_components": ["Cloud Run API", "Firestore or Cloud SQL session store", "Pub/Sub command queue", "Cloud Storage proof artifacts", "Secret Manager", "Firebase Hosting PWA"],
  "specialized_components": ["TURN relay on Compute Engine or managed TURN", "native host app for macOS/Windows", "code signing and notarization"],
  "viewer_capabilities": ["phone browser viewer", "pairing code", "visible consent", "screen stream", "touch/mouse input after approval", "emergency stop"],
  "cli_bridge_capabilities": ["doctor", "heartbeat", "scan", "portal", "support", "test lane", "preview dry-run"],
  "security_gate": [
    "pairing code expiration",
    "visible desktop consent banner",
    "phone and desktop emergency stop",
    "MFA or passkey before public active control",
    "device registry with revoke",
    "session audit trail",
    "allowlisted CLI commands only",
    "no public owner credentials",
    "no unattended control by default",
    "security review before screen input ships"
  ],
  "security_rules": [
    "No unattended full desktop control until the device owner explicitly enables it.",
    "The viewer requires visible consent, a live session banner, and a user-controlled stop button.",
    "Remote CLI bridge starts with allowlisted Codee commands only.",
    "Pairing codes expire quickly and can be revoked from the portal.",
    "Every command writes an audit event and proof report.",
    "No Stripe secret keys, OAuth refresh tokens, or owner deploy credentials are shipped to public clients.",
    "Full remote desktop requires MFA/passkey, visible session indicator, and emergency stop."
  ],
  "first_commands": [
    "python3 codee.py remote plan . --write --force",
    "python3 codee.py remote installer . --write --force",
    "python3 codee.py remote host . --write --force",
    "python3 codee.py remote viewer . --write --force",
    "python3 codee.py remote bridge . --write --force",
    "python3 codee.py remote pair . --device-name \"Mac Studio\" --write",
    "python3 codee.py remote security . --write --force",
    "python3 codee.py remote readiness . --write --force",
    "python3 codee.py portal . --service codeeqr --plan pro"
  ]
}
