terminalcmdhub adapter
Signal CLI
for cmdhub.
Signal resources through the cmdhub CLI.
lock
Auth: Device link
Quick Install
cmdhub get signal
data_object Agent Contract
Agents should start with auth/status and discovery commands, inspect schemas before composition, and treat commands marked as mutating as state-changing operations.
Output
Use human output for reading, `--json` for one object, and `--jsonl` for pipes.
Auth
Device link
Refs
Prefer list/search, then short refs or piped JSONL. Use `resolve` to inspect cached refs.
Schemas
Use `signal schema` and `catalog.json` to inspect fields, flags, examples, and side effects.
terminal Command Reference
Generated from source. Global flags apply to all commands.
Global Flags
--json
bool
Emit one JSON payload where supported--jsonl
bool
Emit newline-delimited JSON where supported--output
string
Output mode: human|json--quiet
bool
Suppress human next-step guidance--store
path
Path to the local Signal state database--view
string
Human view: summary|fullsignal login
Link this CLI as a Signal secondary device#cmd-signal-login
mutates state
--device-name
string
Device name shown in Signal mobile--timeout
duration
How long to wait for phone approval--show-url
bool
Print the raw provisioning URL--servers
string
Signal server set: production|staging$ signal login
$ signal login --device-name laptop
signal auth
auth commands#cmd-signal-auth
discovery safe
signal auth login
Link this CLI as a Signal secondary device#cmd-signal-auth-login
mutates state
--device-name
string
Device name shown in Signal mobile--timeout
duration
How long to wait for phone approval--show-url
bool
Print the raw provisioning URL--servers
string
Signal server set: production|staging$ signal auth login
signal auth status
Show the linked Signal identity#cmd-signal-auth-status
discovery safe
$ signal auth status
signal auth whoami
Show the linked Signal identity#cmd-signal-auth-whoami
discovery safe
$ signal auth whoami
signal auth logout
Remove the local linked-device database#cmd-signal-auth-logout
mutates state
--yes
bool
Delete local state without confirmation$ signal auth logout --yes
signal status
Show the linked Signal identity#cmd-signal-status
discovery safe
$ signal status
signal whoami
Show the linked Signal identity#cmd-signal-whoami
discovery safe
$ signal whoami
signal logout
Remove the local linked-device database#cmd-signal-logout
mutates state
--yes
bool
Delete local state without confirmation$ signal logout --yes
signal profile
profile commands#cmd-signal-profile
discovery safe
signal profile list
Explain the fixed linked-device profile#cmd-signal-profile-list
discovery safe
$ signal profile list
signal profile create
Report that Signal profile creation is unsupported#cmd-signal-profile-create
mutates state
--name
string
Requested profile name$ signal profile create --name cmdhub-eval-temp
signal profile delete
Report that Signal profile deletion is unsupported#cmd-signal-profile-delete
mutates state
--yes
bool
Acknowledge the cleanup check$ signal profile delete cmdhub-eval-temp
signal sync
Receive and store pending messages#cmd-signal-sync
discovery safe
--once
bool
Exit once the current server queue is empty$ signal sync --once
signal contact
contact commands#cmd-signal-contact
discovery safe
signal contact list
List synced contacts#cmd-signal-contact-list
discovery safe
$ signal contact list
signal group
group commands#cmd-signal-group
discovery safe
signal group list
List synced groups#cmd-signal-group-list
discovery safe
--verbose
bool
Show more group metadata$ signal group list
$ signal group list --verbose
signal message
message commands#cmd-signal-message
discovery safe
signal message list
List local messages for a contact or group#cmd-signal-message-list
discovery safe
--contact
string
Contact ref, ACI UUID, or service ID--group
string
Group ref or group master key--from
int
Local message offset$ signal message list --contact c1
$ signal message list --group g1
signal message get
Hidden alias for exact message lookup#cmd-signal-message-get
discovery safe
$ signal message get m1
$ signal resolve m1
signal message send
Send a message to a contact or group#cmd-signal-message-send
mutates state
--to
string
Recipient contact ref or ACI UUID--group
string
Group ref or group master key--message
string
Message body--attach
path
Attachment path; repeatable$ signal message send --to c1 --message hello
$ signal message send --group g1 --message hello
signal message delete
Delete one local synced message by ref#cmd-signal-message-delete
mutates state
dry-run
--yes
bool
Confirm local deletion for non-disposable messages--dry-run
bool
Preview local deletion without changing the store$ signal message delete m1 --yes
signal device
device commands#cmd-signal-device
discovery safe
signal device list
List linked devices#cmd-signal-device-list
discovery safe
$ signal device list
signal doctor
Run local Signal CLI diagnostics#cmd-signal-doctor
discovery safe
$ signal doctor
$ signal doctor --json
signal capabilities
Describe command capabilities for automation and audits#cmd-signal-capabilities
discovery safe
$ signal capabilities --json
signal schema
Print command input and output schemas#cmd-signal-schema
discovery safe
--input
bool
Show input schema for one command--out
bool
Show output schema for one command$ signal schema --json
$ signal schema auth.status --out --json
signal resolve
Resolve a local ref to its canonical provider value#cmd-signal-resolve
discovery safe
$ signal resolve c1
$ signal resolve aci1
$ signal resolve me1 --json
signal version
Print build and license information#cmd-signal-version
discovery safe
$ signal version
play_circle Live Examples
Output captured from a real workspace. Regenerate with
scripts/gen-docs.sh --update.
auth
Inspect linked-device status
$ signal status
Signal auth status
Linked: no
Profile: default
Credential type: linked-device QR store
Store: {store}
Status: not linked yet
Next steps:
- Link this CLI: signal login
- Inspect auth state: signal auth status
- Run diagnostics: signal doctordiagnostics
Check local Signal readiness
$ signal doctor
signal doctor
status: needs_login
store: {store}
checks:
- credential_backend: ok - local SQLite linked-device store
- auth: missing - not linked yet; expected store at {store}
- connectivity: skipped - link this CLI before checking Signal service connectivity
Next steps:
- Link this CLI: signal login
- Inspect auth state: signal auth status
- Run diagnostics: signal doctorPrint version
$ signal version
signal 0.1.0 license: AGPL-3.0-only engine: presage/libsignal-service Next steps: - Check linked-device status: signal auth status - Inspect command contract: signal capabilities --json - Run diagnostics: signal doctor
schemas
Inspect command capabilities
$ signal capabilities
signal capabilities Focused Signal linked-device CLI for login, auth recovery, contacts, groups, local messages, sends, local message cleanup, and device inspection. auth: device_link (linked-device QR) machine contract: signal capabilities --json commands: signal login auth Run `signal login` to link this CLI as a secondary device. signal auth login auth Run `signal auth login` to link this CLI as a secondary device. signal status read_only Run `signal login` first if no linked device is configured. signal whoami read_only Run `signal login` first if no linked device is configured. signal auth status read_only Run `signal login` first if no linked device is configured. signal auth whoami read_only Run `signal login` first if no linked device is configured. signal logout destructive Run `signal logout --yes` only when you want to remove local linked-device state. signal auth logout destructive Run `signal auth logout --yes` only when you want to remove local linked-device state. signal profile list read_only Signal has one fixed linked-device profile; use `signal auth status` for identity. signal profile create unsupported_noop Run `signal profile create --name cmdhub-eval-temp` to get a no-change auth redirect. signal profile delete unsupported_noop Run `signal profile delete cmdhub-eval-temp` to verify no local profile cleanup is needed. signal sync read_only Run `signal sync --once` to receive and store pending messages. signal contact list read_only Run `signal contact list` after `signal sync --once` to list synced contacts. signal group list read_only Run `signal group list --verbose` for more local group metadata. signal message list read_only Run `signal message list --contact c1` or `signal message list --group g1`. signal message get read_only Alias: `signal message get m1` runs `signal resolve m1`. signal message send mutating Run `signal message send --to c1 --message <text>` or `signal message send --group g1 --message <text>`. signal message delete destructive Run `signal message delete m1 --yes` for confirmed local-only cleanup; disposable cmdhub-eval messages can be deleted without --yes. signal device list read_only Run `signal device list` to list linked devices for the account. signal doctor read_only Run `signal doctor` to check local store and linked-device readiness. signal capabilities read_only Run `signal capabilities --json` for the structured command contract. signal schema read_only Run `signal schema --json` for all command schemas. signal resolve read_only Run `signal resolve c1` after `signal contact list` or `signal resolve aci1` after `signal auth status`. signal version read_only Run `signal version` to show build and license information. Run `signal capabilities --json` for the structured command contract. Next steps: - Check linked-device status: signal auth status - Inspect schemas: signal schema --json - Run diagnostics: signal doctor
Inspect auth status schema
$ signal schema auth.status --out --json
{
"tool": "signal",
"version": "0.1.0",
"schemas": [
{
"schema_id": "signal.auth.status.output.v1",
"version": "1",
"tool": "signal",
"resource": "auth",
"action": "status",
"direction": "output",
"json_schema": {
"additionalProperties": false,
"properties": {
"command": {
"description": "Signal command field",
"type": [
"string",
"boolean",
"integer",
"array",
"object",
"null"
]
},
"items": {
"description": "Signal items field",
"type": [
"string",
"boolean",
"integer",
"array",
"object",
"null"
]
},
"next_steps": {
"description": "Signal next_steps field",
"type": [
"string",
"boolean",
"integer",
"array",
"object",
"null"
]
},
"result": {
"description": "Signal result field",
"type": [
"string",
"boolean",
"integer",
"array",
"object",
"null"
]
},
"tool": {
"description": "Signal tool field",
"type": [
"string",
"boolean",
"integer",
"array",
"object",
"null"
]
}
},
"required": [
"tool",
"command"
],
"type": "object"
},
"required": [
"tool",
"command"
],
"optional": [
"items",
"result",
"next_steps"
],
"examples": [
"signal auth status",
"signal auth status --json"
]
}
],
"next_steps": [
{
"label": "Inspect auth status schema",
"command": "signal schema auth.status --out --json",
"safety": "read_only"
},
{
"label": "Inspect command contract",
"command": "signal capabilities --json",
"safety": "read_only"
}
]
}messages
Send with a ref
$ signal message send --help
Send a message to a contact or group
Usage: signal message send [OPTIONS] --message <MESSAGE>
Options:
--json Emit one JSON payload where supported
--to <TO> Recipient contact ref or ACI UUID
--group <GROUP> Group ref or group master key hex
--jsonl Emit newline-delimited JSON where supported
-m, --message <MESSAGE>
--view <VIEW> [default: summary] [possible values: summary, full]
--attach <ATTACHMENTS> Path to an attachment; repeat for more than one
--quiet Suppress human next-step guidance
--limit <LIMIT> Limit list output where supported; 0 means no cap
--store <STORE_PATH> Path to the local Signal state database
-h, --help Print help
-V, --version Print versionalt_route Composition Patterns
Bridge your ecosystem with zero middleware.
# Inspect auth state and available command schemas
signal auth status --json
signal schema