Command library
This page centralizes command surfaces that operators and advanced integrators use most. It is seeded fromnodalmerge/docs/operations-inventory.md and server runtime code.
Scope
- Server startup and lifecycle CLI flags
- Replay command usage
- Runtime operation families worth documenting for operators and advanced integrators
Server CLI flags
--store <path>
Enables durable SQLite + blob persistence rooted at path.
--metrics-addr <ip:port>
Starts metrics listener with Prometheus endpoint at /metrics.
--idle-timeout <seconds>
Idle-room eviction threshold. 0 disables eviction. Durable persistence is required for safe eviction.
--broadcast-capacity <N>
Room broadcast channel capacity.
--peer-rate-nodes <N>
Per-peer inbound node rate limit (nodes/second). 0 disables node limiter.
--peer-rate-bytes <MiB>
Per-peer inbound decoded-pack byte rate limit (MiB/second). 0 disables byte limiter.
--blob-gc-interval <seconds>
Blob garbage-collection sweep interval. 0 disables sweeper.
--blob-gc-grace <seconds>
Grace period before blob deletion after dereference.
--snapshot-interval <N>
Snapshot sweeper trigger interval by node count. 0 disables.
--snapshot-max-chain <K>
Max incremental snapshot chain depth before full snapshot fallback.
Replay command
nodalmerge-server replay <pack-file|->
Reads base64-encoded postcard pack input, replays, and prints resolved state plus canonical hash.
Optional policy timeline inputs:
--policy-timeline <json-file>--policy-timeline-json '<json>'
Token minting
nodalmerge token mint
RoomToken::sign
call with no server round-trip, so the room key seed never leaves the CLI
invocation. Useful for scripting locked-room access without standing up a
token-minting bridge service.
Output (NODALMERGE_TOKEN_JSON shape):
NODALMERGE_TOKEN_JSON for CLI/SDK calls that require a
locked-room token (for example --token-json on other nodalmerge query/replay
subcommands). See operators/security-and-auth for capability scope guidance —
prefer least-privilege --caps and short --ttl-secs for scripted/CI use.
WebSocket control-plane command families
The following command families are invoked over WebSocket and are capability-gated:- archive:
archive.describe,archive.validate,archive.import,archive.export - query/projection:
query.register,projection.build,projection.read,projection.invalidate,projection.list - replay query:
replay.read-range - topology:
topology.create-child,topology.describe-lineage,topology.list-children,topology.propose-promotion,topology.validate-promotion,topology.apply-promotion - room/policy/tick admin:
set-room-key,set-policy,start-tick,stop-tick,compact-room
Full runtime command inventory snapshot
Client-routed WebSocket commands currently recognized:subscribepackrequestmst-requestmst-doneblob-uploadblob-requestrequest-uploadblob-uploadedpresenceset-room-keyset-policyserver-infostart-tickstop-tickcompact-roomarchive.describearchive.validatearchive.importarchive.exportquery.registerprojection.buildprojection.readprojection.invalidateprojection.listreplay.read-rangetopology.create-childtopology.describe-lineagetopology.list-childrentopology.propose-promotiontopology.validate-promotiontopology.apply-promotionwebrtc-offerwebrtc-answerwebrtc-ice
nodalmerge-serverstartup with flags listed on this pagenodalmerge-server replay <pack-file|->--policy-timeline <json-file>--policy-timeline-json '<json>'
api-reference/websocket-commands.
Planned expansion areas
- Environment variable catalog (with defaults and precedence)
- Capability and auth-related runtime toggles
- Archive/query/topology operator workflows with example payloads
- Deprecation and migration notes per command/flag
Command entry template
For each command or flag, include:- Status (
stable,experimental,deprecated) - Purpose
- Accepted values and defaults
- Side effects and safety notes
- Metrics/logs to observe
- Version-introduced and version-changed metadata