Command shape
Every command is `eximagent <category> [<subcategory>] <verb> --flags`. Argument casing, aliases, and the shell-safe way to pass list values.
Every command follows one shape:
eximagent <category> [<subcategory>] <verb> [--flag value ...]
The exim prefix is optional, so both of these work:
eximagent profile get
eximagent exim profile get
Argument casing
Arguments are camelCase across the whole surface — exporterCountry, hsCode,
businessType. Kebab-case is accepted as an alias, so --hs-code and
--hsCode are the same flag.
Output format
Responses default to JSON, or NDJSON for streamed commands. Switch with
--output:
eximagent tariff --exporter VN --importer DE --product 090111 --output table
yaml, table, and json are all accepted. Use table when you are reading
with your eyes and json when something downstream is parsing.
Passing list values safely
Comma-list flags such as --titles and --departments break an unquoted
command when a value contains a shell-sensitive character. & is a shell
control operator, so this runs D,formulation as a separate command:
# Wrong — the shell splits this at the ampersand
eximagent employees filter --titles procurement,R&D,formulation
Two safe forms. Repeat the flag — repeated flags are merged into one list:
eximagent employees filter --titles procurement --titles "R&D" --titles formulation
Or quote the whole value:
eximagent employees filter --titles "procurement,R&D,formulation"
Following nextActions
Many responses carry a nextActions block containing ready-to-run commands with
valid flags for the logical next step. Following those is faster and less
error-prone than composing the next call by hand, and it is how paging works for
bulk results.