Asana Query

unlisted

by nord342

Embed live Asana tasks in your notes with query code blocks. Filter by project, assignee, and due date, and complete tasks without leaving Obsidian.

Updated 1mo agoMIT
View on GitHub

Asana Query for Obsidian

Embed live Asana tasks in your Obsidian notes with simple query code blocks — the way Dataview queries your vault, or Jira Issue embeds Jira tickets.

No imported files, no vault clutter, no one-way "sync" dumps. Your notes query Asana directly, render the results inline, and let you complete tasks right from the note — the checkbox updates Asana.

project: Website Redesign
assignee: me
due: this-week
group: section

That block renders as a live, grouped task list with checkboxes, due-date badges, and links back to each task in Asana.

Why this instead of the other Asana plugins?

Existing Obsidian ↔ Asana plugins either create tasks from selected text, or import tasks as Markdown files into your vault. Asana Query takes the opposite approach:

  • Asana stays the source of truth. Nothing is written into your vault.
  • Queries live in templates. Drop a my-tasks block into your daily-note template and every daily note shows what's actually due that day.
  • Two-way where it matters. Ticking a checkbox completes the task in Asana (and unticking reopens it).

Setup

  1. Install the plugin and enable it.
  2. Create an Asana personal access token at app.asana.com/0/my-apps.
  3. In Settings → Asana Query, paste the token and click Connect & load workspaces, then pick your default workspace.

Works on desktop and mobile. The token is stored locally in your vault's plugin data folder — keep that in mind if you sync your vault to untrusted locations.

Writing queries

Add a code block with the asana language:

```asana
my-tasks: true
due: today-or-overdue
```

Every query needs either project: <name> or my-tasks: true. All other keys are optional:

KeyValuesDefaultWhat it does
projectproject nameTasks from this project (fuzzy name match)
my-taskstrue / falsefalseTasks from your Asana "My Tasks" list
sectionsection nameOnly tasks in a matching section
assigneeme or a person's nameOnly tasks assigned to this person
duesee belowFilter by due date
completedtrue / falsefalseShow completed instead of open tasks
workspaceworkspace namesettings defaultOverride the default workspace
sortdue, name, nonedueSort order
groupsection, nonenoneGroup tasks under section headings
limit1–50025Max tasks to show

due values

today · tomorrow · overdue · today-or-overdue · this-week (through Sunday) · next-7-days · none (no due date) · any (has a due date) · 2026-07-01 (exact date) · before 2026-07-01

Examples

Daily-note template — what needs my attention today:

```asana
my-tasks: true
due: today-or-overdue
```

Project dashboard note, grouped like the Asana board:

```asana
project: Q3 Marketing Launch
group: section
limit: 100
```

What did I ship this week (completed tasks):

```asana
my-tasks: true
completed: true
limit: 50
```

A teammate's plate before a 1:1:

```asana
project: Platform Team
assignee: Jane
due: next-7-days
```

Commands

  • Asana Query: Insert project task list — inserts a starter project: block at the cursor.
  • Asana Query: Insert my tasks due today — inserts a my-tasks block at the cursor.

Notes & limits

  • Results are cached (default 5 minutes, configurable). The ↻ button on any block fetches fresh data.
  • Uses only standard Asana API endpoints — no Asana premium/paid plan required.
  • Project name resolution uses Asana's typeahead: an exact name match wins, otherwise the closest match is used.

Installation (until it's in the community plugin directory)

  1. Download main.js, manifest.json, and styles.css from the latest release.
  2. Put them in <your vault>/.obsidian/plugins/asana-query/.
  3. Reload Obsidian and enable Asana Query under Community plugins.

Or install via BRAT with the repo path nord342/obsidian-asana-query.

Development

npm install
npm run dev    # watch mode
npm run build  # type-check + production build

Roadmap

  • Paste an Asana task URL → render an inline task chip
  • Create a task in Asana from the current line
  • Custom fields and tags in query filters

License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.