Task Tracker

approvedunreviewed

by Ahmed Hassan

A Jira-style task tracker over a flat folder of markdown files.

↓ 95 downloadsUpdated 14d agoMIT

Obsidian Task Tracker

Support

If you find this plugin useful, you can support its development here: https://buymeacoffee.com/a7med7asan15

A Jira-style task tracker for Obsidian. Tasks are plain markdown files in a flat folder; filtering, editing and comments happen in a two-pane GUI.

Features

  • Two-pane view: filterable task list, structured detail pane.
  • Search, collapsible filter dropdowns, sort, group-by, and a hide-done toggle.
  • Drag the divider to resize the list; in a narrow pane the list and the detail view take turns.
  • Fields you define yourself from settings — text, number, date, select, multi-select, checkbox, person.
  • Comments with author and timestamp, editable in place.
  • Every task is a normal markdown file that still reads well without the plugin.

Task file format

---
id: TASK-42
title: Fix login redirect
status: In Progress
assignee: Ahmed
due: 2026-09-28
created: 2026-09-21T08:45:00
updated: 2026-09-21T09:10:00
---

## Description

The redirect loops when the session cookie is stale.

## Comments

### Ahmed — 2026-09-21T09:10:00
Reproduced on staging.

Anything else you write in the file is left alone by the plugin.

Section boundaries (## Description, ## Comments, ...) are found by scanning for the next top-level ## heading. If you type a ## heading of your own inside a description or comment, the plugin demotes it to ### when saving so it can't be mistaken for a section boundary — your heading and its text are kept, just one level down.

Settings

  • Tasks folder — where tasks without a project live. Flat; subfolders are ignored.

  • Projects — each project is a folder with a settings note and a tasks folder. The note's properties define the project: its name, ID prefix, and its own fields, statuses, and due field. Edit them by hand, or with the ⚙ button next to the project picker in the tracker. A vault with two projects looks like:

    Tasks/                          tasks with no project (TASK-1, …)
    Project1/Settings/project.md    tt-project: Project1, idPrefix: PROJ1, fields: …
    Project1/Tasks/                 PROJ1-1, PROJ1-2, …
    Project2/Settings/project.md
    Project2/Tasks/                 PROJ2-1, …
    

    Projects created before settings notes existed are moved into notes the first time the plugin starts.

  • ID prefix — TASK produces TASK-1, TASK-2, …

  • Your name — the author stamped on comments.

  • Fields — add, rename, reorder, and delete the fields of tasks without a project (each project has its own, in its settings note). A field's key is its frontmatter key and is fixed once created; its label is free to change.

  • Status field / done statuses — which field drives "hide done".

  • Due date field — drives the due and overdue badges.

Deleting a field hides it but leaves the data in your files. Use Clean up orphaned frontmatter keys when you want it gone for good.

Development

npm install
cp .env.example .env   # set VAULT_PATH to the vault you test against
npm run dev            # watch build, copies into the vault on each rebuild
npm test               # unit tests
npm run typecheck

docs/manual-test.md is the checklist for the parts unit tests can't reach.

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.