Agent skill · software engineering · sundial-org
asana
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).
Why this skill is useful
Adds a Node CLI with executable scripts for OAuth integration and Asana API interactions that aren't in public docs.
What it needs
Requires node installed locally. Requires asana account access. About 2k tokens when loaded. Last updated 2026-03-07. 639 stars on the source repository.
What this skill does
Asana (Clawdbot skill) This skill is designed for a personal local-only Asana integration using OAuth with an out-of-band/manual code paste flow. What this skill provides A small Node CLI to: generate the Asana authorize URL exchange an authorization code for access/refresh tokens auto-refresh the access token make basic API calls (e.g. /users/me, /workspaces, tasks) Setup (OAuth, OOB/manual code) 0) Create an Asana app In Asana Developer Console (My apps): Create app Enable scopes you will need (typical: tasks:read, tasks:write, projects:read) Set redirect URI to the OOB value (manual code): urn:ietf:wg:oauth:2.0:oob 1) Provide credentials (two options) Option A (recommended for Clawdbot): save to a local credentials file: This writes ~/.clawdbot/asana/credentials.json. Option B: set environment variables (shell/session): ASANACLIENTID ASANACLIENTSECRET 2) Run OAuth From the repo root: 1) Print the authorize URL: 2) Open the printed URL, click Allow, copy the code. 3) Exchange code and save tokens locally: Tokens are stored at: ~/.clawdbot/asana/token.json Chat usage (support both explicit + natural language) You can use either: Explicit commands: start the message with /asana ... Natural language: e.g. “list tasks assigned to me” For Clawdbot, implement the mapping by translating the user request into the appropriate asanaapi.mjs command. Examples: /asana tasks-assigned → tasks-assigned --assignee me “list tasks assigned to me” → tasks-assigned --assignee me “list all tasks in <project>” → resolve <project> to a project gid, then tasks-in-project --project <gid> “list tasks due date from 2026-01-01 to 2026-01-15” → search-tasks --assignee me --dueon.after 2026-01-01 --dueon.before 2026-01-15 (Optional helper) scripts/asanachat.mjs can map common phrases to a command skeleton. Using the API helper Sanity check (who am I): List workspaces: Set a default workspace (optional): After that, you can omit --workspace for commands that support it. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills sundial-org/asana