How Arc0 Works
Understand the architecture behind Arc0—how the CLI, tunnel, and mobile app work together to connect you with your coding agents.
No modifications to your existing tools required—Arc0 observes and relays without changing how your agents work.
Architecture Overview
┌─────────────────────────────────────────────────────────────────┐
│ Your Workstation │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Arc0 CLI │───▶│ tmux │───▶│ Claude Code │ │
│ │ (daemon) │◀───│ session │◀───│ Codex, etc. │ │
│ └──────┬───────┘ └──────────────┘ └──────────────┘ │
│ │ │
└─────────┼───────────────────────────────────────────────────────┘
│ WSS (WebSocket Secure)
│ Arc0 Tunnel
▼
┌─────────────────────────────────────────────────────────────────┐
│ Arc0 Apps (iOS / Android / Web) │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Monitor │ │ Prompt │ │ Review │ │
│ │ Progress │ │ & Direct │ │ Changes │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘Components
Arc0 CLI
The CLI runs on your workstation and does three things:
- Attaches to tmux sessions — It watches your terminal sessions where coding agents run, capturing their output in real-time
- Runs the Arc0 Daemon — A background process that handles session synchronization, parses agent output, and manages the tunnel connection
- Streams via Arc0 Tunnel — Establishes a secure WebSocket connection to your phone
Arc0 Tunnel
The tunnel provides secure connectivity between your machine and your phone:
- WSS (WebSocket Secure) — All traffic is encrypted end-to-end
- No port forwarding required — Works behind NAT, firewalls, and corporate networks
- Low latency — Optimized for real-time back-and-forth communication
Arc0 Apps
The Arc0 mobile apps (iOS/Android) and webapp (PWA) receive the stream from your CLI and let you:
- Monitor progress — Watch your agent work in real-time
- Send prompts — Guide your agent with direction and clarification
- Approve plans — Review implementation plans before coding starts
- Track changes — See every file modification as it happens
- Review code — Approve or request changes to diffs
The Flow
1. Start Your Agent
Run your AI coding assistant as you normally would—in a tmux session:
tmux new -s dev
claude # or codex, gemini, etc.2. Arc0 CLI Captures the Session
Arc0 CLI automatically detects and attaches to your tmux session:
arc0 startIt captures:
- Agent output and responses
- Questions and prompts from the agent
- File changes and diffs
- Plan proposals and tool usage
3. Real-Time Sync to Your Phone
Everything streams to your phone over WebSocket:
- Instant delivery — See agent activity as it happens
- Bidirectional — Your responses go back just as fast
- Persistent — Connection survives brief network interruptions
4. You Direct, Agent Executes
From your phone, you're in control:
- Approve the agent's plan to proceed
- Send a prompt to adjust direction
- Review a diff and approve or reject
- Monitor progress while you're away
Why tmux?
Arc0 uses tmux for session capture because:
- No CLI modifications — Works with Claude Code, Codex, Gemini CLI as-is
- Session persistence — Your agent keeps running even if you disconnect
- Universal — Works on macOS and Linux out of the box
- Battle-tested — tmux is reliable, fast, and widely used
Don't use tmux yet? It's easy to install—brew install tmux on macOS or apt install tmux on Linux.
Security
Your code stays on your machine. Arc0 only streams:
- Agent conversation (prompts and responses)
- File diffs (changes, not full files)
- Session metadata (status, progress)
The tunnel encrypts everything with WSS. No data is stored on Arc0 servers—it's a pass-through connection between your machine and your phone.
See Security for full details.