lazybox --about

A terminal TUI — reactive GitHub inbox + agent fleet, keyboard-driven.

Let the work come to you.
Stay in the terminal.

Events surface across your repositories while coding agents work in parallel, each in its own managed worktree and embedded terminal.

Runs in your terminal. No Electron. No tab farm.

GitHub workspaces on the left; live agent terminals on the right.

Homebrew Prebuilt · recommended

$brew install AntoineToussaint/lazybox/lazybox
Other options: installer script or advanced source build

Installer script Prebuilt

$curl --proto '=https' --tlsv1.2 -LsSf https://github.com/AntoineToussaint/lazybox/releases/latest/download/lazybox-tui-installer.sh | sh

Advanced / from source

$cargo install --git https://github.com/AntoineToussaint/lazybox --locked lazybox-tui-boot

Compiles the current main branch (HEAD) locally. Requires Rust 1.88+, Zig 0.16.0, and a native C/C++ toolchain.

See every install method and platform.

Real terminal, real workload

A few of the workflows I run all day.

snippets
Snippets — reusable prompts fired into any agent, most-recently-used first.
github controls
GitHub controls — merge, auto-merge on green, automation policies, reviewers and labels, all from one g menu.
worktree + agent
Transparent worktrees — every task gets its own git worktree and a live agent, managed for you.
github auto-work
GitHub-driven work — CI failures, reviews and issues surface in the inbox; tag one and an agent picks it up.
Claude Code · Codex · Cursor · custom CLIs Transparent task worktrees Stable, accurate agent status Restart-safe tmux sessions]N Workflow memory

An inbox, not a dashboard

Built to run a lot of agents at once

Many agents in flight, one calm inbox — and it tells you which one needs you.

A fleet, not a tab

Every PR and issue becomes a workspace with its own agent. Run dozens at once — each in its own embedded terminal — and flip between them instantly without losing your place.

It pings you when an agent is stuck

The instant an agent hits a permission prompt or needs a decision, lazybox fires a native desktop notification and flags the row. Press ! to jump straight to it. Stop babysitting terminals.

Start a fleet by tagging issues

Drop a lazybox:claude label on GitHub issues you authored or are assigned to — across one repo or many — and lazybox opens each worktree and spawns an agent on the next sweep. No TUI, no terminal. Tag an eligible triaged backlog and come back to dozens of agents already working. An optional high, medium, or low issue label picks the model and effort.

Worktrees, handled

Every task gets a fresh, isolated git checkout — created automatically. No branches to make, nothing to stash, no collisions between agents running side by side. You never think about it.

GitHub and Linear, one inbox

PRs, issues, and Linear tickets surface the same way, with read/unread tracking. Mirror activity to Slack — and kick off work with an @lazybox mention.

Point once. lazybox routes the work

Press w w and lazybox turns the focused issue, CI failure, conflict, or selected review comments into the right brief. It reuses the running agent or starts your default in the task worktree. A GitHub high / medium / low tag picks its configured model and effort.

Automation you can see

Press g p for one policies surface: merge on green, auto-fix CI and conflicts, and GitHub auto-merge status — every switch and override visible in one place.

Terminals fail visibly

Choose splits or tabs, recall the last prompt after a restart, and inspect the final screen when an agent crashes or fails to start. Clean exits disappear; failures never do.

Route agents through your gateway

Set one llm_gateway_url and every spawned agent points at your own LLM gateway — lazybox injects the right base-URL env var per provider (Anthropic or OpenAI). Your API key goes straight to the gateway; the daemon never sees it.

Local or remote

Runs as an in-process daemon by default, or split client and daemon over a Unix socket and forward it across SSH — heavy lifting on a remote box, inbox on your laptop.

How it works

From zero to a fleet in three steps

Wire up your sources, spawn agents in parallel, and let the inbox triage itself.

1

Connect your sources

Point lazybox at your GitHub repos and Linear. Every PR, issue, and ticket lands in one keyboard-driven inbox — grouped, tracked, read/unread.

owner/name

2

Spawn agents in parallel

Press a c, a x, or a u for Claude Code, Codex, or Cursor — or w w to let lazybox pick the brief. Each gets its own isolated checkout. Run as many as you like.

a c · a x · a u · w w

3

Step in only when needed

Agents work on their own. lazybox notifies you the moment one needs a decision — jump to it with !, unblock it, and move on.

!

Spend your attention where it changes the outcome.

Start with a task, keep its context through Git and GitHub, and let the reactive inbox bring you back only when needed.

Open source, built in public

Support lazybox.

If lazybox saves you time, a sponsorship helps fund maintenance, releases, and the infrastructure behind the project. The open-source TUI and daemon remain available to everyone.

♡ Sponsor on GitHub