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.
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.
| 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 |
- 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)
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.
- Clone or download this repository
- Open
chrome://extensionsin Chrome - Enable Developer mode (toggle in the top right)
- Click Load unpacked
- Select the repository directory
The extension activates automatically on Asana pages.
- 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
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.
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)
Created with AI: Claude Code with Opus 4.6
Directed by: Eric Hammond
Apache 2.0 — see LICENSE.