| name | asana-cli |
| description | Asana CLI for managing tasks and projects. Use when the user wants to list Asana projects, read/create/search tasks, move tasks between projects, or list sections in a project. |
Asana CLI (asana)
The asana CLI manages Asana tasks and projects from the command line.
CLI availability
Run command -v asana before use. If it is unavailable, install the local source with cargo install --path ~/code/asana-cli.
Authentication
Set the Asana personal access token:
export ASANA_ACCESS_TOKEN="your-token"
Tokens can be created at: https://app.asana.com/0/developer-console
Commands
asana workspaces
Lists all workspaces the token has access to.
asana workspaces
Example output:
1234567890 My Workspace
asana projects [--workspace <GID>]
Lists non-archived projects in a workspace. If --workspace is omitted, uses the first workspace.
asana projects
asana projects --workspace 1234567890
Example output:
111111 Sprint Board [on_track]
222222 Backlog
333333 Tech Debt
asana me
Shows the current authenticated user's info (name, GID, email, workspaces).
asana me
asana my-tasks [--workspace <GID>] [--include-completed-since YYYY-MM-DD]
Lists tasks assigned to the current user. By default only shows incomplete tasks.
asana my-tasks
asana my-tasks --include-completed-since 2026-03-01
asana tasks list --project <GID>
Lists tasks in a project with completion status, assignee, due date, and section.
asana tasks list --project 111111
Example output:
[ ] 444444 Fix login bug (Alice) due:2026-03-20 [In Progress]
[x] 555555 Update docs (Bob) [Done]
asana tasks get <GID>
Gets detailed information about a single task.
asana tasks get 444444
Example output:
[ ] Fix login bug
GID: 444444
URL: https://app.asana.com/0/111111/444444
Assignee: Alice
Due: 2026-03-20
Projects: Sprint Board
Sections: In Progress
Tags: bug, p1
The login page returns a 500 when...
asana tasks search <QUERY> [--workspace <GID>]
Searches tasks by text across a workspace.
asana tasks search "login bug"
asana tasks search "deploy" --workspace 1234567890
asana tasks create --project <GID> --name "..." [OPTIONS]
Creates a new task in a project.
| Flag | Required | Description |
|---|
--project | Yes | Project GID to create the task in |
--name | Yes | Task name |
--notes | No | Task description/notes |
--assignee | No | Assignee email or GID |
--due-on | No | Due date in YYYY-MM-DD format |
--section | No | Section GID to place the task in |
asana tasks create --project 111111 --name "Fix login bug" --notes "The login page returns a 500" --assignee "alice@example.com" --due-on 2026-03-20
asana tasks create --project 111111 --name "Review PR" --section 666666
asana tasks move <GID> --to-project <GID> [OPTIONS]
Moves a task to a different project. Can optionally remove from the source project and place in a specific section.
| Flag | Required | Description |
|---|
--to-project | Yes | Destination project GID |
--from-project | No | Source project GID to remove task from |
--to-section | No | Destination section GID |
asana tasks move 444444 --to-project 222222
asana tasks move 444444 --to-project 222222 --from-project 111111
asana tasks move 444444 --to-project 222222 --from-project 111111 --to-section 777777
asana sections <PROJECT_GID>
Lists sections in a project. Useful for finding section GIDs when creating tasks or moving them.
asana sections 111111
Example output:
666666 To Do
777777 In Progress
888888 Done
Typical workflow
asana workspaces
asana projects
asana sections 111111
asana tasks list --project 111111
asana tasks get 444444
asana tasks create --project 111111 --name "New feature" --section 666666
asana tasks move 444444 --to-project 222222 --from-project 111111
Building
The CLI is a Rust project at /Users/dtsung/code/asana-cli:
cd /Users/dtsung/code/asana-cli
cargo build --release
The binary is at target/release/asana.