Build Status

trello_cli

Simple Ruby Trello Command Line Interface

Installation

Install the trello_cli gem

gem install trello_cli

Setup

Sign-in to trello.com as the user you want to use for trello_cli.

Get API key (open this link in a web browser):

https://trello.com/1/appKey/generate

The top field contains your Developer API Key. Use it to replace YOUR_API_KEY in the member token links below as well as the TRELLO_DEVELOPER_PUBLIC_KEY environment variable.

Next, get a member token. You will need to replace YOUR_API_KEY in the links below with the API key obtained in the previous step.

To get a read only member token:

https://trello.com/1/connect?key=YOUR_API_KEY&name=trello-cli&response_type=token

To get a read / write member token:

https://trello.com/1/authorize?key=YOUR_API_KEY&name=trello-cli&expiration=never&response_type=token&scope=read,write

Set the api key and member token environment variables:

export TRELLO_DEVELOPER_PUBLIC_KEY=api_key
export TRELLO_MEMBER_TOKEN=member_token

Usage

The CLI takes the following form:

trello TARGET COMMAND OPTIONS

To see a list of targets:

# trello -h
trello [board|card|list] [command] OPTIONS
Append -h for help on specific target.

To see a list of commands for a given target:

# trello card -h
Valid commands for card: create, list
For further help, append -h to sub command.

To see help for a specific command:

# trello card create -h
Usage: trello card [create] [options]
    -b, --board [BOARD]              Trello Board Id
    -d, --description [DESCRIPTION]  Description Of Card
    -l, --list [LIST]                List Of Card
    -n, --name [NAME]                Name Of Card

Output Formatters

To allow for piping output to other utilies, the output of any command can be format as either TSV (Tab Seperated Values) or JSON.

JSON Output

# trello card list -o json
[{"name":"board1","id":"123456781234567812345678"},{"name":"board2","id":"876543218765432187654321"}]

This can be used with tools like jq to parse the data:

# trello board list -o json |jq '.[0] | {id}'
{
  "id": "123456781234567812345678"
}

TSV Output

# trello card list -o tsv
123456781234567812345678  board1
876543218765432187654321  board2

For example, you can grep out specific cards and then cut specific fields:

# trello board list -o tsv |grep board1 |cut -d$'\t' -f 1
123456781234567812345678

The default is currently set to output as legacy to match previous versions of the trello CLI. This will be changed to TSV or another human format in a future release.

Examples

List the boards available to the given credentials:

trello board list

List the lists for a given board id and output as a TSV list:

trello list list -b 123 -o tsv

Create a card and output as JSON:

trello card create -b 123 -l 321 -n 'card name' -d 'card description' -o json

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request