Trello CLI

CLI

Community Trello CLI: create, move, comment on and archive cards by board, list and card name, manage checklists, labels and members, output JSON or CSV, plus a full-screen terminal UI. Needs Node.js 18+ and a Trello API key and token from your account.

mheap/trello-cli · packages/trello-cli349
Ver no GitHub
README

Trello CLI

Installation

Trello CLI requires node 18+

npm install -g trello-cli

If you're an Arch user, it's also available in the Arch User Repository

Usage

You need to create a configuration file with an API key and token to use this CLI. Ensure that you're logged in to Trello and run trello auth to get started.

To see a list of available commands, run trello --help. Each command contains subcommands e.g. trello card:list, trello card:create. To see all available subcommands, run trello <command> --help.

Most commands identify boards, lists, and cards by name, e.g. --board "My Board" --list "To Do" --card "My card". All commands accept --format json or --format csv for machine-readable output.

Selecting resources

Commands that operate on one board, list, or card accept either its direct --id or its name-based selector. Do not combine the two forms.

  • Board target: --id BOARD_ID or --board "My Board"
  • List target: --id LIST_ID or --board "My Board" --list "To Do"
  • Card target: --id CARD_ID or --board "My Board" --list "To Do" --card "My card"

--board and --list accept either a name or cached Trello ID. For commands that create or list child resources, use these parent selectors: list:create --board BOARD_ID, list:list --board BOARD_ID, and card:create / card:list --board BOARD_ID --list LIST_ID. list:archive accepts both list selector forms.

list:move-all-cards uses --board --list --destination-board --destination-list; each accepts a name or cached Trello ID. card:move --id CARD_ID --to DESTINATION_LIST_ID moves a card directly by IDs.

Reading card data

  • trello card:list — Show all cards in a list. Selectors: --board, --list
  • trello card:show — Show card details. Selector: --id or --board, --list, --card
  • trello card:get-by-id — Show card details by ID. Flag: --id
  • trello card:assigned-to — Show cards assigned to a user (default: me). Flag: --user
  • trello card:comments — List comments on a card. Flags: --board, --list, --card
  • trello card:activity — List recent activity on a card. Flags: --board, --list, --card, --filter (comma-separated action types, e.g. commentCard,updateCard)
  • trello card:attachments — List attachments on a card. Flags: --board, --list, --card
  • trello card:checklists — List checklists on a card. Flags: --board, --list, --card

Creating and updating cards

  • trello card:create — Create a card. Flags: --name, --board, --list, --description, --due, --label (repeatable), --position (top or bottom)
  • trello card:update — Update a card's name, description, or due date. Selector: --id or --board, --list, --card. Flags: --name, --description, --due, --clear-due. Dates accept natural language, e.g. --due "next friday".
  • trello card:move — Move a card to another list. Selector: --id or --board, --list, --card. Destination: --to. Flag: --position
  • trello card:comment — Add a comment to a card. Flags: --board, --list, --card, --text
  • trello card:attach — Add an attachment to a card by URL. Flags: --board, --list, --card, --url, --name
  • trello card:label — Add a label to a card. Flags: --board, --list, --card, --label
  • trello card:unlabel — Remove a label from a card. Flags: --board, --list, --card, --label
  • trello card:assign — Assign a user to a card. Flags: --board, --list, --card, --user
  • trello card:unassign — Unassign a user from a card. Flags: --board, --list, --card, --user
  • trello card:checklist — Add a checklist to a card. Flags: --board, --list, --card, --name
  • trello card:check-item — Update a checklist item to complete or incomplete. Flags: --board, --list, --card, --item, --state, --checklist
  • trello card:archive — Archive a card. Flags: --board, --list, --card
  • trello card:delete — Delete a card. Flags: --board, --list, --card

Updating boards, lists, and labels

  • trello board:update — Update a board's name or description. Selector: --id or --board. Flags: --name, --description
  • trello list:rename — Rename a list. Selector: --id or --board, --list. Flag: --name
  • trello label:update — Update a label's text, creating it if needed. Flags: --board, --color, --name, --old-name

Interactive Terminal UI

Launch a full-screen interactive terminal UI with:

trello interactive

Views

  • Home - Browse and filter your boards. Type to filter, press Enter to open a board.
  • Board - View all lists and cards in a board, displayed as columns. Navigate with arrow keys.
  • Card Detail - View full card details including description, labels, members, checklists, and attachments. Shows a breadcrumb trail (Board / List / Card) in the header.
  • My Cards - View all cards assigned to you across boards.

Keyboard Shortcuts

Home View
KeyAction
Up/DownNavigate boards
EnterOpen selected board
TypeFilter boards by name
mView my assigned cards
sSync data from Trello
q / EscQuit
Board View
KeyAction
Arrow keysNavigate between lists and cards
EnterOpen card detail
nCreate new card in selected list
LCreate new list
EscBack to home
?Show help
Card Detail View
KeyAction
eEdit card name
DEdit description
dSet due date
lToggle labels
MToggle members
mMove card to another list
cBrowse/toggle checklists
CCreate new checklist
aView attachments
AAdd attachment
oOpen card in browser
xArchive card
EscBack to board
?Show help

Configuration

The interactive UI can be configured via ~/.trello-cli/tui.json:

{
  "mouse": true,
  "syncIntervalMs": 300000,
  "defaultView": "home",
  "theme": {
    "primary": "cyan",
    "secondary": "blue",
    "accent": "green",
    "warning": "yellow",
    "error": "red",
    "muted": "gray"
  }
}
OptionDefaultDescription
mousetrueEnable mouse support. Override per-session with --mouse / --no-mouse flags.
syncIntervalMs300000Auto-sync interval in milliseconds (5 minutes).
defaultView"home"View to show on launch (home, board, card-detail, my-cards).
themeSee aboveColor scheme. Values are any colors supported by chalk.

On Windows

Depending on how node.js is setup, you may not be able to run trello straight from the command line as shown above. To remedy that, add the following to your Powershell profile (type $profile at the Powershell prompt to find where your profile is stored):

function trello { & 'PATH_TO_NODE.EXE' 'PATH_TO_TRELLO_BIN' $args }

Replacing PATH_TO_NODE.EXE and PATH_TO_TRELLO_BIN with the values from your system.

You will then have the trello command available anywhere.

Authentication

trello-cli can be configured in two ways:

  1. Using ~/.trello-cli/<profile>/config.json. Running the CLI explains how to generate tokens and will automatically create this file
  2. Using the TRELLO_TOKEN and TRELLO_API_KEY environment variables. It is recommended to use option 1 to fetch these values, then set the environment variables and delete config.json if required.

Examples

$ trello card:create --board "Inbox" --list "Inbox" --name "Quick card added from command line"
$ trello card:comments --board "Inbox" --list "Inbox" --card "Quick card added from command line"
$ trello card:activity --board "Inbox" --list "Inbox" --card "Quick card added from command line" --filter "commentCard,updateCard"
$ trello card:attachments --board "Inbox" --list "Inbox" --card "Quick card added from command line"
$ trello card:update --board "Inbox" --list "Inbox" --card "Quick card added from command line" --name "New name" --due "next friday"
$ trello interactive