A wide green valley of meadows and hedgerows under a tall summer sky
sessios

Your AI coding agents, live in one terminal.

Every row is a live agent in its own git worktree. Run Claude Code, Codex, Gemini and OpenCode side by side in tmux, on Linux or macOS — review the diff, merge.

curl -fsSL https://sessios.app/install.sh | sh
Private beta · Linux & macOS ·
sessioscli — ~/code/billingsimulated

Simulated · click it to drive it with sessioscli's keys

The CLI

One terminal.
Every agent, live.

The Workspace on top, a row per agent with its state; the one you select runs live under it — its real pane, you type straight into it. Up to four side by side in tiles, a live graph of all of them on Tab. Click into the terminal above and drive it: the keys are the ones that ship.

Live state per agent
NEEDS YOU the moment a dialog is up, WORKING, DONE — with its last action, plan, tokens and time.
Review from the keyboard
d for the diff, m to merge, p to open a pull request. Never leave the terminal.
Isolated worktrees
A branch and a worktree per agent on Alt+W, away from your checkout.

Works with

  • Claude Code
  • Codex
  • opencode
  • Gemini CLI
Agents

Plug in the agents
you already pay for.

Sessios spawns the vendor CLIs installed on your machine, with your existing subscriptions and auth. Adding a vendor is one adapter — never a rewrite.

A figure in a red suit on a hilltop
CLAUDE CODE

The workhorse, in its own pane.

sessioscli starts the Claude Code you already have in a tmux pane of its own and listens to its hooks: the row turns NEEDS YOU the moment a permission is up, WORKING on every tool call, DONE when its turn ends — with its last action, its plan, tokens and time.

hooks
exact state, live
1 worktree
per agent, on Alt+W
A sailboat crossing a deep blue fjord
CODEX · GEMINI · OPENCODE

The second opinion.

Run the same task on Codex, Gemini or OpenCode beside Claude and keep the better diff. Their state is read off their screen, and answering one from the Workspace sends it its own keys.

40+
agent CLIs it knows
1 table
for all of them
A lone house under a snow mountain
TILES & GRAPH

The whole workbench, in tmux.

Up to four agents on screen at once, any of them zoomed over the window. Tab flips the Workspace to a live graph of every agent and what just changed. Six Alt chords go anywhere; everything else is one key.

4
tiles on screen
6
chords to go anywhere
Three red-roofed houses around a mountain lake
DETACH

Close the terminal. They keep going.

Agents live in sessioscli's own tmux server, apart from yours. Detach, close the terminal, come back tomorrow: they run on, and sessioscli brings every pane back as you left it, scrollback included.

tmux -L
a server of its own
0
agents stopped by a detach
Workflow

From idea to merged branch
in four moves.

01

Describe

Alt+N, pick a provider, type the task, Enter. It becomes a row in the Workspace — a flag planted on its own hill.

Fix the OAuth refresh loop
Fix the OAuth refresh loopWORKING
fix/oauth-refreshclaude-1
02

Run in parallel

Alt+W gives an agent its own git worktree, on its own branch. Start as many as you like: they never collide.

fix/oauth-refresh
WORKING
Bash bun test authplan 2/3
worktree 01 · isolated
fix/ledger-rounding
WORKING
Edit src/ledger.rs+18 −6
worktree 02 · isolated
docs/billing
REVIEW
21 passed, 0 failedtests
worktree 03 · isolated
03

Review the diff

d shows what the agent changed, file by file — its plan, last action, tokens and time a row above.

src/auth/refresh.ts+24−81 of 2 hunks
async function refresh(token: string) {
− const res = await post('/refresh', token)
+ const res = await rotate(token, { once: true })
+ if (res.replayed) return signOut()
return res.session
}
21 passed41k tokens22m
04

Merge & clean up

m fast-forwards the branch it was cut from and the worktree goes with it. p opens a pull request instead; /throw leaves no trace.

fix/oauth-refreshm · merged
fix/ledger-roundingm · merged
docs/billing/throw · dropped
main✓ fast-forwarded
3 worktrees closed · your checkout untouched
Bring your own

Your CLIs. Your subscriptions.
Your machine.

No API keys, no cloud, no new bill. sessioscli runs the agents you already installed, signed in the way you already are.

A red-roofed cabin on a green hillside above a still mountain lake
3 agents ready
  • Claude Code~/.local/bin/claudeyour login
  • Codex/opt/homebrew/bin/codexyour login
  • Gemini/usr/local/bin/geminiyour login

New API keys: 0New bill: $0

Provider registry

One entry per vendor

40-odd agent CLIs are known by name: their binary, their no-prompt flags, the login they need.

// sessios-core/src/providers.rs
Provider {
id: "codex",
yolo: &["--dangerously-…"],
auth: "codex login",
}
From any shell

Start, list, keep or close agents from a script, a hook or another terminal.

  • sessioscli spawn claude -m “add a /health endpoint”
  • sessioscli spawn codex --worktree
  • sessioscli ls
  • sessioscli worktrees
  • sessioscli keep 3f2a9c1e
  1. 01

    Your CLIs

    sessioscli starts the agent binaries already on your PATH. Update them the way you always do.

  2. 02

    Your subscriptions

    Runs count against the plan you already pay for. No new meter, no resold tokens.

  3. 03

    Your machine

    Every agent runs as a local process in a tmux pane, in a worktree on your own disk.

Local-first

Your repo never
leaves your machine.

sessioscli runs in your terminal. Its state lives in a folder on your disk, agents run as local processes in its own tmux server, and git stays inside per-agent worktrees. Your agents reach their own vendor exactly as they do without it: Sessios adds no server in between.

Your machine
~/code/acme-appmain
  • claude-1Fix the token refreshfix/oauth-refresh
  • codex-1Split the billing modulerefactor/split-billing
  • gemini-1Document the v2 APIdocs/api-v2
~/.local/share/sessioscliworktrees · settings
outboundyour code stays here
Message busTab · graph
  1. 23:41:07claude-1 → you · spawned · fix/oauth-refresh
  2. 23:41:12claude-1 → you · working
  3. 23:41:39claude-1 → you · plan step 2/3 done
  4. 23:41:44claude-1 → you · finished its turn
  5. 23:42:03m · merged into main · worktree removed
  6. waiting for the next agent

Every event on your screen, none of it sent anywhere.

Agents write in their own branch, never in your checkout.
1worktree per agent
Vendor CLIs keep the login they already have.
0API keys stored
Sessios only checks that your licence is live — and it holds a week offline.
0lines of code sent to us
  • No cloud
  • No API keys
  • No telemetry
  • Linux · macOS
On the list

Developers are
already in line.

72
developers on the waitlist
  • Mae@mergeconflict_mae · Oct 4

    Just joined the @sessiosapp waitlist. Four Claude Code terminals open and no idea which one is doing what. Ship it.

    joined the waitlist · #0012
  • tmux daddy@tmuxdaddy · Oct 4

    A board where every card is a real worktree. That's the mental model I've been faking with tmux for months.

    joined the waitlist · #0031
  • Aiko@aiko.ships · Oct 3

    Bring-your-own-subscription sold me. Not paying for my tokens twice. #buildinpublic

    joined the waitlist · #0007
  • Jonas@jonas_at_3am · Oct 3

    Signed up in ten seconds, shared my ticket in five. Hurry up and ship 🙏

    joined the waitlist · #0044
  • Priya@priyadiffs · Oct 3

    Codex and Claude on the same board, diff review included? That's my whole afternoon in one window.

    joined the waitlist · #0019
  • Hugo@hugo.localhost · Oct 2

    Local-first and no telemetry. Finally an agent tool I can run on client code.

    joined the waitlist · #0058
  • Rita@rebase_rita · Oct 2

    I want to watch six agents race each other on a canvas. Is that weird? Let me in @sessiosapp

    joined the waitlist · #0003
  • Wes@wes.worktree · Oct 2

    Git worktrees were always the answer, nobody gave them a UI. Waiting for my invite.

    joined the waitlist · #0026
  • Sam@segfault_sam · Oct 1

    Gemini CLI and OpenCode too? Okay, I'm officially in line.

    joined the waitlist · #0065
  • Kofi@kofi.kanban · Oct 1

    My Claude Max plan finally gets a cockpit. Ship it before I build a worse one myself.

    joined the waitlist · #0038
  • Lena@lena.prompts · Sep 30

    Spatial board for agents is exactly the thing I didn't know I needed until I saw the demo. #agents

    joined the waitlist · #0022
  • Theo@theo_greps · Sep 30

    Merge without leaving the app, worktree cleaned up after. Ticket shared, friends nagged. Your move @sessiosapp

    joined the waitlist · #0051
FAQ

Before you
join the list.

Something else on your mind? Write to hello@sessios.app.

How do I install it?

Run curl -fsSL https://sessios.app/install.sh | sh. The script picks the build for your machine, checks it against the release's SHA-256 sums (and its minisign signature when minisign is installed), and puts sessioscli in ~/.local/bin — nothing runs as root. Then sessioscli login to approve the computer in your browser, and sessioscli to open the session. sessioscli update keeps it current, signature checked.

What does it run on?

Linux (x86_64 and arm64, glibc 2.35 or newer) and macOS (Apple silicon and Intel), with tmux 3.3 or newer: Debian 12, Ubuntu 24.04, Fedora, Arch and Homebrew all ship one. Windows is not supported; WSL is untested.

How much does it cost?

Nothing during the private beta: access comes with an invite, and invites go out in waves to the waitlist. Shells never need one. Pricing for the public release is not set yet, and nobody gets charged without choosing to. Your agents are billed by their own vendors, exactly as they are today.

Which agents does it drive?

Claude Code, Codex, Gemini and OpenCode first — and some forty other agent CLIs it knows by name, from Amp and Copilot CLI to Aider and Goose. sessioscli providers lists the ones on your PATH. Claude Code reports its exact state through its hooks; the others' state is read off their screen.

Do I have to learn tmux?

No. sessioscli runs its own tmux server, apart from yours and your configuration, and binds six Alt chords to move between the Workspace and the agents; everything else is a plain key, and ? lists them. Already a tmux user? Your own sessions and keys are untouched.

Is my code safe?

sessioscli never sends your code anywhere. State lives in a folder on your disk, agents run as local processes, and an agent on a worktree only writes inside it — never your checkout. No telemetry, no API keys stored. Sessios itself only sees your sign-in and the licence check, which holds a week offline; your agents still reach their own vendor, exactly as they do without it.

How is it different from the Sessios desktop app?

Same core, same account: the CLI is Sessios for people who live in a terminal, in tmux instead of a window. The desktop lays agents out on a spatial board; the CLI gives you a live table of every agent with the selected one under it, up to four tiles, and a graph view — all from the keyboard.

Your first three agents
are one line away.

Linux (x86_64, arm64) and macOS (Apple silicon, Intel), with tmux 3.3 or newer. The script checks the release's checksums, installs to ~/.local/bin, and never runs as root.

curl -fsSL https://sessios.app/install.sh | sh
  1. 01curl … | shInstall sessioscli. sessioscli update keeps it current.
  2. 02sessioscli loginApprove this computer in your browser.
  3. 03sessioscliOpen the Workspace. Alt+N starts an agent.

Agents start
once you have access.

Private beta · Linux & macOS. Shells run from day one; agents need an invite, and invites go out in waves. Leave your email and we'll write when your seat is ready.