Metadata-Version: 2.4
Name: meridian-governance-cli
Version: 0.1.0
Summary: Command-line client for Meridian Governance Router — not the unrelated 'meridian-cli' package also on PyPI
License-Expression: MIT
Project-URL: Homepage, https://github.com/knjpollard/meridian
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: meridian-client
Requires-Dist: requests>=2.28.0
Dynamic: license-file

# meridian-governance-cli

Scriptable command-line client for [Meridian Governance Router](https://dev-meridian.mytrustworthy.ai/), over [`meridian-client`](https://pypi.org/project/meridian-client/). Installs as the `meridian` command.

Not to be confused with the unrelated `meridian-cli` package also on PyPI.

Not a chat REPL and not `mta-cli` with the serial numbers filed off —
Meridian doesn't have anything to chat with or a persona to pick. This is
closer in spirit to the `aws` or `stripe` CLIs: subcommands over an API,
scriptable, no interactive loop required.

## Install

```bash
pip install meridian-governance-cli
```

## Get credentials

```bash
meridian signup          # new org — prompts for org name, email, password
# or
meridian login           # existing account — authenticates, mints a new key
meridian whoami           # confirm what's saved
```

Credentials live in `~/.meridian/config.json` (mode 600 — `api_key` is in
there in plaintext, same tradeoff `mta-cli` makes for its own token). Override
the location with `MERIDIAN_CLI_HOME` if you want more than one profile.

## Commands

```bash
meridian resolve my_agent [--project-id ID] [--json]
meridian explain ROUTING_LOG_ID
meridian audit ROUTING_LOG_ID --input-tokens N --output-tokens N

meridian projects create --name NAME [--quality Q] [--cost C] [--risk R]
meridian projects list

meridian agents create PROJECT_ID AGENT_NAME [--pinned-model M] [--quality-override Q] [--allowed-hubs h1,h2]
meridian agents list PROJECT_ID

meridian keys list [--json]
meridian keys create [--name NAME]
meridian keys revoke KEY_ID

meridian catalog
meridian logout
```

Every data-returning command without a dedicated human-readable format
(`explain`, `audit`, `catalog`, `projects list`, `agents list`) prints raw
JSON — pipe into `jq`.

## What this deliberately doesn't do

- No chat, no persona selection, no device integrations — those are `mta-cli`
  concerns (consumer AI Companion), not Meridian's. Meridian answers "which
  model should this agent use"; it has nothing to converse with.
- No hub/model/deployment registration commands — those routes aren't
  tenant-scoped today (console/house-key only), so a CLI command for them
  would just 403 for every real user. Added if/when that changes.
- No interactive REPL. If you want one, it'd be a thin layer calling the same
  functions `cli.py` already has — the commands are the primitive, not the
  shell.
