Turn your project's todo.md into a Kanban board, without leaving VS Code

If your project already tracks work in a todo.md file - a list of headings, maybe a status note here and there - you already have the raw material for a Kanban board. You do not need a new tool, a new account, or a new file format. You need a viewer that understands the markdown you already have.

That is what NoteThink does.

The file you already have

A typical todo.md looks something like this:

### Fix the login redirect loop

### Write the onboarding email

### Ship the v2 pricing page

Plain headings, nothing fancy. NoteThink reads a file exactly like this and renders it as a Kanban board with a single "untagged" column - useful, but not the whole picture. To get real columns, add a linetag: an empty markdown link with a query string, placed at the end of a heading.

### Fix the login redirect loop [](?status=doing)

### Write the onboarding email [](?status=todo)

### Ship the v2 pricing page [](?status=done)

On GitHub, in a plain text editor, or in cat on a terminal, that [](?status=doing) renders as nothing - an empty link. NoteThink reads it as metadata: this story's status is doing. Three stories, three statuses, and NoteThink already has enough to draw three columns.

Opening the board

  1. Install NoteThink from the VS Code Marketplace
  2. Open your todo.md
  3. Right-click the file tab and choose Open With... -> NoteThink, or run NoteThink: Open Viewer from the command palette

The board appears in a webview panel beside your editor, live: edit the status= value by hand in the text editor and the card moves column the moment the change is saved (debounced, so you can keep typing). Or skip the text editor entirely - drag a card from one column to another, and NoteThink rewrites that story's status= linetag in the file for you, at the exact offset the linetag already lives.

Beyond status

Linetags are not limited to status. Add epic=, or any attribute name you choose, and NoteThink picks it up automatically. Kanban view groups by status; Line view groups by any attribute you name, when columns are not the right shape for your data.

What NoteThink writes, and what it does not

Dragging a card writes exactly two things back to the file: the story's status (or grouping attribute) linetag, and an nt_kanban_ordering_weight linetag that remembers where you dropped it within the column. Ticking a checkbox in any view toggles it in the source the same way. Nothing else changes - NoteThink never touches body text, headings, or any story it isn't told to move, and it is not a general text editor: there is no typing into it, no sync service, and no account to create. The file on disk is the single source of truth throughout, and it still opens correctly in a plain text editor or on github.com.