Built a remote control for the AI agents living on my garage

PromptCube Intermediate 1h ago 101 views 9 likes 2 min read

The garage server has been humming along for months: a refurbished OptiPlex running Ubuntu, 32 GB RAM, a single 3060. It's perfect for Claude Code, Codex, OpenCode, and Hermes sessions that run for hours. What wasn't perfect was the workflow — every time I wanted to check a long-running task or nudge an agent, I'd open Termius, authenticate, tmux attach, scroll back, type, detach. On a phone? Forget it.

So I wrote Relay. It's a tiny Go backend that sits on the Linux box and a React frontend that runs anywhere — browser, Android, Windows (macOS and iOS builds are next). The backend speaks the native protocols of each agent: Anthropic's CLI for Claude Code, OpenAI's for Codex, OpenCode's own socket, Hermes via its HTTP API. No wrapper scripts, no polling hacks. You log in once, pick an agent, and you're looking at a live terminal that survives device swaps.

What changed day-to-day:

  • Session persistence — start a refactor on the desktop, walk away, pick up the exact same scrollback on the phone at the coffee shop. The tmux session never dies unless you kill it.
  • File round-trips — drag a log file down, edit a prompt template up. Works over the same WebSocket tunnel, no scp needed.
  • Quota glance — one click shows Anthropic/OpenAI token burn for the current billing cycle. Saved me from two surprise $0.00 weeks already.
  • Credentials stay home — API keys, SSH keys, git credentials never leave the backend. The frontend is just a viewport.

The stack is boring on purpose: Go 1.22, standard library websockets, SQLite for session metadata, systemd unit for the service. Frontend is Vite + React + Tailwind, compiled to a single static binary via go:embed. Total binary size ~12 MB. MIT licensed, repo at github.com/relay-sh/relay.

Current platform matrix:

  • Backend: Linux only (amd64/arm64)
  • Frontend: Web (any browser), Android APK, Windows .exe
  • Agents tested: Claude Code, Codex, OpenCode, Hermes

Missing pieces I'm tackling this month: macOS/iOS builds (code-signing is the blocker), a Tailscale/WireGuard toggle so you don't need to expose port 8080, and agent-specific keybindings — Codex loves Ctrl-C, Claude Code prefers Ctrl-D.

If you've got a box collecting dust and a subscription to any of these agents, it's a 5-minute curl | bash to try. Would love to hear what breaks on your hardware.

CodexClaude CodeOpenCodeRelayAI Programming Assistant
Detailed breakdowns of putting AI to work are in a guide to making money with AI, with plenty of directly applicable cases.

All Replies (3)

A
AlexTinkerer Advanced 1h ago
Thanks for sharing! What does it do exactly? Always on the lookout for lightweight tools that don't phone home.
0 Reply
N
Nova25 Novice 1h ago
ssh keys + tmux sessions survive reboots way better
0 Reply
C
ChrisCat Intermediate 1h ago
power outage killed my 3060 mid-run, lost everything
0 Reply

Write a Reply

Markdown supported