Skip to content
hscli

Conversations

The conv group is the workhorse of hscli. It lists, reads, and acts on conversations. Full flag details are in the command reference.

zsh — hscli
$ hscli conv list --status active --output table
ID SUBJECT CUSTOMER STATUS
4831 Refund for order #2207 amir@acme.io active
4830 Can't reset my password lou@hey.com active

Filter by --status, --tag, --assigned-to, --query, or --mailbox. Free-text search lives in conv search "<query>".

Terminal window
hscli conv get 4831 # the conversation
hscli conv threads 4831 # its message threads

A reply goes to the customer; a note is internal — they're separate commands.

Terminal window
# customer-facing reply
hscli conv reply 4831 --body "Your refund is on the way — sorry for the trouble!"
# internal note (not sent to the customer)
hscli conv note 4831 --body "Refunded via Stripe, ref #ch_123"
Terminal window
hscli conv status 4831 --set closed
hscli conv tag 4831 --add vip --remove waiting
hscli conv assign 4831 --user me
hscli conv move 4831 --to-mailbox 42

Change status across a whole filter in a single call with conv bulk-status:

close everything tagged resolved
hscli conv bulk-status --status active --tag resolved --set closed --yes

Or compose with jq and xargs when you need finer control:

Terminal window
hscli conv list --status active \
--jq '.[] | select(.tags[]? == "resolved") | .id' \
| xargs -I{} hscli conv status {} --set closed