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