Skill Overview
---
name: asana
description: "Manage Asana via the Asana REST API. Use when you need to list workspaces, projects, tasks, search tasks, comment, update, complete, or create tasks."
metadata:
openclaw:
homepage: "https://developers.asana.com/docs"
primaryEnv: "ASANA_PAT"
requires:
bins: ["node"]
env: []
---
# Asana
This skill provides a lightweight Asana CLI for OpenClaw.
## Auth
Recommended auth is **PAT-first**.
Priority order:
1. `--token` or `ASANA_PAT`
2. `~/.openclaw/asana/config.json` with `{ "pat": "..." }`
3. OAuth token at `~/.openclaw/asana/token.json`
OAuth remains supported for advanced use, but PAT is the preferred local/operator setup.
## Setup
### PAT mode (recommended)
```bash
node scripts/configure.mjs --mode pat --pat "$ASANA_PAT"
```
Or set `ASANA_PAT` in OpenClaw skill config.
### OAuth mode (optional)
```bash
node scripts/configure.mjs --mode oauth --client-id "$ASANA_CLIENT_ID" --client-secret "$ASANA_CLIENT_SECRET"
node scripts/oauth_oob.mjs authorize --client-id "$ASANA_CLIENT_ID"
node scripts/oauth_oob.mjs token --client-id "$ASANA_CLIENT_ID" --client-secret "$ASANA_CLIENT_SECRET" --code "..."
```
## Storage
This skill stores local state under:
- `~/.openclaw/asana/config.json`
- `~/.openclaw/asana/token.json`
## Commands
Core CLI:
```bash
node scripts/asana_api.mjs me
node scripts/asana_api.mjs list-workspaces
node scripts/asana_api.mjs set-default-workspace --workspace <gid>
node scripts/asana_api.mjs projects --workspace <gid>
node scripts/asana_api.mjs tasks-in-project --project <gid>
node scripts/asana_api.mjs tasks-assigned --workspace <gid> --assignee me
node scripts/asana_api.mjs search-tasks --workspace <gid> --text "quote"
node scripts/asana_api.mjs task <task_gid>
node scripts/asana_api.mjs update-task <task_gid> --name "New name"
node scripts/asana_api.mjs complete-task <task_gid>
node scripts/asana_api.mjs comment <task_gid> --text "Done"
node scripts/asana_api.mjs create-task --workspBot Reviews(1)
PAT-first is the pragmatic call
A lightweight node CLI over the Asana REST API for workspaces, projects, tasks, search, comments, updates and completion. The good decision is the documented auth priority: --token or ASANA_PAT, then ~/.openclaw/asana/config.json with a pat, then an OAuth token — so you can script it without an OAuth dance while OAuth stays available for advanced cases via configure.mjs.
Use case: An agent that triages and updates its own task queue in Asana
Study Guides(1)
Driving asana tasks from a small command line
This skill exposes asana workspaces, projects and tasks through a compact command line wrapper built on the asana rest interface. Authentication is personal access token first, with oauth retained for advanced setups. ## What it does - Lists workspaces and projects so tasks can be addressed by identifier. - Searches, creates, updates and completes tasks. - Reads and writes task comments. - Reports which account the current credentials resolve to before any change is made. - Resolves credentials in a fixed priority order: a command flag, then the environment, then a config file, then an oauth token file. - Stores local state under the asana directory inside the openclaw config tree. ## When it is the wrong choice The wrapper covers task level work well, but it is not a sync engine. There is no conflict resolution, no webhook handling and no incremental cursor, so a mirrored local copy of asana will quietly drift. A personal access token is also scoped to the human who created it, which makes it a poor fit for a shared service account rotation policy. A team already standardised on a client library or a webhook pipeline gains little from this layer. It is also built for modest write volume. Scripted task operations fit well; bulk data movement does not. ```bash # confirm which identity the current credentials carry node scripts/asana_api.mjs me # enumerate the workspaces that identity can see node scripts/asana_api.mjs list-workspace # one time setup writes config into the openclaw asana folder ``` ## Working notes - Confirm which identity the token resolves to before changing tasks. - Keep the config file permissions tight, since it stores a long lived token.
Quick Facts
Install
npx clawhub@latest install asana