CLI reference

September 10, 2026 ยท View on GitHub

Generated from the Python CLI parser. Regenerate with python scripts/generate_cli_reference.py in an environment with the qntm dependencies installed. CI checks for drift.

Global options precede the command. One-shot commands return JSON; recv --watch streams JSONL. See receive hooks, guidance, and gateway invitations for complete workflows.

qntm

usage: qntm [-h] [--config-dir CONFIG_DIR] [--dropbox-url DROPBOX_URL] [--human]
            [--verbose] [-v]
            {guidance,identity,convo,send,recv,inbox,history,group,announce,gate-run,gate-approve,gate-disapprove,gate-pending,gate-promote,gate-secret,gov,name,ref,version}
            ...

qntm - agent-first secure messaging CLI

positional arguments:
  {guidance,identity,convo,send,recv,inbox,history,group,announce,gate-run,gate-approve,gate-disapprove,gate-pending,gate-promote,gate-secret,gov,name,ref,version}
    guidance            Ask locally pinned contacts for legal, ethical, or law-
                        enforcement guidance
    identity            Manage identity keys
    convo               Manage conversations
    send                Send a text message
    recv                Receive messages
    inbox               Show inbox summary
    history             Show message history
    group               Manage group conversations
    announce            Manage announce channels
    gate-run            Submit a gate authorization request
    gate-approve        Approve a gate request
    gate-disapprove     Deny a gate request
    gate-pending        List pending gate requests
    gate-promote        Promote conversation to gate-enabled
    gate-secret         Provision a secret to gate conversation
    gov                 Govern gateway policy and membership
    name                Manage local nicknames
    ref                 Resolve a short prefix to a full ID
    version             Print version

options:
  -h, --help            show this help message and exit
  --config-dir CONFIG_DIR
                        Configuration directory (default: ~/.qntm)
  --dropbox-url DROPBOX_URL
                        HTTP drop box endpoint (default: https://inbox.qntm.corpo.llc)
  --human               Reserved compatibility option; output remains JSON
  --verbose             Enable verbose output
  -v, --version         Print version

quick start:
  qntm identity generate                  create a new identity
  qntm convo create --name mygroup        start a conversation, get an invite token
  qntm convo join <token>                 accept an invite token
  qntm send <conv> "hello"                send a message (conv = id or prefix)
  qntm recv <conv>                        receive new messages
  qntm recv <conv> --watch                stream messages and optional local hooks
  qntm guidance list                      find locally pinned guidance contacts

claude code channel:
  claude plugin marketplace add corpollc/qntm
  claude plugin install channel@qntm
  claude --dangerously-load-development-channels plugin:channel@qntm

qntm guidance

usage: qntm guidance [-h] {list,pin,remove,request} ...

positional arguments:
  {list,pin,remove,request}
    list                List local contacts and categories; no network request
    pin                 Operator setup: pin a verified key and existing conversation
                        locally
    remove              Remove a local pin
    request             Prepare an exact message and audience for review; sends only
                        with --send and --review-token

options:
  -h, --help            show this help message and exit

qntm guidance list

usage: qntm guidance list [-h] [--category {legal,ethical,law_enforcement}]

options:
  -h, --help            show this help message and exit
  --category {legal,ethical,law_enforcement}

qntm guidance pin

usage: qntm guidance pin [-h] --category {legal,ethical,law_enforcement} --name NAME
                         [--kind {human,agent,organization}] --conversation
                         CONVERSATION --recipient RECIPIENT [--replace]
                         contact

positional arguments:
  contact               Stable local contact ID

options:
  -h, --help            show this help message and exit
  --category {legal,ethical,law_enforcement}
  --name NAME           Local contact label
  --kind {human,agent,organization}
  --conversation CONVERSATION
                        Full conversation ID
  --recipient RECIPIENT
                        Full recipient key ID (32 hex characters)
  --replace             Replace an existing pin with this ID

qntm guidance remove

usage: qntm guidance remove [-h] contact

positional arguments:
  contact

options:
  -h, --help  show this help message and exit

qntm guidance request

usage: qntm guidance request [-h] [--context CONTEXT] [--send]
                             [--review-token REVIEW_TOKEN]
                             contact question

positional arguments:
  contact               Pinned contact ID
  question

options:
  -h, --help            show this help message and exit
  --context CONTEXT     Optional context; no transcript is added automatically
  --send                Send the reviewed request under the host's authorization
                        policy
  --review-token REVIEW_TOKEN
                        Token from the matching prepared request

qntm identity

usage: qntm identity [-h] {generate,show} ...

positional arguments:
  {generate,show}
    generate       Generate new identity keypair
    show           Show current identity

options:
  -h, --help       show this help message and exit

qntm identity generate

usage: qntm identity generate [-h]

options:
  -h, --help  show this help message and exit

qntm identity show

usage: qntm identity show [-h]

options:
  -h, --help  show this help message and exit

qntm convo

usage: qntm convo [-h] {create,join,invite,list,name} ...

positional arguments:
  {create,join,invite,list,name}
    create              Create conversation and invite
    join                Join conversation from invite token
    invite              Get token and fragment link for existing conversation
    list                List conversations
    name                Set a local name for a conversation

options:
  -h, --help            show this help message and exit

qntm convo create

usage: qntm convo create [-h] [--name NAME] [--group] [--no-self-join]

options:
  -h, --help      show this help message and exit
  --name NAME     Conversation name
  --group         Create group conversation
  --no-self-join  Don't self-join

qntm convo join

usage: qntm convo join [-h] [--name NAME] token

positional arguments:
  token        Invite token

options:
  -h, --help   show this help message and exit
  --name NAME  Conversation name

qntm convo invite

usage: qntm convo invite [-h] [--recipient RECIPIENT] conv

positional arguments:
  conv                  Conversation ID or prefix

options:
  -h, --help            show this help message and exit
  --recipient RECIPIENT
                        Admitted participant public key (hex); required after key
                        rotation

qntm convo list

usage: qntm convo list [-h]

options:
  -h, --help  show this help message and exit

qntm convo name

usage: qntm convo name [-h] conversation local_name

positional arguments:
  conversation  Conversation ID or prefix
  local_name    Local nickname

options:
  -h, --help    show this help message and exit

qntm send

usage: qntm send [-h] conversation message

positional arguments:
  conversation  Conversation ID or prefix
  message       Message text

options:
  -h, --help    show this help message and exit

qntm recv

usage: qntm recv [-h] [--watch] [--webhook URL] [--on-receive COMMAND]
                 [--hook-timeout SECONDS] [--include-self]
                 conversation

positional arguments:
  conversation          Conversation ID or prefix

options:
  -h, --help            show this help message and exit
  --watch               Keep the WebSocket open; emit one JSON line per message
  --webhook URL         POST receive events to this HTTP(S) URL (repeatable; requires
                        --watch)
  --on-receive COMMAND  Run an adapter with event JSON on stdin, without a shell
                        (repeatable; requires --watch)
  --hook-timeout SECONDS
                        Timeout for each hook attempt (default: 10 seconds)
  --include-self        Also deliver your own messages to hooks (stdout always
                        includes them)

qntm inbox

usage: qntm inbox [-h]

options:
  -h, --help  show this help message and exit

qntm history

usage: qntm history [-h] conversation

positional arguments:
  conversation  Conversation ID or prefix

options:
  -h, --help    show this help message and exit

qntm group

usage: qntm group [-h] {create,join,add,remove,rekey,retry,list} ...

positional arguments:
  {create,join,add,remove,rekey,retry,list}
    create              Create a new group
    join                Join a group via invite token
    add                 Add member to group
    remove              Remove member from group
    rekey               Rekey group (new epoch)
    retry               Retry the exact pending encrypted group update
    list                List group conversations

options:
  -h, --help            show this help message and exit

qntm group create

usage: qntm group create [-h] [--description DESCRIPTION] name

positional arguments:
  name                  Group name

options:
  -h, --help            show this help message and exit
  --description DESCRIPTION
                        Group description

qntm group join

usage: qntm group join [-h] [--name NAME] token

positional arguments:
  token        Invite token

options:
  -h, --help   show this help message and exit
  --name NAME  Group name

qntm group add

usage: qntm group add [-h] conversation public_key

positional arguments:
  conversation  Conversation ID or prefix
  public_key    Member public key (base64url or hex)

options:
  -h, --help    show this help message and exit

qntm group remove

usage: qntm group remove [-h] [--reason REASON] conversation key_id

positional arguments:
  conversation     Conversation ID or prefix
  key_id           Member key ID (hex)

options:
  -h, --help       show this help message and exit
  --reason REASON  Removal reason

qntm group rekey

usage: qntm group rekey [-h] conversation

positional arguments:
  conversation  Conversation ID or prefix

options:
  -h, --help    show this help message and exit

qntm group retry

usage: qntm group retry [-h] conversation

positional arguments:
  conversation  Conversation ID or prefix

options:
  -h, --help    show this help message and exit

qntm group list

usage: qntm group list [-h]

options:
  -h, --help  show this help message and exit

qntm announce

usage: qntm announce [-h] {create,post,subscribe,list,delete} ...

positional arguments:
  {create,post,subscribe,list,delete}
    create              Create a new announce channel
    post                Post a message to a channel
    subscribe           Subscribe to a channel
    list                List announce channels
    delete              Delete an announce channel

options:
  -h, --help            show this help message and exit

qntm announce create

usage: qntm announce create [-h] name

positional arguments:
  name        Channel name

options:
  -h, --help  show this help message and exit

qntm announce post

usage: qntm announce post [-h] channel message

positional arguments:
  channel     Channel name or conv ID
  message     Message text

options:
  -h, --help  show this help message and exit

qntm announce subscribe

usage: qntm announce subscribe [-h] --token TOKEN [--name NAME] conv_id

positional arguments:
  conv_id        Conversation ID (hex)

options:
  -h, --help     show this help message and exit
  --token TOKEN  Invite token from owner
  --name NAME    Local name for this channel

qntm announce list

usage: qntm announce list [-h]

options:
  -h, --help  show this help message and exit

qntm announce delete

usage: qntm announce delete [-h] channel

positional arguments:
  channel     Channel name or conv ID

options:
  -h, --help  show this help message and exit

qntm gate-run

usage: qntm gate-run [-h] -c CONVERSATION [--arg KEY=VALUE] recipe

positional arguments:
  recipe                Recipe name (e.g. jokes.dad, hn.get-item)

options:
  -h, --help            show this help message and exit
  -c CONVERSATION, --conversation CONVERSATION
                        Conversation ID or prefix
  --arg KEY=VALUE       Recipe argument (repeatable)

qntm gate-approve

usage: qntm gate-approve [-h] -c CONVERSATION request_id

positional arguments:
  request_id            Request ID to approve

options:
  -h, --help            show this help message and exit
  -c CONVERSATION, --conversation CONVERSATION
                        Conversation ID or prefix

qntm gate-disapprove

usage: qntm gate-disapprove [-h] -c CONVERSATION request_id

positional arguments:
  request_id            Request ID to deny

options:
  -h, --help            show this help message and exit
  -c CONVERSATION, --conversation CONVERSATION
                        Conversation ID or prefix

qntm gate-pending

usage: qntm gate-pending [-h] [-c CONVERSATION]

options:
  -h, --help            show this help message and exit
  -c CONVERSATION, --conversation CONVERSATION
                        Conversation ID or prefix (optional, scans all if omitted)

qntm gate-promote

usage: qntm gate-promote [-h] -c CONVERSATION --threshold THRESHOLD --gateway-url
                         GATEWAY_URL

options:
  -h, --help            show this help message and exit
  -c CONVERSATION, --conversation CONVERSATION
                        Conversation ID or prefix
  --threshold THRESHOLD
                        Approval threshold (M-of-N)
  --gateway-url GATEWAY_URL
                        Gateway server URL; any participant may invite it

qntm gate-secret

usage: qntm gate-secret [-h] -c CONVERSATION --service SERVICE --gateway-pubkey
                        GATEWAY_PUBKEY [--value VALUE] [--header-name HEADER_NAME]
                        [--header-template HEADER_TEMPLATE] [--ttl TTL]

options:
  -h, --help            show this help message and exit
  -c CONVERSATION, --conversation CONVERSATION
                        Conversation ID or prefix
  --service SERVICE     Target service name (e.g. stripe, github)
  --gateway-pubkey GATEWAY_PUBKEY
                        Gateway Ed25519 public key (base64url; legacy 64-char hex
                        still accepted)
  --value VALUE         Secret value (omit to read from stdin)
  --header-name HEADER_NAME
                        HTTP header name (default: Authorization)
  --header-template HEADER_TEMPLATE
                        Header value template (default: 'Bearer {value}')
  --ttl TTL             Secret TTL in seconds (0 = no expiry, default: 0)

qntm gov

usage: qntm gov [-h] {propose-floor,propose-add,propose-remove,approve,disapprove} ...

positional arguments:
  {propose-floor,propose-add,propose-remove,approve,disapprove}
    propose-floor       Propose a threshold floor change
    propose-add         Propose adding a member
    propose-remove      Propose removing a member
    approve             Approve a governance proposal
    disapprove          Reject a governance proposal

options:
  -h, --help            show this help message and exit

qntm gov propose-floor

usage: qntm gov propose-floor [-h] -c CONVERSATION --floor FLOOR
                              [--required-approvals REQUIRED_APPROVALS]
                              [--expires-in EXPIRES_IN]

options:
  -h, --help            show this help message and exit
  -c CONVERSATION, --conversation CONVERSATION
                        Conversation ID or prefix
  --floor FLOOR         New approval floor
  --required-approvals REQUIRED_APPROVALS
                        Approvals required for this proposal (defaults to current
                        governance quorum)
  --expires-in EXPIRES_IN
                        Proposal expiry in seconds (default: 3600)

qntm gov propose-add

usage: qntm gov propose-add [-h] -c CONVERSATION
                            [--required-approvals REQUIRED_APPROVALS]
                            [--expires-in EXPIRES_IN]
                            public_key

positional arguments:
  public_key            Member public key (base64url or hex)

options:
  -h, --help            show this help message and exit
  -c CONVERSATION, --conversation CONVERSATION
                        Conversation ID or prefix
  --required-approvals REQUIRED_APPROVALS
                        Approvals required for this proposal (defaults to current
                        governance quorum)
  --expires-in EXPIRES_IN
                        Proposal expiry in seconds (default: 3600)

qntm gov propose-remove

usage: qntm gov propose-remove [-h] -c CONVERSATION
                               [--required-approvals REQUIRED_APPROVALS]
                               [--expires-in EXPIRES_IN]
                               key_id

positional arguments:
  key_id                Member key ID (base64url or hex)

options:
  -h, --help            show this help message and exit
  -c CONVERSATION, --conversation CONVERSATION
                        Conversation ID or prefix
  --required-approvals REQUIRED_APPROVALS
                        Approvals required for this proposal (defaults to remaining-
                        member governance quorum)
  --expires-in EXPIRES_IN
                        Proposal expiry in seconds (default: 3600)

qntm gov approve

usage: qntm gov approve [-h] -c CONVERSATION proposal_id

positional arguments:
  proposal_id           Proposal ID to approve

options:
  -h, --help            show this help message and exit
  -c CONVERSATION, --conversation CONVERSATION
                        Conversation ID or prefix

qntm gov disapprove

usage: qntm gov disapprove [-h] -c CONVERSATION proposal_id

positional arguments:
  proposal_id           Proposal ID to reject

options:
  -h, --help            show this help message and exit
  -c CONVERSATION, --conversation CONVERSATION
                        Conversation ID or prefix

qntm name

usage: qntm name [-h] {set,list,remove} ...

positional arguments:
  {set,list,remove}
    set              Assign a local name to an identity (by KID)
    list             List all local names
    remove           Remove a local name

options:
  -h, --help         show this help message and exit

qntm name set

usage: qntm name set [-h] kid_or_ref local_name

positional arguments:
  kid_or_ref  Key ID (hex) or short prefix
  local_name  Local nickname

options:
  -h, --help  show this help message and exit

qntm name list

usage: qntm name list [-h]

options:
  -h, --help  show this help message and exit

qntm name remove

usage: qntm name remove [-h] name

positional arguments:
  name        Name to remove

options:
  -h, --help  show this help message and exit

qntm ref

usage: qntm ref [-h] short_prefix

positional arguments:
  short_prefix  Short hex prefix

options:
  -h, --help    show this help message and exit

qntm version

usage: qntm version [-h]

options:
  -h, --help  show this help message and exit