--json whenever a program or agent will parse stdout. Tables are for humans.
Errors still go to stderr as error: … with exit code 1, even with --json.
Message summary (read, search)
id looks like INBOX:12. threadId may be null. labels is the mailbox name.
Full message (show)
Summary fields plus:
body— plain text when mailkit can find a text/plain partmessageIdHeader— RFCMessage-ID
Thread (thread, Gmail)
Draft create / reply
drafts is a list of summaries, each with draftId.
Send
Doctor
A list of:Organize
Includescount and the affected ids (modified, trashed, or similar).
auth list
Human table only (provider in brackets). Use it to choose-a and to know the provider before a write verb.