
Agent orchestration, designed for Rex.
A year of agent apps taught us what works: threads, and named agents. Axel brings them back to the terminal, on Rex, where your work already lives, on this machine or any other on your tailnet.
The foundation
Rex fixed the terminal. So orchestration can live there again.
The agent apps of the past year found the right ideas, then rebuilt the terminal badly to deliver them: their own windows, their own status lights, their own way to reach a remote machine. They had to. The terminal couldn't keep work alive, couldn't tell you a program was waiting on you, didn't know your other machines, and couldn't even scroll: a long agent conversation in a full-screen TUI, or inside tmux, is junk the moment you scroll up.

Rex, by Superlogical, starts from scratch on what a terminal session is: a durable session around the work itself, driven by software while you can always see and take control of it. Sessions survive disconnects and devices. Programs report when they're working, done or blocked on you, and Rex shows it on the tab. Servers join your tailnet on their own. Scrollback is the terminal's, not a TUI's redraw. And every bit of it is an API a program can drive.
Axel is just a program in a Rex pane, built on exactly that. A thread streams into its pane as plain terminal output, so you scroll it like anything else.
Threads
The unit of work is the thread, not the tab
The Codex app and T3 Code got this right. A thread is what you asked for and everything done about it: the conversation, every tool call, the diff, the agents that joined. A chat tab dies with its window; a thread doesn't.
That changes how you work. You run five things at once without losing any of them, come back tomorrow and resume, hand a thread to another agent, and settle it when it's done.
One worktree per thread, if you want it. Parallel agents on one repository don't step on each other. Or work in place, across several projects, or none.
Signed, so it travels. In Axel a thread is a log of signed events. Copies on two machines merge, which is what lets a thread run on the mini while your laptop sleeps.
Named agents
Specialists, not one agent that knows everything
Buzz gave agents names and keys; skills.sh made skills a one-line install. Put together, you stop prompting a generic assistant and start working with a team: atlas builds, nova reviews.
A second pair of eyes. The best review comes from someone who didn't write the code. atlas asks nova, a different agent with a different model and a review skill, and gets the answer as its next prompt. You see every message.
No skill bloat. Install sixty skills into one agent and every session pays for their descriptions, and picks the wrong one. Each named agent carries only its own.
Its own key, permissions and budget. Everything atlas does is signed by atlas. It reaches only the agents you allowed, can't loop, and stops at its daily budget.
Remote hosts
Ask, then close the laptop
Your Mac mini at home is on your tailnet, and Rex is on it. @atlas@mini runs atlas there, in the mini's own Rex session, or make the mini its default.
The thread streams to your laptop as if it ran locally. Close the lid on the subway; its branch and uncommitted work come home when you reconnect. A running session can even move between machines and keep its conversation.
Keys never leave home. The host gets a short-lived grant to sign for atlas, on one thread only.
Autopilot
No babysitting
Each agent has a mode for routine permissions, a guard for the things that are never routine, and a daily budget. When an agent does need you, Rex shows it on the tab, and the question waits in the thread and in your inbox.
Every token counted. Input, output and cache tokens, and the estimated cost, per thread and per agent.
No screen scraping. Status comes from hooks, the Agent Client Protocol or axel status. It runs Claude Code, Codex, OpenCode and any ACP agent.
Why not today?
Two commands. The first time, Axel checks your machine and helps you create your first agent.