The PTY belongs to the window
Close the client, lose the shell. Restart the machine, reconstruct the session from saved commands and hope the agent can resume.
Alpha · macOS + Linux
Yolo keeps every coding-agent PTY alive when the TUI closes, the Host restarts, or you reconnect from another machine. Start Claude Code or Codex in a normal shell. Detach. Pick it up later.
MIT licensed · Rust + Bazel · native client.
$ yolo
hub local · 3 agents · 2 shells
● claude running ~/src/api
approval needed · 12s
● codex running ~/src/web
● shell idle ~
$ Ctrl-B d
detached. workers stay alive.
$ yolo attach
✓ runtime epoch preserved
$
The problem
Most terminal workspaces stop at tabs and panes. Yolo starts one level lower: each PTY has an owner that is independent of every client and survives client, Host and Worker replacement.
Close the client, lose the shell. Restart the machine, reconstruct the session from saved commands and hope the agent can resume.
The client is a view. The Host is replaceable. The Worker owns the PTY, output journal and process tree; recovery uses exact runtime epochs.
What you get
Yolo does not turn Codex or Claude Code into a structured API. It supervises the real terminal and adds only the provider evidence needed for status, interaction and native resume.
One Worker per terminal. Detach, crash or replace the client and Host without hanging up the process tree.
Every tab starts your shell. Yolo observes what you launch and binds the provider after its authenticated hook handshake.
After a reboot, a validated provider binding runs the provider's own resume command. Generic shells stay honest about needing recreation.
Explicit writer leases serialize input. Observers attach without stealing control; takeover is a deliberate action.
One Hub can expose local and peer machines. Shared layouts stay separate from private focus, zoom and Chat drafts.
The TUI is first-party. The Bun web client and trusted plugins consume the same public protocol; none of them owns a PTY.
Architecture
Rust owns terminal identity, leases, PTYs, journals, supervision and recovery. A single executable supplies each role; clients connect through the Hub public protocol.
Quickstart
Install the latest stable release with one command, or build the same executable from source with Bazelisk. Cargo is dependency metadata; there is no second build system.
# latest stable release
curl -fsSL https://raw.githubusercontent.com/AgentsMesh/YoloShell/main/scripts/install.sh | sh
# or build from source; Bazelisk is pinned by .bazelversion
git clone https://github.com/AgentsMesh/YoloShell.git
cd yolo
bazel build --jobs=1 //core:yolo
bazel run --jobs=1 //core:yolo
# inside the TUI: start an agent normally
claude
# detach and reconnect later
Ctrl-B d
yolo attach
The TUI, Host, Hub, relay, broker and Worker roles all come from the same Rust binary.
Launch any TUI. Yolo recognizes supported agents after launch and keeps provider evidence separate from terminal bytes.
Detach, reconnect, replace the Host, or use the browser client. The Worker and PTY stay put.
Web client
The reference plugin projects the Hub catalogue, live xterm.js terminals, Chat history, typed interactions, creation jobs and archive history over an authenticated same-origin session.
Plain HTTP plus a bearer token is a trusted-LAN mode. Browsers never receive the management socket, raw Hub ID, lease grant, creation capability or Hub token.
AGENTS
● claude
● codex
SHELLS
● api
NEEDS YOU
● approval
Providers
Claude Code and Codex are the accepted Alpha targets. Gemini CLI, Qwen Code and Grok Build are experimental adapters with hooks and native resume.
Status
Yolo is usable for daily terminal work on Apple Silicon macOS and Linux. The Alpha contract lists the accepted providers, recovery guarantees, deferred remote workflows and the verification approach. Read it before depending on a lifecycle promise.