Fast, scriptable CLI for Trello. Designed for shell scripts, AI agents, and power users who hate clicking.
Unofficial. Not affiliated with Trello or Atlassian.
go install github.com/vibery-studio/trellocli@latestDownload from Releases — macOS (arm64/amd64), Linux (amd64/arm64), Windows (amd64).
- Get an API key: https://trello.com/power-ups/admin → create a Power-Up → API key tab.
- Generate a token (button next to the key).
- Export them:
export TRELLO_API_KEY=...
export TRELLO_TOKEN=...Or put them in a .env file. Candidates checked in order:
$TRELLOCLI_ENV(explicit path)./.env(current directory)$TRELLOCLI_CONFIG_DIR/.env(default~/.config/trellocli/.env)
Real env vars always override .env. Verify with:
trellocli env# List all boards
trellocli board list --format table
# List cards on a board
trellocli card list --board <boardID> --format table
# Create a card
trellocli card create --list <listID> --name "Ship v1.0" --due 2026-05-01
# Archive a card
trellocli card archive --id <cardID>
# Add a comment
trellocli card comment --id <cardID> --text "Moved to blocked"| Group | Purpose |
|---|---|
board |
Boards: list, get |
list |
Lists within a board: list, get, create |
card |
Cards: list/get/create/update/move/archive/comment |
label |
Board labels |
member |
Board members |
env |
Show loaded .env and resolved values |
raw |
Generic API passthrough — hit any Trello endpoint |
For endpoints not wrapped as first-class commands:
# GET with query params
trellocli raw GET /boards/{id}/actions --query filter=commentCard --query limit=50
# POST with JSON fields
trellocli raw POST /checklists --field idCard=XYZ --field name=Prelaunch
# PUT with raw JSON
trellocli raw PUT /cards/XYZ --json '{"due":"2026-05-01T10:00:00Z"}'
# Body from file or stdin
trellocli raw POST /cards --json @newcard.json
echo '{"name":"Hi","idList":"..."}' | trellocli raw POST /cards --json @-
# DELETE
trellocli raw DELETE /cards/XYZAuth key+token are appended automatically. See trellocli raw -h for full flag list.
Run trellocli <group> for subcommands, or trellocli <group> <cmd> -h for flags.
Global --format flag (also $TRELLO_FORMAT):
json(default) — full API responsetable— human-readableid— just IDs, one per line (pipe-friendly)
# Archive every card on a list
trellocli card list --list <listID> --format id | \
xargs -I{} trellocli card archive --id {}| Var | Purpose |
|---|---|
TRELLO_API_KEY |
Required. API key |
TRELLO_TOKEN |
Required. User token |
TRELLO_DEFAULT_BOARD |
Default board ID when --board is omitted |
TRELLO_WORKSPACE_ID |
Default workspace for board create |
TRELLO_FORMAT |
Default output format |
TRELLOCLI_ENV |
Explicit .env path |
TRELLOCLI_CONFIG_DIR |
Config dir (default ~/.config/trellocli) |
MIT. See LICENSE.