Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The pms command line

Reference · generated · every subcommand and flag of `pms`, printed by the binary itself

pms

Sends, receives, encodes, and inspects pulses across the local mesh. Run pms demo first to see a producer + consumer talk through the mesh in one terminal.

pms doctor

Verify the local toolchain and mesh runtime preconditions

ArgumentDefaultMeaning
--for <FOR>Filter checks by developer profile (e.g. hft, ai, robotics)

pms send

Send pulses to a UDP destination

ArgumentDefaultMeaning
<DEST>requiredDestination address (e.g. 127.0.0.1:9000)
--count <COUNT>1Number of pulses to send
--payload <PAYLOAD>16Envelope payload size in bytes

pms recv

Bind a UDP address and print received pulses

ArgumentDefaultMeaning
<BIND>requiredLocal bind address (e.g. 127.0.0.1:9000)
--count <COUNT>1Maximum pulses to receive before exiting
--timeout-ms <TIMEOUT_MS>5000Per-recv timeout in milliseconds
--jsonEmit JSON instead of human-readable output

pms version

Print workspace + codec version stamp

ArgumentDefaultMeaning
--jsonEmit JSON instead of human-readable output

pms encode

Encode a JSON envelope spec and report the canonical wire bytes

ArgumentDefaultMeaning
--json <FILE>requiredPath to a JSON spec file (schema: EnvelopeSpec in pulse_cli::commands::encode_decode)
--json-outEmit JSON instead of human-readable output

pms decode

Decode canonical wire hex back into an envelope summary.

Exits with status 1 when the envelope does not verify: its content does not produce the identifier it carries.

ArgumentDefaultMeaning
<HEX>requiredHex string (whitespace trimmed)
--jsonEmit JSON instead of human-readable output

pms ring

Snapshot a SHM-backed PulseRing (read-only secondary reader)

pms ring inspect

Snapshot ring header + the N most-recent slot summaries

ArgumentDefaultMeaning
<NAME>requiredHub name (e.g. default_hub) or a raw POSIX SHM name starting with /; the ring’s header gives its capacity
--count <COUNT>8Number of most-recent slots to summarize
--jsonEmit JSON

pms modules

List the M01..M12 optimization modules, optionally by profile

pms modules ls

List modules, optionally filtered by developer profile

ArgumentDefaultMeaning
--for <PROFILE>Filter by profile (hft, ai, robotics, telemetry, dev)
--jsonEmit JSON

pms bench

Throughput and latency of pulses over UDP loopback on this host

pms bench smoke

Throughput and latency of pulses over UDP loopback on this host: the same run as pulse bench

ArgumentDefaultMeaning
--count <COUNT>10000Number of pulses to send through the loopback
--jsonEmit JSON

pms start

Start the local mesh-hub daemon (UDS + WebSocket).

In the background (the default) it waits up to 60 s for the daemon to serve, and stops one that does not (SIGTERM, then SIGKILL 5 s later) before it reports the failure and exits 1.

ArgumentDefaultMeaning
--foregroundfalseRun in the foreground (block until ^C)
--basket-path <BASKET_PATH>Optional basket path for envelope capture

pms attach

Attach to a running mesh-hub daemon under the given name and park

ArgumentDefaultMeaning
<NAME>requiredProcess-visible name to register under

pms push

Publish a one-shot envelope to a channel

ArgumentDefaultMeaning
<CHANNEL>requiredRouting key
<PAYLOAD>requiredPayload as a UTF-8 string. Use --hex for raw bytes via hex
--hexInterpret payload as hex-encoded bytes
--type-name <TYPE_NAME>Optional type name

pms tap

Subscribe to a channel and print events live

ArgumentDefaultMeaning
--channel <CHANNEL>Channel filter (exact or glob). Default: all
--type-name <TYPE_NAME>Type-name filter
--jsonOne JSON object per event instead of the table format

pms hello

Spin up a 2-thread demo (send + recv on channel hello)

pms demo

One-command end-to-end smoke loop: auto-starts the daemon if needed, runs a 5-message producer/consumer demo, cleans up.

It exits 1, saying how many arrived, when fewer than all five messages reach the consumer within 5 s. With PMS_DAEMON set it uses the daemon that names and starts none.

pms keys

Make and read the Ed25519 keys a client proves at attach.

A key file is its owner’s alone (mode 0600), and a client refuses one its group or others may read or write. Each subcommand prints the key’s public half as a line of a daemon’s --attach-keys list: its standard base64, 44 characters.

pms keys generate

Write a new key to a new file, readable and writable by its owner alone, and print its public key.

Exits 1, replacing nothing, when the file exists or cannot be written.

ArgumentDefaultMeaning
<PATH>requiredThe key file to create

pms keys public

Print the public key of a key file.

Exits 1 when the file cannot be read, holds no key, or its group or others may read or write it.

ArgumentDefaultMeaning
<PATH>requiredThe key file to read

pms docs

Print the generated reference pages the book carries

pms docs cli-markdown

The pms command tree as Markdown, from the definitions that parse the real arguments