Interactive TUI and CLI for Chatwoot — manage conversations, send messages, and reply to customers from your terminal.
go install github.com/chatwoot/chatwoot-cli/cmd/chatwoot@latestOr build from source:
git clone https://github.com/chatwoot/chatwoot-cli.git
cd chatwoot-cli
go build -o chatwoot ./cmd/chatwoot/chatwoot auth loginYou'll be prompted for:
- Base URL — your Chatwoot instance (e.g.
https://app.chatwoot.com) - API Key — your agent API access token
- Account ID — your account number
Credentials are validated against the API before saving. Config is stored at ~/.chatwoot/config.yaml.
Launch the interactive interface with no arguments:
chatwoot- Three-column layout — Conversations list, messages, and contact info
- Message pagination — Automatically loads older messages as you scroll
- Reply to customers — Press
Rto compose replies - Private notes — Press
Pto add internal notes (yellow accent) - Command palette — Press
Ctrl+Kfor quick actions:- Mark as resolved/pending/snoozed
- Snooze until tomorrow/next week/next reply
- Open in browser
- Refresh data
- Quit
- Status management — Toggle conversation status with Tab and
s - Keyboard-first — Designed for speed with vim-style navigation
| Key | Action |
|---|---|
↑↓ |
Navigate conversations/messages |
/ |
Filter conversations |
Tab |
Cycle assignee tabs (Mine/Unassigned/All) |
s |
Cycle status filter |
Enter |
Load messages / Focus message pane |
Esc |
Return to conversation list |
R |
Reply to conversation |
P |
Add private note |
Ctrl+K |
Open command palette |
o |
Open conversation in browser |
r |
Refresh data |
q |
Quit |
For scripting and automation, use commands directly:
chatwoot <command> [flags]
chatwoot conversation list # List open conversations assigned to you
chatwoot conv list -s resolved # List resolved conversations
chatwoot conv list --assignee all --inbox 5 # All conversations in inbox 5
chatwoot conv list -l billing,urgent # Filter by labels
chatwoot conversation view 42 # View conversation detailschatwoot message list 42 # Messages in conversation #42
chatwoot msg list 42 --before 1000 # Messages before ID 1000chatwoot contact list # List contacts
chatwoot contact view 123 # View contact details
chatwoot contact search "john" # Search by name, email, or phonechatwoot inbox list # List all inboxes
chatwoot inbox view 5 # View inbox detailschatwoot agent list # List all agentschatwoot profile # Show your profilechatwoot auth login # Interactive login
chatwoot auth logout # Remove saved credentials
chatwoot auth status # Show current user and instance
chatwoot config path # Print config file path
chatwoot config view # Print config (API key masked)| Flag | Short | Description |
|---|---|---|
--output |
-o |
Output format: text, json, csv |
--account |
-a |
Override account ID |
--quiet |
-q |
Print only IDs (for scripting) |
--no-color |
Disable colored output | |
--verbose |
-v |
Show request/response details |
--version |
Print version |
Text (default) — human-readable tables:
ID Status Contact Assignee Inbox
194 open Jane Doe Shivam Mishra WebWidget
197 open Vinay K Shivam Mishra Whatsapp
JSON — full API response, pipe to jq:
chatwoot conversation list -o json | jq '.[].id'CSV — for spreadsheets and data processing:
chatwoot agent list -o csv > agents.csvQuiet — IDs only, one per line:
chatwoot conversation list -q | xargs -I{} chatwoot conversation view {}MIT
