Task and project work management on Asana — triage and manipulate tasks (list, search, get, create, update, complete, move, comment, attach, delete), manage projects and sections, and discover the workspace/user topology around them.
omni-cli asana attachment create
Attach an EXTERNAL URL to a task. Only external/URL attachments are supported — uploading file bytes is not supported.
write
omni-cli asana attachment get
Get one attachment with its URLs — download_url/view_url are short-lived, permanent_url is stable.
read
omni-cli asana attachment list
List the attachments on a task.
read
omni-cli asana project get
Get one project's full record — notes, archived/public state, dates, workspace, team, and members.
read
omni-cli asana project list
List projects, filtered by workspace, team, or archived state — data[].gid sources every project-scoped action.
read
omni-cli asana section create
Create a section (board column) in a project.
write
omni-cli asana section list
List the sections (board columns) of a project — the section gids for task.list filtering and task.add-to-project moves.
read
omni-cli asana tag list
List tags — sources the tag filter on task.list and the tags array on task.create.
read
omni-cli asana task add-comment
Add a comment to a task, attributed to the token owner. Provide exactly ONE of text or html-text.
write
omni-cli asana task list-comments
List the comments and activity on a task. The response mixes human comments AND system activity — entries with resource_subtype "comment_added" are the human comments.
read
omni-cli asana task add-to-project
Add or move a task into a project and optionally a specific section — the "move to column" verb. Re-adding converges on the same placement. The response returns no fields — verify the placement via task.get memberships.
write
omni-cli asana task create
Create a task. Provide at least one of workspace, projects, or parent — parent creates a SUBTASK under that task. Prefer projects over workspace: a workspace-only task cannot later be moved between projects it was never added to.
write
omni-cli asana task delete
Delete a task — end-state convergent; a repeat delete of an already-deleted task returns 404. The task is trashed for 30 days and recoverable in the Asana UI. Deleting a parent task deletes its subtasks with it.
write
omni-cli asana task get
Get one task's full record — notes, completion state, dates, assignee, project/section memberships, parent, tags, followers, and custom fields.
read
omni-cli asana task list
List tasks — THE task read. Requires exactly ONE scope: project, section, tag, or assignee+workspace (the API 400s otherwise). Pass completed-since=now for the incomplete-only triage view.
read
omni-cli asana task list-subtasks
List the subtasks of a task (compact records; richer fields via --fields).
read
omni-cli asana task search
Search tasks in a workspace with rich filters — PREMIUM-ONLY: free workspaces answer HTTP 402; use workspace.search there. Returns up to 100 results with no pagination — narrow with filters or page manually via a created-at-before/created-at-after window.
read
omni-cli asana task set-parent
Re-parent an existing task under another task, making it a subtask (re-setting the same parent converges). Unparenting is not supported here.
write
omni-cli asana task update
Update a task — only submitted fields change; a re-PUT converges. completed=true is the "complete task" verb. Project membership and parent are immutable here: move between projects via task.add-to-project, re-parent via task.set-parent.
write
omni-cli asana user get
Get one user — gid, name, email, and workspace memberships. The literal id "me" returns the token owner.
read
omni-cli asana user list
List users — assignee discovery for task.create/task.list (email rides --fields, e.g. "name,email").
read
omni-cli asana workspace list
List the workspaces the token can see — the entry point of the whole discovery graph (every other list filters by a workspace gid).
read
omni-cli asana workspace search
Typeahead search across one workspace — the free, works-everywhere search (unlike the premium task.search). Returns one bounded result set of up to 100 compact records; no pagination.
read
Read this catalog as markdown — the copy your coding agent fetches.
Sign up, choose the actions your workflow needs, and get a copy-paste install one-liner.