Every list and get command in the CLI supports the same flags: filtering, paging, and a choice between human-readable tables and machine-readable JSON. The pattern is consistent across `certificates`, `profiles`, `identifiers`, `devices`, `csrs`, and `apple-accounts`.
Two output formats
- -o table
- Default. Renders a column-aligned table sized to your terminal, with colour for status badges. Best for interactive use.
- -o json
- Emits the raw JSON the API returned, on stdout. Pipe into `jq`, write to a file, or feed it into a Slack bot or status page.
Filter and paginate
List commands accept `--type`, `--status`, `--page`, and `--limit`. The set of valid values for `--type` and `--status` is enumerated in the per-command help (`hexsign certificates list --help`).
# Active iOS distribution certificates hexsign certificates list --type IOS_DISTRIBUTION --status active # Page through all profiles 50 at a time hexsign profiles list --status active --page 1 --limit 50 hexsign profiles list --status active --page 2 --limit 50 # Profiles expiring soon, as JSON hexsign profiles expiring -o json
Pipe into jq
JSON output is the standard envelope the API returns: a top-level object with `data` and (for lists) `pagination`. `jq` makes scripting trivial — for example, list every certificate within 14 days of expiry along with its dependent profile count.
hexsign certificates expiring -o json \
| jq '.data[]
| select(.daysUntilExpiry <= 14)
| { id, name, type, daysUntilExpiry }'One-shot status with hexsign summary
`hexsign summary` prints counts of certificates, profiles, devices, and identifiers across every connected Apple account, plus an `expiring` block. It's the single command to drop into a cron, a Slack bot, or a daily status page.
hexsign summary # or, for a status page payload: hexsign summary -o json | curl -X POST -d @- https://status.example.com/hooks/hexsign