Skip to content

DanielBiegler/inline-task-tracker-vscode-extension

Repository files navigation

Inline Task Tracker

Track tasks directly in your code comments. Reference tasks with TASK(<ID>) in any comment, and each task lives as a versioned markdown file in your repository under tasks/<ID>/index.md.

Features

  • Inline task references — Write TASK(<ID>) in any code comment to link to a task
  • Task sidebar — Browse all tasks grouped by status (Doing, ToDo, Done) with sorting by priority or date
  • CodeLens — See task title, status and priority inline above each reference
  • Hover tooltips — Hover over a task reference to see full details
  • IntelliSense for task references — Type TASK( and pick from a list of tasks by title instead of memorizing IDs
  • IntelliSense for task frontmatter — Get completions for keys and values when editing task markdown files
  • Quick fixes — Press Ctrl+. on a task reference to start or complete it, or on a comment to convert it into a task
  • Diagnostics — Warnings for referenced tasks that don't have a task folder yet
  • File references in sidebar — Expand any task to see all code locations that reference it, click to navigate
  • Status derived from timestamps — No manual status field; created, started, and completed dates determine whether a task is todo, doing, or done
  • Multi-root workspace support — Works correctly across all folders in a .code-workspace file; tasks are created in the repo of the active file and the sidebar merges tasks from every folder

Task file format

Tasks are stored as markdown files with YAML frontmatter:

---
title: Implement refresh token rotation
priority: 8
assignee: dan
created: 2026-03-20T10:00:00Z
started: 2026-03-25T09:00:00Z
---

On every token refresh, invalidate the old refresh token and issue a new one.

Extension Settings

Setting Default Description
inlineTaskTracker.pattern TASK\(([A-Za-z0-9_-]+)\) Regex pattern to find task references (must have one capture group)
inlineTaskTracker.tasksDir tasks Path to the tasks directory, relative to workspace folder root. Supports per-folder overrides in .code-workspace files
inlineTaskTracker.fileGlob **/*.{ts,js,tsx,jsx,...} Glob pattern for files to scan
inlineTaskTracker.commentTemplate TASK({{id}}) Template for generated task comments

Multi-root workspaces

Open a .code-workspace file with multiple repositories and the extension handles each folder independently. Tasks are always created in the tasks/ folder of whichever repo contains the active editor, and the sidebar shows a merged view of all repos' tasks.

Each folder can override inlineTaskTracker.tasksDir independently:

{
  "folders": [
    { "path": "./repo-a" },
    {
      "path": "./repo-b",
      "settings": { "inlineTaskTracker.tasksDir": "my-tasks" }
    }
  ]
}

Commands

Command Description
Task Tracker: Create Task Create a new task and optionally insert a reference at cursor
Task Tracker: Convert Comment to Task Turn an existing comment into a tracked task
Task Tracker: Refresh Tasks Rescan the workspace for task references
Task Tracker: Open Task Open a task's markdown file
Task Tracker: Copy Task ID Copy a task ID to clipboard

How it works

  1. The extension scans your workspace for TASK(<ID>) patterns in code comments
  2. It correlates each reference to a task folder at tasks/<ID>/index.md
  3. Task metadata (title, priority, assignee, dates) is parsed from YAML frontmatter
  4. Status is derived automatically: has completed = done, has started = doing, otherwise = todo
  5. All providers (CodeLens, hover, tree view, diagnostics) update live as you edit

License

MIT

Install

Either you build and package the extension yourself via running npm run package, see package.json, or you use a prebuilt archive in the releases-folder.

VSIX archives can be installed either through the UI or CLI.

For the CLI just run:

# Replace the path with your desired version
code --install-extension releases/inline-task-tracker-example.vsix
# Use the same command for updating to a newer version

For the UI open the extensions-sidebar, click the three little dots at the top of the sidebar and click "Install from VSIX"

FAQs

Why is this not on the extension marketplace?

I am not interested in jumping through Microsofts hoops, I am tired enough as it is.

Is this stable?

I am using this myself on a multi-root workspace and want to first see how the experience is once the task/issue count reaches triple digits. That will most likely lead to some changes and improvements and after I feel like the extension has seen some battles I'll stabilize to v1.

About

Track tasks/issues directly in your code comments and version control

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors