Mova0.6 pre-release⌕
☰
home / docs / tools / mova-json

mova-json

Deterministic JSON edits, merges and rebinds for Mova configs, registries, groupant manifests and JSONL logs. It replaces ad-hoc Python helpers in routine work.

Writes keep every unedited byte. On load the tool detects the layout (pretty with any indent, as json.dumps(indent=N, ensure_ascii=False) and serde_json write it; compact; trailing newline) and checks that it reproduces the file exactly. Key order, number lexemes and string escapes are kept. A file whose layout it cannot reproduce is refused for writing unless --reformat is given; check reports it (exit 4). On 2026-11-05, 4793 of the 4863 tracked *.json files were reproduced byte for byte.

Build

CARGO_TARGET_DIR=... cargo build --offline --release --manifest-path tools/mova-json/Cargo.toml
cargo test --offline --release --manifest-path tools/mova-json/Cargo.toml

A standalone crate (own workspace and lock). Its only dependency is sha2. It parses JSON with its own ordered value type: enabling serde_json/preserve_order in the main workspace would reorder maps in every other crate.

Commands

mova-json check FILE
mova-json get FILE PATH [--raw]
mova-json set FILE PATH VALUE [--str]
mova-json del FILE PATH
mova-json push FILE PATH VALUE... [--str]
mova-json insert-before FILE PATH ANCHOR VALUE... [--str]
mova-json remove-value FILE PATH VALUE [--str]
mova-json replace-str FILE OLD NEW
mova-json rebind REPO MANIFEST... --paths P... [--add]
mova-json merge3 FILE... [--rebind-all]
mova-json rebind-groupant REPO BASE_COMMIT FILE...
mova-json jsonl-count FILE PATH
mova-json jsonl-filter FILE PATH=VALUE

Exit codes: 0 ok, 1 error, 2 usage, 3 merge conflicts, 4 check found a layout it cannot reproduce.

Limits

This page in Markdown → https://md.mova.elamur.ai/free/en/docs/tools/mova-json/