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

A spatial board for your coding agents.

Every card is a live agent in its own git worktree. Run Claude Code and Codex in parallel, review the diff, merge.

DownloadDMG
Apple Silicon · macOS betaWe are live on Product Hunt
nurimen· mainDesk 1

Say what you want on this desk

or press⌘Kfor anything⌘⌥1desks⌘⇧Ggit

Bring in an agentOpen a browserWork on another machine
2 claude and a browser — or @ to talk to one⌘K
simulated

Draw the plan, then turn it into two agents and a preview with one sentence.

The app

One board.
Every agent, live.

Sketch the work, say it out loud, watch it get built. Each agent runs its own Claude Code session in its own git worktree — that is its real terminal up there, not a summary of one. Poke at the tool rail: it is the one that ships, flyouts and all.

Live agent streaming
Every read, edit, command and token, as it happens. No black boxes.
Diff review & merge
A file-by-file diff against main, in the app. Merge without a terminal.
Isolated worktrees
A branch and a worktree per card, 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, headless.

Sessios drives the Claude Code CLI you already have — headless, inside the card's worktree — and streams every event onto the board: current task, file edits, commands, tests, tokens, cost.

stream
native event feed
1 worktree
per running card
A sailboat crossing a deep blue fjord
CODEX

The second opinion.

Run the same task on OpenAI's Codex CLI, side by side with Claude, and pick the better diff. Vendor-neutral by design — adding an agent is one adapter, not a rewrite.

2+
vendors, one board
exec
non-interactive runs
A lone house under a snow mountain
TERMINALS & BROWSER

The whole workbench.

Open real PTY terminals and sandboxed browser panes right on the canvas, next to the cards. Editor, git panel, diff viewer — you never leave the board.

PTY
real terminals
⌘K
one palette for all of it
Three red-roofed houses around a mountain lake
MCP SERVER

Agents can drive the board.

Sessios ships a local MCP server: your agents can list cards, claim work, log progress, and submit for review. The board becomes a shared task queue for humans and agents.

7
MCP tools
127.0.0.1
local only
Workflow

From idea to merged branch
in four moves.

01

Describe

Type or speak the task. It becomes a card on the board — a flag planted on its own hill.

Fix the OAuth refresh loop
Fix the OAuth refresh loopQueued
fix-oauth-refreshClaude Code
02

Run in parallel

Each card runs its agent in a dedicated git worktree, on its own branch. Agents never collide.

fix-oauth-refresh
Running
$ bun test auth3 files
worktree 01 · isolated
canvas-drag-perf
Running
edit CanvasView.tsx+18 −6
worktree 02 · isolated
mcp-claim-tool
Needs review
21 passed, 0 failedtests
worktree 03 · isolated
03

Review the diff

Read the change file by file, with the agent's full activity, tests, tokens and cost alongside.

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 passed↑ 12.4k↓ 3.1k$0.0412
04

Merge & clean up

Merge the branch into main; the worktree removes itself. Or discard the attempt without a trace.

fix-oauth-refreshmerged
canvas-drag-perfmerged
mcp-claim-tooldiscarded
mainMerged
3 worktrees removed · working tree clean
Bring your own

Your CLIs. Your subscriptions.
Your machine.

No API keys, no cloud, no new bill. Everything runs locally and persists in SQLite on your disk.

A red-roofed cabin on a green hillside above a still mountain lake
Adapter SDK

One trait per vendor

An agent vendor is a single Rust adapter that maps its CLI stream to normalized events.

// adapters/mod.rs
trait AgentAdapter {
async fn run(task, tx);
async fn cancel(id);
}
MCP server · live

Agents can drive the board over local MCP: list cards, claim work, log progress, submit for review.

Local-first

Your repo never
leaves your machine.

Sessios is a desktop app. State lives in SQLite on your disk, agents run as local processes, and git operations stay inside per-card worktrees.

Worktree isolation
Agents only ever write inside their own worktree — never your checkout
1 branch / card
Bring your own auth
Vendor CLIs run with their existing login; Sessios never sees a key
0 keys stored
Full run journal
Every event of every run is persisted and replayable locally
SQLite, on disk
No cloudNo API keysNo telemetrymacOS · Apple Silicon
Run journalfix-oauth-refresh
23:41:07card_claimed · fix-oauth-refresh
23:41:12file_edit · src/auth/refresh.ts +18 −6
23:41:39cmd · bun test auth — exit 0
23:41:44tests · 21 passed, 0 failed
23:42:03merged into main · worktree removed

every event · replayable offline · never leaves the machine

Your first three agents
are waiting.

In beta for macOS (Apple Silicon) — driving the agent CLIs you already pay for.