onethread

onethread icon: a river with tributaries flowing into it

onethread

You talk to one agent. Many coding agents work behind it.

One window to run all your AI coding agents: talk to an orchestrator, it runs Claude and Codex tasks in the background.

onethread · 0 running · 0 waiting for you

  1  Claude   5h: 55% left · week: 94% left
  2  Codex    5h: 92% left · week: 99% left

Start the orchestrator with [1]:

Talk to one window. Many agents work behind it.

Run ot, pick Claude Code or Codex, and talk the way you always do: “add auth to app-a”, “the settings bug in app-b is urgent”, “what’s running?”. That window is the orchestrator.

A queue across your repos

It keeps a queue of tasks across your repos and runs each task’s own agent session in the background: up to 10 at once, each in its own git worktree.

Step into any task

Say “let me talk to the medication task in pillbox” and a new iTerm2 tab opens inside that task’s real session. If its agent was working, it stops and tells you what it was doing.

Told at a natural pause

A worker finishes, gets stuck, fails or stops: the orchestrator tells you at a natural pause, never mid-thought.

Nothing destructive without you

Cancel, merge, push and accept ask you in the terminal or a macOS dialog. The model can’t answer for you.

Finishing is one word

Paste the published link or say “merge it”, and ot records the link, accepts, merges and cleans up. Your repo is never touched while it has uncommitted changes.

Survives restarts

A crashed worker is never mistaken for finished work.

You are the boss

ot me king, or anyone at all: the orchestrator becomes your right hand and builds your people from that world. ot me plain turns it off. Code, ids and errors stay plain.

Usage at a glance

The start screen shows how much of each provider’s usage limit is left, for 5 hours and for the week.

Costly commands take turns

Two Xcode builds never fight over your Mac.

Private by design

Local-first. No server, no account, no telemetry.

The Claude Code or Codex CLI you choose still needs its own provider setup.

Install

From source, in four lines:

git clone https://github.com/RogyMD/onethread.git
cd onethread
./ot install # links ot into ~/.local/bin (asks first)
ot # start screen: pick Claude or Codex

If your shell says ot: command not found, add ~/.local/bin to your PATH.

Want to see it first? This runs the full scenario with simulated agents and tabs, without spending quota:

python3 demo/run_demo.py

You need

macOS, Python 3.9 or newer (the python3 macOS ships is fine), git, and at least one of Claude Code or Codex CLI, installed and logged in.

Recommended

iTerm2: it opens task tabs and shows notifications. In Apple’s Terminal the tab’s bell marks the tab instead. Codex can’t be woken by onethread; it tells you on your next message.

Built with

For transparency, here is what onethread is made of.

Python 3 standard library

And one SQLite file. No server, no account.

Your own CLIs

The claude and codex CLIs you already use. Claude’s usage numbers come from agent-deck’s cache when it’s installed.

MIT licence

Where your data lives, the safety details, and how to remove it are in HOW-IT-WORKS.md.

Version 1.0.0 is used every day by its author with both Claude Code and Codex. Some real-tool checks are still outstanding; the evidence is in docs/STATUS.md.

Workers can run a repository’s test and build scripts. Only use repositories you trust.


Questions, bug reports, or ideas?

Join the community on Reddit: r/AIGarden