Skip to main content

meridian-cli

Let coding harnesses call each other. meridian-cli lets agents running in Claude Code, Codex CLI, and OpenCode spawn named specialist agents in the other harnesses, each with the model, cost, and tool environment you configured.

It is for people who already use more than one AI coding CLI and want one team of agents instead of separate chat sessions.

Early development. meridian-cli is not stable. Expect breaking changes in any release. If you need a stable workflow, this project is not ready for you yet.

Why

Good agentic coding is an allocation problem. Some tasks need the strongest model you have; some need cheap, parallel throughput; some need a specific harness feature such as sandboxing, tool behavior, context handling, or integrations.

Without meridian-cli, those choices are trapped inside separate CLIs. Switching harnesses means manually copying context between sessions and hoping the next agent understands what happened.

meridian-cli turns that handoff into a command. A caller can delegate to a named specialist, pass only the context that agent needs, and pick up the result from disk. Use the expensive model where judgment matters, use cheaper agents where throughput matters, and keep every agent inside the harness that fits the job.

One Harness Can Call Another

Demo placeholder: add a short terminal recording or screenshot here showing one coding harness spawning an agent in another harness, then collecting the result with meridian spawn wait or meridian spawn show.

Install

uv tool install meridian-cli

The package is meridian-cli; the command it installs is meridian.

Other methods
pipx install meridian-cli
pip install meridian-cli

From source:

git clone https://github.com/haowjy/meridian-cli.git
cd meridian-cli
uv tool install --force . --no-cache --reinstall

You need at least one harness installed: Claude Code, Codex CLI, or OpenCode.

Set Up a Project

meridian init by itself only bootstraps meridian-cli project config:

meridian init

To initialize Mars package content in the same step, use setup flags:

meridian init --add haowjy/meridian-dev-workflow --link .claude

For first-run onboarding, bootstrap can do setup + launch in one command:

meridian bootstrap --add haowjy/meridian-dev-workflow --link .claude

--add / --link setup flags cannot be combined with --dry-run.

Usage

Launch an interactive session:

meridian

Or spawn agents directly:

# Code on Codex, review on Claude
meridian spawn -a coder -p "Add rate limiting to the API endpoints"
meridian spawn -a reviewer --from p1 -p "Review the rate limiting implementation"

# Check on work
meridian spawn list
meridian spawn show p1

Agents route to their configured model and harness automatically. Each spawn gets a fresh context window with only the context it needs.

Architecture

graph TB
    User([You]) --> Primary["meridian<br/>(primary session)"]

    subgraph Packages
        Sources["git sources"] -->|"mars add/sync"| Store[".mars/"]
        Store -->|"materialize targets"| Tool[".claude/ · .cursor/ · .codex/ · .opencode/ · .pi/"]
    end

    subgraph Runtime
        Primary -->|"meridian spawn"| Router{"Model router"}
        Router --> Claude["Claude Code"]
        Router --> Codex["Codex CLI"]
        Router --> OpenCode["OpenCode"]
    end

    subgraph State[".meridian/"]
        Spawns["spawns + reports"]
        Sessions["sessions"]
        Work["work items"]
    end

    Agents --> Primary
    Primary --> State
    Claude & Codex & OpenCode -->|"meridian CLI"| State

Agent Packages

meridian-dev-workflow — A dev team: architects, coders, reviewers, testers, researchers, documenters, and the orchestrators that coordinate them.

meridian-base — Core coordination primitives. Included as a dependency of meridian-dev-workflow.

Docs

Development

uv sync --extra dev
uv run ruff check .
uv run pytest-llm
uv run --extra dev python -m pyright --warnings

See DEVELOPMENT.md for full dev setup.

Contributing

This project is not accepting external contributions at this time. The maintainer is keeping it closed to outside contributions until the codebase is stable enough to support them well. Bug reports and feedback are welcome as GitHub issues.

License

Apache 2.0

Metadata

Release files for meridian-cli 0.10.30

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for meridian-cli 0.10.30
File Size Uploaded Provenance
meridian_cli-0.10.30.tar.gz 1.3 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for meridian-cli 0.10.30
File Interpreter ABI Platform
meridian_cli-0.10.30-py3-none-any.whl Python 3 none any Details

Total release size: 3.0 MB

Release files / meridian_cli-0.10.30.tar.gz

Download URL meridian_cli-0.10.30.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
e4e0ffccba1f9bf7cb7765ac8139987ad1dd4d452bd3bf7823fa350f156cd7c3
BLAKE2b-256 checksum
How to use checksums
3ad7bc4f4cf1a2eac1f72f94d8411b02b534ed69c589c2a5bfd6c9aba97549e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / meridian_cli-0.10.30-py3-none-any.whl

Download URL meridian_cli-0.10.30-py3-none-any.whl
Size 1.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
ad06663934d4f8bcd3dfc48ea5faaf70d7c63599870f491495139e7b9c469d9a
BLAKE2b-256 checksum
How to use checksums
192a3658833afb3fe885dd58d73130c8ff1955a121686daf9260d4be72a66d0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Security for meridian-cli 0.10.30

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for meridian_cli-0.10.30.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.10.30 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page