Skip to content
Asana command line Client
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
api Use Personal Access Token instead of deprecated API Key. close #6 Jan 15, 2016
commands follow Asana webapp UI change Sep 18, 2016
config Use Personal Access Token instead of deprecated API Key. close #6 Jan 15, 2016
utils open a task in the browser #4 Jan 15, 2016
.gitignore Use Personal Access Token instead of deprecated API Key. close #6 Jan 15, 2016
.travis.yml The very basic test code by 'testing', and travis Aug 28, 2014 How to build. Jan 17, 2016
asana.go bump version to 0.2.0 Jan 15, 2016
asana_test.go fix asana_test Jan 15, 2016

Build Status


Asana command line client implemented in Go.


Requirements: go

Mac OS X

$ brew tap memerelics/asana
$ brew install asana


$ go get


$ asana help

   asana - asana cui client ( )

   asana [global options] command [command options] [arguments...]


   config, c            Asana configuration. Your settings will be saved in ~/.asana.yml
   workspaces, w        get workspaces
   tasks, ts            get tasks
   task, t              get a task
   comment, cm          Post comment
   done                 Complete task
   due                  set due date
   browse, b            open a task in the web browser
   help, h              Shows a list of commands or help for one command

   --help, -h           show help
   --version, -v        print the version


$ asana config
  Settings > Apps > Manage Developer Apps > Personal Access Tokens
  + Create New Personal Access Token

paste your Personal Access Token: _ <Copy Token from URL above and paste it.>

When you paste valid token, your workspaces will be displayed.

2 workspaces found.
[0]    4444444444444 My Project
[1]     999999999999 Work

Choose one out of them: _

Select one workspace. Configurations are saved in ~/.asana.yml.

$ cat ~/.asana.yml

personal_access_token: 0/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
workspace: 4444444444444


asana tasks or asana ts list your tasks.

$ asana ts

0 [ 2014-08-13 ] Write README.
1 [ 2014-08-18 ] Buy gift for coworkers.
2 [ 2014-08-29 ] Read "Unweaving the Rainbow".
3 [            ] haircut

asana task <index> or asana t <index> shows the task in detail. When you run it without index, top of the tasks list will be used.

-v option adds comments and modification histories to the output.

$ asana t -v 0

[ 2014-08-13 ] Write README.
Write for Asana Cli project.


assigned to you (2014-07-07T05:31:18.278Z)
changed the name to "Write README." (2014-07-18T08:52:57.020Z)
changed the due date to August 8 (2014-08-04T10:33:07.168Z)
How about progress?
by Lain Iwakura (2014-08-10T04:17:57.741Z)
moved from Piyo to Hoge (2014-08-11T02:02:53.051Z)
No progress.
by Hash (2014-08-11T01:21:38.014Z)
moved from Hoge to Piyo (2014-08-11T02:02:53.051Z)
changed the due date to August 13 (2014-08-11T10:30:39.785Z)

Complete, set due on a task

To complete task, use asana complete <index> or asana done <index>.

$ asana done 12

To change(or newly set) due date, use asana due <index> <due_date>.

$ asana due 5 2014-08-21

Or, today or tomorrow.

$ asana due 5 today


asana comment <index> or asana cm <index> enable you to post new comment for the task.

$ asana cm 2

This command opens editor. Write comment, save and close.

You can change editor by updating $EDITOR environment variable.

Open a task in the browser

asana browse <index> or asana b <index> will open task in browser.

$ asana browse 1
// => open browser


See Issues

You can’t perform that action at this time.