Zenith CLI

A harness for long-running tasks: Claude Code or Codex becomes an orchestrator that launches workers and testers and decides when to stop

  • 403 ★ on the repository
  • Last commit
  • Apache-2.0
CLI

Broad access

Why this level

  • The orchestrator launches several worker agents that edit code and run commands in your project for days without you
  • Token spend grows with the number of workers and validators, and Claude Code or Codex subscriptions may hit their limits
All reasons and checks

intelligent-internet/zenith

Install

Manual install

cd zenith && uv sync && uv run zenith --help

Run from a clone of the Intelligent-Internet/zenith repository. It needs Python 3.11 or newer and uv.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The orchestrator launches several worker agents that edit code and run commands in your project for days without you
  • Token spend grows with the number of workers and validators, and Claude Code or Codex subscriptions may hit their limits

This is third-party code. Review the repository files before installing.

What it does

Zenith turns a coding agent into an orchestrator for missions that run for days or weeks. The authors start from the idea that in long work the main failure is premature completion: the agent declares the task finished before it is. So one orchestrator session reads the task state on every turn and decides what to do: launch workers and testers, register a reusable skill, replan or stop. Workers and testers run in their own contexts and report back, and the orchestrator integrates their results before the next decision. Zenith drives them over MCP and ACP, the Agent Client Protocol: Claude Code and Codex need separate ACP adapters from npm. Hermes is supported too. The `zenith init` command prepares your project's working folder and puts in it the orchestrator system prompt, templates for workers and validators and a set of skills. The set includes playbooks for engineering and optimization missions, a validator that tests against user expectations, a benchmark validator and an agent for browser work. Then you start Claude Code or Codex and ask it to read the orchestrator prompt.

Who it is for. For developers who hand an agent large multi-day tasks and want the work split among workers and the result independently checked before it is declared finished.

Good fit when

  • You want to give an agent a large multi-day task, such as building a service from a spec, and not have it stop halfway
  • The agent says "done" too early and you want an independent check of the result by separate validators
  • The task splits into parallel parts and each is worth handing to a separate worker
  • You need optimization against a benchmark where a validator checks the measurements before stopping
  • You want to try orchestration inside Claude Code or Codex with a /zenith command, which the agent creates from the README prompt

Not a fit when

  • The task is small and fits one session: orchestration with workers only adds cost
  • You have no subscription or keys for Claude Code, Codex or Hermes: Zenith provides no model, it launches your agents
  • You want a ready product with a graphical interface: this is a Python package with a `zenith` command and an MCP server
  • The budget is strict: in the authors' report the mean cost of one long task for Zenith is 175.68 dollars

Example request

First read .claude/orchestrator_prompt.md and act as the Zenith orchestrator. The task: implement the queue service from the spec in docs/spec.md, check it independently and stop only when all requirements are met.

Limitations

It needs Python 3.11 or newer, the uv manager, Node.js 22 or newer and one of the agents: Claude Code, Codex or Hermes. For workers and validators on Claude and Codex you install ACP adapters from npm separately: `@agentclientprotocol/claude-agent-acp` and `@agentclientprotocol/codex-acp`. Installation goes from a repository clone with `uv sync`, and Zenith is not published to a package registry.

Zenith works on your project and not on its own directory: the working folder is set by the `--workspace-dir` parameter of the `zenith init` command. It includes no models, so token use and cost depend on your subscriptions. The price and quality figures come from the authors' own report and need independent confirmation.

The project code is released under the Apache 2.0 license and the report and figures under CC BY 4.0. The package version in pyproject is marked 0.1.0 and beta.

How to disable. Delete from the project's working folder the files that `zenith init` created, including the .claude or .codex directory with the orchestrator prompt and the /zenith skill if you made one. Then stop the Zenith process and delete the repository clone.

FAQ

How do I install Zenith and run it with Claude Code?

Clone the repository, run `uv sync` in the zenith folder, install the claude-agent-acp adapter through npm and run `uv run zenith init --workspace-dir path_to_project --agent claude`. Then open Claude Code in the project folder and ask it to read `.claude/orchestrator_prompt.md`.

What is RALPH and how is Zenith better?

RALPH is a simple scheme in which every new session compares the project state with the original requirement again. By the authors' report it is the strongest simple baseline but expensive and with no principled stopping rule. Zenith makes the loop adaptive: the orchestrator decides itself about workers, validation, replanning and stopping.

Which agents does Zenith support?

Claude Code, Codex and Hermes. Claude Code and Codex need ACP adapters from npm. The exact list of supported providers is in the `providers.py` file in the source.

Can I hand the installation to the agent itself?

Yes, the README has a ready prompt for Claude Code and Codex. The agent reads the README, installs dependencies, starts Zenith with `uv run zenith` and creates a `/zenith` skill for every agent it finds.

Can I trust the comparison results in the README?

Treat them as the authors' claim. The ranking table and the ablation data come from their own report and the Frontier SWE leaderboard. For your own tasks run a comparison of your own on a small project.

Discussion

No questions or reviews yet.

CLI tools

An orchestrator for agents: the workflow is defined in code, every step is enforced, key points need human approval and decisions go into an immutable journal

CLIBroad access1.9KRepository stars

An orchestration plugin for Claude Code, Codex, Gemini CLI and Qwen Code: 39 specialists, parallel subagents, persistent sessions and standalone audits

PluginBroad access488Repository stars

A process kit for agents: a skill router, project memory in a DEV folder and result verification before saying done.

CLIExtended access63Repository stars

A template sets up a multi-agent environment in a repository: Claude Code conducts Sonnet and Opus subagents and calls Codex CLI.

WorkflowBroad access198Repository stars

A local Node.js orchestrator that runs Codex, Claude Code, Gemini and OpenCode as one team led by an operator agent

CLIBroad access77Repository stars

One runtime for Claude Code, Codex, OpenCode and more: a run counts as done only when checks the agent did not write pass

CLIBroad access606Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialRepository starsMain difference
Zenith (this card)no403
oh-my-claudecodeno40,789a Claude Code plugin with teams, roles and autopilot rather than a harness for multi-day missions with validators
comandano334runs YAML workflows for Claude Code, Codex and Gemini CLI in a loop until a check passes

README in short

The README opens with a summary of the technical report From RALPH to Zenith: five harness designs tested across eight long tasks. Next come two ways to install, the orchestrator diagram, tables of results and costs, the repository layout and a citation entry. A separate guide inside the zenith folder is shorter and holds only the run commands.

README badge

Report a problem