Integrations
Task tracker @devintern/code @devintern/pm

DevIntern + Asana

Keep Asana as your source of truth. @devintern/pm turns rough notes into structured tasks, and @devintern/code implements them end-to-end with PRs and section moves.

Get started Setup guide Free for interactive use · FSL source-available

How it works

What DevIntern does with Asana

Each product path keeps Asana as the handoff surface. No rip-and-replace, no new dashboard.

@devintern/pm

Create Asana tasks from AI drafts

  1. 1 Set TASK_TRACKER=asana with a personal access token.
  2. 2 Choose a source type in the interactive flow.
  3. 3 Review and post the task to your Asana project.
@devintern/code

Implement Asana tasks end-to-end

  1. 1 Run devintern against a task GID, task URL, or a section filter batch query.
  2. 2 Agent fetches the task notes, comments, and attachments.
  3. 3 Creates a branch, implements, self-reviews, opens a PR, and comments back on the task.

Capabilities

Built for real Asana workflows

Asana REST API for task creation and implementation

Project and workspace targeting via configuration

Repo-aware acceptance criteria in task descriptions

Status moves between project sections configured in settings.json

Batch runs with section, assignee, and completion filters

Optional story points via a numeric custom field

A single run

From Asana ticket to reviewed pull request

A single run takes an Asana task from GID to reviewed pull request. Asana has no global workflow states, so DevIntern moves tasks between the sections of your project instead.

  1. 1

    Fetch the task

    DevIntern accepts a task GID or full task URL and pulls the notes, tags, attachments, and comments over the Asana REST API.

  2. 2

    Feasibility gate

    The agent checks the task notes for enough detail to implement. An underspecified task stops the run, and the questions land as a task comment where the author will see them.

  3. 3

    Task moves to your In Progress section

    If the task passes the gate, DevIntern moves it to the section you configure per project GID in settings.json. Transitioning to done, completed, or closed marks the task complete instead of moving sections.

  4. 4

    Implement and self-review

    The agent implements on a feature branch, rereads its own diff, fixes what it catches, and only then moves toward a pull request.

  5. 5

    Deliver back to Asana

    With --create-pr, DevIntern opens a pull request, moves the task to your review section, and posts an implementation summary comment. Incomplete runs return the task to your To Do section with an explanation.

What gets written back to Asana

Comments are posted as Asana rich text with a plain-text fallback when formatting is rejected. Use --skip-comments to run without comments or section moves.

Feasibility check

Assessment comment with the questions blocking implementation

Successful implementation

Implementation summary comment with a link to the pull request

Incomplete run or max turns

Incomplete-run comment explaining what remains

Estimation run

Estimate written to your numeric custom field when configured, otherwise posted as a comment only

Batch runs

Work through Asana in batches

Asana has no query language, so DevIntern provides a small filter syntax: project, section, assignee, and completion filters plus free text matched against task names. Tasks are listed and filtered locally, which keeps batch runs working on free Asana plans.

Single task, PR included

$ devintern 1200000000000001 --create-pr

Drain an open section

$ devintern --query 'section:"To Do" completed:false' --create-pr

Filter by project, assignee, and text

$ devintern --query 'project:1200000000000000 assignee:Ada login bug' --create-pr

project: defaults to ASANA_DEFAULT_PROJECT_GID when set. The first 100 tasks of the project are read.

AI estimation on a custom field

$ devintern 1200000000000001 --estimate

Name your numeric points field in ASANA_STORY_POINTS_FIELD to have the value written; otherwise the estimate is comment-only.

Asana specifics at a glance

API

Asana REST API with a personal access token

Query language

Filter syntax (project, section, assignee, completed) plus text match via --query

Status updates

Section moves per project GID from settings.json; done or completed marks the task complete

Estimation

Numeric custom field named in ASANA_STORY_POINTS_FIELD, or comment-only without one

Plan requirements

Works on free Asana plans; tasks are filtered locally instead of using the Premium search API

Batch size

First 100 tasks of a project per query; narrow with sections on larger projects

Get connected

Setup guides and configuration

Credentials stay in project-local .env files. DevIntern runs on your machine or server, not a shared implementation cloud.

TASK_TRACKER= asana

FAQ

Common questions about Asana

Does @devintern/code read Asana tasks?

Yes. Set TASK_TRACKER=asana, then run devintern against a task GID or URL. It implements the change, opens a PR, moves the task between sections, and posts summary comments. Batch selection uses filters like section:"To Do" completed:false via --query.

Where do I get an Asana token?

Create a personal access token in Asana developer settings and add it to .devintern-pm/.env.

Does DevIntern work on free Asana plans?

Yes. Batch queries list the project's tasks and filter them locally instead of calling the workspace search API, which requires Premium. Section moves, comments, and estimation all work on free plans.

How does estimation work without a points field?

Asana has no built-in estimation field. If your project has a numeric custom field for points, name it in ASANA_STORY_POINTS_FIELD and --estimate writes the value and posts the reasoning. Without it, estimates are posted as comments only.

Related

Teams also connect these tools

Asana ready

Try DevIntern with Asana

Connect Asana, run your first workflow, and keep the trackers, repos, and reviewers your team already trusts.

Free for interactive use · FSL source-available · BYO model keys