JouleBridgeDocs
Reference

CLI Reference

Every command with example input/output

CLI Reference

All commands are run from D:\Project_files\master-doc\companies\joulebridge\products\bridge-kernel.

If you do not pass --config, Bridge Kernel uses its default config resolution behavior. For predictable results, pass --config bridge.yaml explicitly in every command.

1. Status

cargo run --bin bridge-node -- ctl status --config bridge.example.yaml

Output:

Kernel Status:
  Node ID: bridge-node-local
  Environment: dev
  Key provider: software
  Ledger path: bridge-ledger.db
  Ledger events: 12
  Ledger unsynced: 3
  Last heartbeat: 2026-02-26T21:10:12Z
  Runtime status: degraded

2. Keys (View current key)

cargo run --bin bridge-node -- ctl keys --config bridge.example.yaml

Output:

Keystore path: bridge-keystore.json
Provider: software
Key ID: key-93ac1f2e2ab1d001
Key Version: 4
DID: did:joulebridge:key-93ac1f2e2ab1d001
Public key: 9f8a...

3. Keys (Rotate key)

cargo run --bin bridge-node -- ctl keys --rotate --config bridge.example.yaml

Output:

Rotated key (software): id=key-a7d3..., version=5, created_at=1772148123

4. Ingest one manual event

cargo run --bin bridge-node -- ctl ingest --sector logistics --type handover --source scanner-gate-1 --payload-file bridge.sample-event.json --config bridge.example.yaml

Output:

Event ingested: evt-4d83bf2c...
Proof hash: 4fd0a00f...

5. Ledger summary

cargo run --bin bridge-node -- ctl ledger --config bridge.example.yaml

Output:

Total events: 13
Unsynced events: 4

6. List unsynced events

cargo run --bin bridge-node -- ctl ledger --unsynced --limit 10 --config bridge.example.yaml

Output:

Unsynced events: 4
- id=evt-1... sector=logistics type=handover source=scanner-gate-1 ts=1772148331
- id=evt-2... sector=logistics type=gps-position source=gps-gateway ts=1772148338

7. Run one adapter cycle

cargo run --bin bridge-node -- ctl run-once --config bridge.example.yaml

Output:

Processed events: 2
Runtime cursor: evt-c39e...

8. Sync with peers

cargo run --bin bridge-node -- ctl sync --config bridge.example.yaml

Output:

Sync published: 3
Sync received: 1

9. Generate policy bundle signature

cargo run --bin bridge-node -- ctl policy-sign --bundle-file policy/active/policy.bundle.json --config bridge.example.yaml

Output:

Signature: 5e26f3...

10. Stage policy bundle

cargo run --bin bridge-node -- ctl supervisor-stage --bundle-file policy/active/policy.bundle.json --signature-hex 5e26f3... --config bridge.example.yaml

Output:

Staged bundle: policy/staged/policy-1772149000123.bundle.json

11. Promote staged policy

cargo run --bin bridge-node -- ctl supervisor-promote --staged-path policy/staged/policy-1772149000123.bundle.json --config bridge.example.yaml

Output:

Promoted bundle to active path

12. Show metrics

cargo run --bin bridge-node -- ctl metrics --config bridge.example.yaml

Output:

Metrics snapshot: bridge-metrics.json
  ingest_attempted: 25
  ingest_accepted: 22
  ingest_rejected_replay: 1
  ingest_rejected_policy: 2
  sync_published: 8
  sync_received: 4
  queue_peak: 17
  last_updated: 2026-02-26T21:55:31Z