All work
Full-Stack

Remote Ops: Private Console That Drives Your Own Machines

A relay website where tasks typed from anywhere run headless on your own PC, with credentials the server can never read.

FastAPI relay, dial-out WebSocket nodes, browser-sealed secrets (ECDH to AES-GCM), node-side schedules, a permission gate hook, attachments both ways and per-account isolation.

Remote Ops: Private Console That Drives Your Own Machines — illustration
What makes it serious
  • Nodes dial out; zero inbound ports anywhere
  • Browser-sealed credentials verified end to end
  • PreToolUse permission gate pauses and resumes the same session
  • Per-account isolation on data and live broadcasts

Remote Ops lets I message a task from a phone and have his own PC pick it up, run an AI coding session against the right project, and stream results back. The architecture has three parts: a small public relay (FastAPI plus SQLite), node agents that dial out over WebSocket so no router or firewall port is ever opened, and a media toolkit the engine can call.

Security decisions were made deliberately and verified. Credentials are sealed in the browser to the node's P-256 public key, so the relay stores an envelope it cannot open. Schedules run on the node's clock, so a network drop a minute before a scheduled close-all does not cancel it. A permission gate runs the engine in ask mode with a PreToolUse hook that pauses the run, asks the website, and resumes the same session on allow; deny was proven to really prevent the command. Accounts are isolated on every table and every WebSocket broadcast, and an owner audit view exists.

The same node codebase serves many instances, uploads land in a per-run inbox and deliverables return through an outbox. Its dial-out and isolation patterns later became the backbone of the Skynet execution service.

How it works

  1. User composes a task with optional attachments in the web console
  2. Relay stores the task and dispatches to the target node when it connects
  3. Node pulls attachments and runs the engine in the project folder
  4. Permission requests (ask mode) round-trip to the website
  5. Output streams live; deliverables are uploaded back to the console
Stack
PythonFastAPISQLiteWebSocketWebCrypto (ECDHHKDFAES-256-GCM)Claude Code CLI
#remote-control#websocket#encryption#fastapi#agents#security