awesome cli.
Command reference

Asana CLI documentation

Use with a coding agent

Asana CLI lets a coding agent read and update Asana tasks through shell commands. It works with agents that can run commands in your terminal. The CLI is unofficial and MIT-licensed. Awesome CLI’s maintainer also maintains it.

The examples below use v0.1.2. All workspace names, project names and task IDs are examples.

Install and log in

On macOS or Linux, install the release binary with the project’s script:

curl -fsSL https://raw.githubusercontent.com/vincentsch/asana-cli/main/install.sh | bash

You can also build the pinned release with Go:

go install github.com/vincentsch/asana-cli/cmd/[email protected]

Windows release binaries are on the release page. See the installation page for platform details.

Create a Personal Access Token in Asana’s developer console. Enter it when this command asks:

asana login

For scripts, ASANA_TOKEN overrides the saved login. Keep the token in a private environment. It gives access under your Asana account; do not paste it into a prompt or commit it. Asana’s authentication docs explain token access.

Read the project before changing it

Start with commands that read data:

asana workspace list
asana project list --workspace "Company"
asana task list --project "Launch Plan" --json

The JSON result gives the agent data it can inspect or pass to another command. If two projects share a name, use the project’s GID, its Asana identifier:

asana task list --project-gid 1234567890123456 --json

A prompt can ask the agent to show its target before writing:

Read the Launch Plan project. Tell me which task you plan to change. Show the task GID and the update command with --dry-run. Wait for me to approve the change.

This is an instruction for the agent. It does not restrict the account’s permissions.

Preview an update

Supported writes accept --dry-run. For example:

asana task update 1234567890123456 --name "Review launch checklist" --dry-run

The command does not apply the update. It can still make read requests to resolve names or validate inputs. Check the target and flags before running the command without --dry-run.

To preview creating a task:

asana task create "Review launch checklist" --project "Launch Plan" --assignee me --dry-run

Destructive commands require --confirm. Neither flag prevents an agent from calling the API another way. Account permissions and shell access determine what it can do.

The task reference describes the commands and their output. Start with task listing; task search uses Asana’s premium search API and can depend on the account’s plan.