The mneia command, in full.

The CLI is a thin surface over the same core the MCP server uses, so the two return the same answer for the same input. Every command takes --json and --help.

7 min read · 6 sections

Commands

CommandWhat it does
mneia initAttach this repository to a Mneia project and import its existing constraints
mneia brief "<task>"Print the rehydrated context slice for a stated task
mneia checkpointCapture the session into project memory at a boundary
mneia logShow the decision history for this project, newest first
mneia statusShow what is stale, disputed, or unanswered in this project

handoff and pickup ship in M2; conflicts ships in M4. Running them today returns a usage error naming the milestone rather than a generic "unknown command", so you can tell "not yet" from "you typed it wrong".

mneia init

usage
mneia init [--workspace <slug>] [--project <slug>] [--endpoint <url>] [--force] [--json]
FlagEffect
--workspace <slug>The workspace to attach to. Lowercase letters, digits, and single - _ . separators
--project <slug>The project slug. Derived from the directory name when omitted
--endpoint <url>Persist a non-default API URL into .mneia/config.json
--forceRebind a repository that is already bound, or overwrite a config that will not parse

Constraints are imported from AGENTS.md, CLAUDE.md, and .cursor/rules if they exist, and a generated section is written back into AGENTS.md inside a fence Mneia owns. If that fence has been damaged by hand, init stops and says so rather than guessing where the boundary was.

mneia brief

usage
mneia brief "<task>" [--budget <tokens>] [--json]

The terminal-side rehydration. State the task in the words you would use to a colleague — the slice is chosen for that task, so "fix the ledger rounding bug" and "migrate the ledger schema" return different context from the same project.

--budget caps the slice in tokens. Load-bearing active constraints are included regardless of what you set it to.

mneia log and mneia status

usage
mneia log [--limit <count>] [--since <duration|date>] [--json]
mneia status [--json]

log is the decision history, newest first — what was decided, by whom, and what it superseded. --since takes a duration such as 7d or an absolute date.

status is the health of the project rather than its history: what is stale, what is disputed, and which open questions have been sitting unanswered. It is the command worth running before a planning meeting.

Environment variables

VariableDefaultWhat it does
MNEIA_TOKENThe auth token. Wins over the credentials file; required in CI
MNEIA_API_URLhttps://api.mneia.devThe API endpoint. Wins over the value in .mneia/config.json
MNEIA_TELEMETRYonSet to off, false, no, none, or 0 to opt out entirely
MNEIA_CREDENTIALS_PATH~/.mneia/credentialsAbsolute path to the credentials file
MNEIA_DEBUGSet to 1 to print the underlying stack trace on failure

An unrecognised MNEIA_TELEMETRY value is an error, not a fallback. A typo in an opt-out must not quietly leave telemetry on.

Output and exit codes

Every command takes --json, and the JSON is the contract — human output may be reformatted, the JSON shape may not. Errors carry a kind, a message naming what was expected and what was received, and a fix.

CodeMeaning
0Success
1Failed — the operation was understood and did not succeed
2Usage — the invocation was wrong. Nothing was read or written
3Not configured — no .mneia/config.json for this directory
4Auth — no usable token
5Network — the API could not be reached. Your token was not the problem

Separating 3, 4, and 5 is what lets a CI step retry a network failure and fail fast on a missing binding, instead of treating every non-zero exit as the same event.