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)The asana CLI manages Asana tasks and projects from the command line.
Set the Asana personal access token:
export ASANA_ACCESS_TOKEN="your-token"
Tokens can be created at: https://app.asana.com/0/developer-console
asana workspacesLists 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 meShows 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 "[email protected]" --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 |
# Add task to another project (keeps it in both)
asana tasks move 444444 --to-project 222222
# Move task from one project to another
asana tasks move 444444 --to-project 222222 --from-project 111111
# Move task and place in a specific section
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
# 1. Find your workspace
asana workspaces
# 2. List projects
asana projects
# 3. List sections in a project (to find section GIDs)
asana sections 111111
# 4. List tasks in a project
asana tasks list --project 111111
# 5. Get task details
asana tasks get 444444
# 6. Create a task in a specific section
asana tasks create --project 111111 --name "New feature" --section 666666
# 7. Move a task to another project
asana tasks move 444444 --to-project 222222 --from-project 111111
The CLI is a Rust project at /Users/dtsung/Documents/asana-cli:
cd /Users/dtsung/Documents/asana-cli
cargo build --release
The binary is at target/release/asana.