Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Integrate Asana with Clawdbot via the Asana REST API. Use when you need to list/search/create/update Asana tasks/projects/workspaces, or to set up Asana OAuth (authorization code grant) for a personal local-only integration (OOB/manual code paste).
.claude/skills/sundial-org-asana/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -16% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -26% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -13% | 0% |
This skill is designed for a personal local-only Asana integration using OAuth with an out-of-band/manual code paste flow.
/users/me, /workspaces, tasks)In Asana Developer Console (My apps):
tasks:read, tasks:write, projects:read)urn:ietf:wg:oauth:2.0:oobOption A (recommended for Clawdbot): save to a local credentials file:
bashnode scripts/configure.mjs --client-id "..." --client-secret "..."
This writes ~/.clawdbot/asana/credentials.json.
Option B: set environment variables (shell/session):
ASANA_CLIENT_IDASANA_CLIENT_SECRETFrom the repo root:
1) Print the authorize URL:
bashnode scripts/oauth_oob.mjs authorize
2) Open the printed URL, click Allow, copy the code. 3) Exchange code and save tokens locally:
bashnode scripts/oauth_oob.mjs token --code "PASTE_CODE_HERE"
Tokens are stored at:
~/.clawdbot/asana/token.jsonYou can use either:
/asana ...For Clawdbot, implement the mapping by translating the user request into the appropriate asana_api.mjs command.
Examples:
/asana tasks-assigned → tasks-assigned --assignee metasks-assigned --assignee me<project> to a project gid, then tasks-in-project --project <gid>search-tasks --assignee me --due_on.after 2026-01-01 --due_on.before 2026-01-15(Optional helper) scripts/asana_chat.mjs can map common phrases to a command skeleton.
Sanity check (who am I):
bashnode scripts/asana_api.mjs me
List workspaces:
bashnode scripts/asana_api.mjs workspaces
Set a default workspace (optional):
bashnode scripts/asana_api.mjs set-default-workspace --workspace <workspace_gid>
After that, you can omit --workspace for commands that support it.
List projects in a workspace (explicit):
bashnode scripts/asana_api.mjs projects --workspace <workspace_gid>
List projects using the default workspace:
bashnode scripts/asana_api.mjs projects
List tasks in a project:
bashnode scripts/asana_api.mjs tasks-in-project --project <project_gid>
List tasks assigned to me (workspace required by Asana):
bashnode scripts/asana_api.mjs tasks-assigned --workspace <workspace_gid> --assignee me
Or using the default workspace:
bashnode scripts/asana_api.mjs tasks-assigned --assignee me
Search tasks (advanced search):
bashnode scripts/asana_api.mjs search-tasks --workspace <workspace_gid> --text "release" --assignee me # also supports convenience: --project <project_gid>
View a task:
bashnode scripts/asana_api.mjs task <task_gid>
Mark a task complete:
bashnode scripts/asana_api.mjs complete-task <task_gid>
Update a task:
bashnode scripts/asana_api.mjs update-task <task_gid> --name "New title" --due_on 2026-02-01
Comment on a task:
bashnode scripts/asana_api.mjs comment <task_gid> --text "Update: shipped"
Create a task:
bashnode scripts/asana_api.mjs create-task --workspace <workspace_gid> --name "Test task" --notes "from clawdbot" --projects <project_gid>
Other measured skills in the registry, with their headline benchmark lift.