If more than one is set, precedence is
--toon > --quiet > --json > pretty. --verbose changes pretty output only, so it has no effect alongside the other three.
Global flags
These flags work on every command:--subdomain selects the signed-in workspace a command targets. See Authentication.
Pretty
The default in a terminal: tables for lists and key-value pairs for a single record. It is intended for people, not scripts. A table shows at most seven columns. The CLI picks identifier and name fields first (id, identifier, name, user_email, hours, and similar), fills the remaining columns alphabetically, and keeps any URL fields as the last columns without truncating them.
Verbose
--verbose prints every field of every record instead of a table, one label per line, with nested objects and lists indented underneath. Use it when a table leaves out a field you need.
JSON
JSON wraps the resource body with breadcrumbs and, for list commands, pagination details:data is the array of records; the CLI removes the API response’s resource key. For show, create, and update, data holds the API response body, such as { "client": { ... } }.
breadcrumbs is omitted when empty, and pagination appears only on list commands. The CLI automatically uses JSON when output is piped (a non-TTY); use --json to force it.
Quiet
--quiet returns only the data payload. For create and update, it prints the resource identifier when the response carries one, and the raw response otherwise, as clients create and projects create do; for delete, it prints success. This is useful in scripts:
TOON
--toon encodes the same data as TOON (Token-Optimized Output Notation). It keeps the JSON shape while compressing whitespace and keys, typically using 30-60% fewer tokens. Use it when giving list or show output to an AI assistant.
Pagination
List commands return results in pages. The flags below control paging, and the JSON envelope’spagination block shows your position in the result set. clients list, projects list, project-users list, time-entries list and team-members list accept the flags. Without either flag, clients list, projects list and project-users list return every record.
Pagination parameters
integer
The page of results to retrieve, starting from 1.
integer
The number of records to return per page (max 100).
Example usage
Response structure
For list commands the JSON envelope carries apagination block alongside the data:
integer
The total number of records across all pages.
integer
The total number of pages available.
integer
The page you are currently on.
integer
The number of records returned per page.
Default behavior
If you omit both flags onclients list, projects list or project-users list, you get every record. On the other list commands, the server defaults apply: page 1 with 30 records. Either flag overrides the defaults; --page-size accepts up to 100. The --page flag on team-members list has no effect in this release; see List team members.
Best practices
- To retrieve every page, increment
--pageuntilcurrent_page_number == total_pages. - Use
--jsonor--toonin scripts when you need thepaginationblock.--quietremoves the envelope, so it does not include pagination metadata. - Check
total_recordsbefore you begin to estimate the work involved.