Open source · MIT licence
Steer a fleet of coding agents through one conversation.
Spartito runs Claude Code and Codex agents headless and in parallel, each in its own git worktree and branch, across several projects. You talk to one orchestrator agent, Maestro, instead of managing many terminal sessions by hand.
web-appidle · 2 agents working
fix-login-3f2arunningorch/fix-login-3f2asearch-9c1erunningorch/search-9c1eapiidle · 1 agent working
rate-limit-b7d0done ↑orch/rate-limit-b7d0reviewer-41aarunningin the worker's worktreedocs-sitedecision waiting for you
guides-2c7edone ↑orch/guides-2c7eFeatures
Many agents, one place to steer them
Every agent is a headless Claude Code or Codex session with a role. The details are in the documentation.
-
Project leads and workers
Maestro briefs one lead per project; each lead starts and coordinates its own agents. They run headless (
Concepts: leads, roles, worktrees →claude -p,codex exec) in parallel, each in its own git worktree and branch. -
Packaged roles
- orchestrator
- lead
- planner
- worker
- reviewer
- tester
A role is a Markdown prompt with a few settings, so your own role is a Markdown file.
Roles in the configuration docs → -
Results travel up
Leads hand out work and end their turn. When their agents are done, the parent is woken with their answers.
Results and notifications for agents → -
Decisions wait for you
What needs your decision lands in one list across projects; the agent carries on with what does not depend on it.
Decisions → -
Notifications that lead somewhere
When a decision starts waiting, or an agent you wrote to is done with all of its agents. A click opens it.
Desktop notifications → -
A task board per project
- idea
- ready
- in_progress
- done
Kept up to date by you and the agents, with every project's board in one view.
Task board → -
You merge, not the agents
A worker commits on its own branch,
Worktrees and branches →orch/<agent-id>. Agents do not merge: you review the branch and merge it yourself.cd ~/src/my-app git log --oneline main..orch/fix-login-3f2a git merge orch/fix-login-3f2a -
Tokens and cost
Every turn records its tokens and cost, shown per agent and as totals. (Codex reports no cost.)
Tokens and cost → -
Model and effort
Per tier and per provider, globally or per project, with overrides for a single agent.
Model and effort → -
No daemon
Every turn is its own process; all state is in one SQLite database. The command line, the dashboard and the desktop window are views on it.
Architecture →
Also: automatic compaction of long conversations, automatic archiving of finished agents, and keeping the machine awake while agents work.
How it works
From one goal to reviewed branches
-
You describe the goal
to Maestro, the orchestrator agent, in the dashboard or the desktop window.
-
Maestro briefs the lead
One long-lived lead per project works in its main checkout, knows the codebase and splits the work into tasks.
-
The lead starts agents
Workers get their own worktree on a branch
orch/<agent-id>; a reviewer or tester can work in a worker's worktree. -
Answers travel up; you merge
The lead reports to Maestro, which reports to you. You review the branches and merge them yourself.
Prefer the terminal? spartito chat opens the orchestrator as
an interactive Claude Code session: a separate conversation with the same tools and the
same state.
Install
Install and start
Spartito runs on macOS and Linux and installs with uv, straight from its repository.
macOS
-
Prerequisites
Python 3.14, uv,
git, and theclaude(Claude Code) CLI, installed and logged in; optionally thecodexCLI. -
Install
uv tool install "spartito[app,menubar] @ git+https://github.com/foszto/spartito"The extras add the native window of
spartito appand the menu-bar item. Or install from a checkout. -
Start
spartito service install # the dashboard, in the background and at login spartito app install # a launcher with Spartito's own name and icon spartito app # or open Spartito like any applicationThe dashboard is at http://127.0.0.1:8787. It has no login: keep it on the loopback address (the default).
-
Register a project and talk to Maestro
spartito project add ~/src/my-app, then select Maestro in the dashboard and describe the goal.
Linux
-
Prerequisites
Python 3.14, uv,
git, and theclaude(Claude Code) CLI, installed and logged in; optionally thecodexCLI. -
Install
uv tool install "spartito[app] @ git+https://github.com/foszto/spartito"The extra
appadds the native window ofspartito app; on Linux it pulls in PyQt6, which is GPL-3.0-only (optional dependencies). Themenubarextra installs nothing on Linux. Or install from a checkout. -
Start
spartito service install # the dashboard, in the background and at login spartito app install # a launcher with Spartito's own name and icon spartito app # or open Spartito like any applicationThe dashboard is at http://127.0.0.1:8787. It has no login: keep it on the loopback address (the default).
Notifications come from an open dashboard page, else from
notify-send; a click opens the agent or decision with libnotify 0.7.10 or later. -
Register a project and talk to Maestro
spartito project add ~/src/my-app, then select Maestro in the dashboard and describe the goal.
Windows
Windows is not supported yet
Spartito's process handling relies on POSIX process groups and sessions. Windows support is on the roadmap; native Windows or Linux under WSL is an open question there.
Would you use it? Ideas and comments are welcome in the issues.
Every command, the direct command-line workflow and the details per platform: the README and the usage guide.
Docs
Documentation
It all lives in the Spartito repository.
- Concepts Orchestrator, leads, roles, worktrees, turns, results.
- Usage Every command and option, and the dashboard.
- Agents MCP tools, queue, dependencies, notifications, decisions, cost.
- Configuration Model and effort, settings, loadout, roles, providers.
- Task board The task board across projects.
- Desktop app Background service, installable page, notifications, menu bar.
- Roadmap Where Spartito is heading: a direction, not a schedule.
- Contributing Setup, checks, conventions, pull requests, bug reports.
- Issues Bug reports, questions and ideas.
Developed and used on macOS; Linux is supported; Windows is not supported. Details in the architecture notes and, per desktop feature, in the desktop documentation.