Quickly create, view and bulk-update Asana tasks within Emacs.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
COPYING
README.md
asana.el
emacs-asana.png

README.md

emacs-asana

Browse and act on your My Tasks list without leaving Emacs!

emacs-asana

Dependencies

You'll need these packages, available from melpa via M-x package-install:

helm
exec-path-from-shell

Getting Started

Add this to your .bash_profile (or wherever you keep your environment):

# Get a Personal Access Token from the `apps' tab in your app.asana.com profile settings.
export ASANA_TOKEN="<my-asana-personal-access-token>" 

Add this to your init.el:

(global-asana-mode 1)
;; or, if you prefer, use it in specific major modes:
;; (add-hook 'org-mode-hook 'asana-mode)
;; (add-hook 'prog-mode-hook 'asana-mode)
;; (add-hook 'text-mode-hook 'asana-mode)

Configuration

[Optional] The default prefix for asana-mode commands is C-c a. To change it, add this to your init.el:

(setq asana-keymap-prefix "C-c C-a") ; Or whatever you'd like to use as your prefix

[Optional] By default, asana-mode loads tasks from your "My Tasks" list in your chosen workspace. To load tasks from a project instead, customize the variable asana-my-tasks-project-id with the project ID (the first long number in the URL of the project, or any task in that project) after choosing a workspace with C-c a.

Available commands

In the asana-mode minor mode, the following interactive commands are available:

helm-asana [C-c a a]
helm-asana-change-workspace [C-c a A]

asana-create-task-quickly [C-c a c]
asana-create-task [C-c a C]

The helm-asana task list provides these actions:

Select (view task details in buffer) [RET]
Browse (open in Asana) [C-b]
Move to section [C-:]
Complete [C-RET]
Delete [C-DEL]
Move all marked tasks to section [M-:]
Complete all marked tasks [M-RET]
Delete all marked tasks [M-DEL]

Known issues

OSX El Capitan can break exec-path-from-shell, which corrupts your access token as it gets imported into Emacs. See https://github.com/purcell/exec-path-from-shell/issues/41 for more details. One available workaround is to disable OSX bash sessions with touch ~/.bash_sessions_disable.

TODO

  • Pagination for > 100 tasks
  • Improve API request batching & async around multi-select and assignee_status updates
  • Improve error messages, for example around ASANA_TOKEN not found
  • Improve/add docstrings
  • Publish v1.0 as package
  • Command to choose another project, rather than needing to copy/paste an ID