Skip to content

alestic/subtask-navigation-for-asana

Repository files navigation

Subtask Navigation for Asana

Checks License

A Chrome extension that adds Shift+Alt+Arrow hotkeys to navigate the task tree on app.asana.com — move between sibling subtasks, jump to the parent, or return to the last-visited (or first) child subtask.

Why?

Asana has no built-in keyboard shortcuts for navigating between subtasks. If you work with deeply nested task hierarchies with many subtasks, moving around the tree means lots of clicking, scrolling, and more clicking.

This extension adds six hotkeys that let you navigate the full hierarchy without leaving the keyboard.

Hotkeys

Key Action
Shift+Alt+Up Previous sibling subtask
Shift+Alt+Down Next sibling subtask
Shift+Alt+Left Parent task
Shift+Alt+Right Last-visited child subtask (or first)
Shift+Alt+Home First sibling
Shift+Alt+End Last sibling

Features

  • Position indicator toast ("3 / 5") after each navigation
  • Remembers last-visited subtask at each level (Left then Right is a round-trip)
  • Caches sibling lists in the browser for fast repeated navigation
  • Per-tab navigation state (independent positions in each Chrome tab)
  • Seamless SPA navigation (no page reload)
  • Manifest V3
  • Open source (Apache 2.0)

How It Works

When you press a navigation hotkey, the extension reads the current task ID from the URL, calls Asana's REST API (within your browser using your existing session cookies) to look up the parent task and its subtasks, then navigates using Asana's internal client-side router for a seamless transition.

Install

  1. Clone or download this repository
  2. Open chrome://extensions in Chrome
  3. Enable Developer mode (toggle in the top right)
  4. Click Load unpacked
  5. Select the repository directory

The extension activates automatically on Asana pages.

Limitations

  • SPA navigation relies on Asana's internal React component structure (may break if Asana changes internals)
  • Maximum 100 siblings per parent task (Asana API page limit)
  • Hotkeys are disabled when focus is in a text input or editable field

Privacy

This extension calls Asana's own API using your existing browser session to look up task relationships. It does not communicate with any external servers or collect any data. See PRIVACY.md for details.

Development

Requires Node.js (for Prettier and manifest validation) and uv (for pre-commit hooks).

make help           # show all targets
make lint           # check formatting (Markdown, CSS, JavaScript)
make format         # auto-format all files
make validate       # validate manifest.json
make package        # create .zip for Chrome Web Store upload
make install-hooks  # install pre-commit git hooks (requires uv)

Attribution

Created with AI: Claude Code with Opus 4.6

Directed by: Eric Hammond

License

Apache 2.0 — see LICENSE.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors