definition

pseudocoder puts your terminal workflow on your phone. monitor sessions, interact with agents, review diffs, manage PRs, and keep your mac awake -- it's not a replacement for your editor or cli, it's the mobile control layer.

architecture

  • host: go cli binary, runs on your dev machine (optional daemon mode)
  • transport: websocket server (default port 7070) with tls
  • storage: sqlite for sessions, decisions, and device records
  • analysis: tree-sitter for semantic parsing (Go, Dart)
  • client: flutter mobile app (ios + android) with immersive UI
  • discovery: optional mdns for lan pairing
  • keep-awake: prevents host machine from sleeping during sessions

session model

one host machine runs the session. paired devices monitor and interact with that same host; execution stays on the host.

  • multi-session support -- run multiple concurrent sessions
  • tmux attachment -- pseudocoder session attach-tmux <name>
  • session rename and clear history

permissions model

  • treat pairing as terminal-level trust.
  • use tailscale or a trusted private network only.
  • pairing codes are 6-digit, single-use, and expire after 2 minutes.
  • trust mismatch triggers a hard-block -- re-pair from scratch.
  • 5-attempt cooldown per minute to prevent brute force.
  • revoke unused devices with pseudocoder devices revoke.

network model

the host auto-selects its listen address: tailscale interface if available, then lan, then localhost. keep on private networks; never expose to the public internet. see security.

keep-awake model

keeps the host machine awake during active sessions.

  • active only while a session is running
  • respects battery state -- auto-disables below a configurable percentage (default 20%)
  • remote enable/disable via CLI: pseudocoder keep-awake enable-remote