Skip to main content

meridian

Orchestrate AI coding agents across Claude Code, Codex, and OpenCode. Each model runs through its native harness — meridian coordinates between them.

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

Why

Claude Code is (supposed to be) the best way to run Claude. Codex CLI is often the best way to run GPT. Each provider's harness is optimized for their models — sandboxing, tool use, context handling, everything (supposedly).

But you can only use one at a time.

Meridian lets agents spawn other agents across harnesses. The right model for each task, through the right runtime, with clean context per spawn.

Install

uv tool install meridian-cli
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 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

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meridian_cli-0.3.23.tar.gz (892.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meridian_cli-0.3.23-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file meridian_cli-0.3.23.tar.gz.

File metadata

  • Download URL: meridian_cli-0.3.23.tar.gz
  • Upload date:
  • Size: 892.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for meridian_cli-0.3.23.tar.gz
Algorithm Hash digest
SHA256 ae95a128afa024de8ad18af141c4e99fc366b41074e6f721bfdd2a308a01ce5e
MD5 736414f45013466c68030948a771aa65
BLAKE2b-256 76c793dd986a46e874d046c3e1c6fc2d92b34db2162fbf903677c242264684a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for meridian_cli-0.3.23.tar.gz:

Publisher: release.yml on haowjy/meridian-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meridian_cli-0.3.23-py3-none-any.whl.

File metadata

  • Download URL: meridian_cli-0.3.23-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for meridian_cli-0.3.23-py3-none-any.whl
Algorithm Hash digest
SHA256 424ac1a4ac871ca64117806c77eab405a101628379f0604e1acec0f67277397a
MD5 da9350ef5eb900feacc092b402442571
BLAKE2b-256 1c386609fac1253d3ceee412d8d1cdd54f57d43d8f6c2994c38bce2e7a351ed8

See more details on using hashes here.

Provenance

The following attestation bundles were made for meridian_cli-0.3.23-py3-none-any.whl:

Publisher: release.yml on haowjy/meridian-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.55

2 files

0.3.54

2 files

0.3.53

2 files

0.3.52

2 files

0.3.51

2 files

0.3.50

2 files

0.3.49

2 files

0.3.48

2 files

0.3.47

2 files

0.3.46

2 files

0.3.45

2 files

0.3.44

2 files

0.3.43

2 files

0.3.42

2 files

0.3.41

2 files

0.3.40

2 files

0.3.39

2 files

0.3.38

2 files

0.3.37

2 files

0.3.36

2 files

0.3.35

2 files

0.3.34

2 files

0.3.33

2 files

0.3.32

2 files

0.3.31

2 files

0.3.30

2 files

0.3.29

2 files

0.3.28

2 files

0.3.27

2 files

0.3.26

2 files

0.3.25

2 files

0.3.24

2 files

This release

0.3.23 This release

2 files

0.3.22

2 files

0.3.21

2 files

0.3.20

2 files

0.3.19

2 files

0.3.18

2 files

0.3.17

2 files

0.3.16

2 files

0.3.15

2 files

0.3.14

2 files

0.3.13

2 files

0.3.12

2 files

0.3.10

2 files

0.3.9

2 files

0.3.8

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.32

2 files

0.2.31

2 files

0.2.30

2 files

0.2.29

2 files

0.2.28

2 files

0.2.27

2 files

0.2.26

2 files

0.2.25

2 files

0.2.24

2 files

0.2.23

2 files

0.2.22

2 files

0.2.20

2 files

0.2.19

2 files

0.2.18

2 files

0.2.17

2 files

0.2.16

2 files

0.2.15

2 files

0.2.14

2 files

0.2.13

2 files

0.2.12

2 files

0.2.11

2 files

0.2.10

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.7

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.49

2 files

0.0.48

2 files

0.0.47

2 files

0.0.45

2 files

0.0.44

2 files

0.0.42

2 files

0.0.40

2 files

0.0.39

2 files

0.0.38

2 files

0.0.37

2 files

0.0.36

2 files

0.0.35

2 files

0.0.32

2 files

0.0.31

2 files

0.0.30

2 files

0.0.29

2 files

0.0.28

2 files

0.0.27

2 files

0.0.26

2 files

0.0.25

2 files

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