Specialized subset of
pear multisigCLI for CI pipelines
linkPrint the deterministic multisig pear link.
Reads config from pear.json by default, or from --config. You can also provide the multisig fields directly with flags.
npx pear-ci-multisig link
npx pear-ci-multisig link --config path/to/pear.json
npx pear-ci-multisig link --quorum 2 --namespace my-org/my-app --pubkey <publicKey1> --pubkey <publicKey2>
Options:
--config <path> — path to pear.json--quorum <n> — number of required signers--namespace <ns> — multisig namespace--pubkey <key> — signer public key, repeatableNotes:
--config cannot be combined with --quorum, --namespace, or --pubkeylink reads pear.json directly and expects a top-level multisig fieldpear.jsonDefault configuration file used by all commands when --config not specified.
Location:
./pear.jsonRequired structure:
{
"multisig": {
"namespace": "my-org/my-app",
"quorum": <int>,
"publicKeys": [
"<publicKey1>",
"<publicKeyN...>"
]
}
}
Fields:
multisig — required objectmultisig.namespace — required string identifying the multisig namespacemultisig.quorum — required integer specifying the number of required signaturesmultisig.publicKeys — required array of signer public keys
Behavior:
link reads pear.json directly when no flags are providedrequest, verify, and commit load multisig configuration from this file unless flags are used--config <path> overrides the default location--quorum, --namespace, and --pubkey flags may be used instead of a file--config cannot be combined with those flagsValidation errors occur if:
multisig is missingnamespace is missingquorum is missingpublicKeys is missing or emptyrequestCreate a signing request from a versioned source link.
npx pear-ci-multisig request --config path/to/pear.json <verlink>
npx pear-ci-multisig request --quorum 2 --namespace my-org/my-app --pubkey <publicKey1> --pubkey <publicKey2> <verlink>
Options:
--config <path> — path to pear.json--quorum <n> — number of required signers--namespace <ns> — multisig namespace--pubkey <key> — signer public key, repeatable--force — skip requestability checks--peer-update-timeout <ms> — timeout for peer updatesArguments:
<verlink> — versioned source pear linkverifyDry-run commit to validate signatures without writing.
npx pear-ci-multisig verify --config path/to/pear.json <source-link> <request> [responses...]
npx pear-ci-multisig verify --quorum 2 --namespace my-org/my-app --pubkey <publicKey1> --pubkey <publicKey2> <source-link> <request> [responses...]
Options:
--config <path> — path to pear.json--quorum <n> — number of required signers--namespace <ns> — multisig namespace--pubkey <key> — signer public key, repeatable--force-dangerous — skip safety checks--peer-update-timeout <ms> — timeout for peer updatesArguments:
<source-link> — source pear link<request> — z32-encoded signing request[responses...] — z32-encoded responses from signersOutput includes:
linkverlinkcommitCommit signed changes to the multisig drive.
npx pear-ci-multisig commit --config path/to/pear.json <source-link> <request> [responses...]
npx pear-ci-multisig commit --quorum 2 --namespace my-org/my-app --pubkey <publicKey1> --pubkey <publicKey2> <source-link> <request> [responses...]
Options:
--config <path> — path to pear.json--quorum <n> — number of required signers--namespace <ns> — multisig namespace--pubkey <key> — signer public key, repeatable--force-dangerous — skip safety checks--peer-update-timeout <ms> — timeout for peer updatesArguments:
<source-link> — source pear link<request> — z32-encoded signing request[responses...] — z32-encoded responses from signersOutput includes:
linkverlinkDuring execution, progress messages may be written to stderr, including commit verification, commit progress, and seeding guidance for first commit.