Collect TODO markers from across your Obsidian vault in one sidebar.
Cairn keeps lightweight, local task lists close to the notes they belong to. Open the sidebar to review markers, jump back to their source notes, and remove a finished item without leaving the panel.
TODO or TODO:).

After Cairn is published, open Settings → Community plugins, search for Cairn, install it, and enable it.
main.js, manifest.json, and styles.css from a Cairn release.<your-vault>/.obsidian/plugins/cairn/.Add markers to your Markdown notes, for example:
TODO: Review the project brief
- TODO: Prepare [[Launch plan|the launch plan]]
Select the Cairn ribbon icon, or run Refresh todos, to open or refresh the sidebar.
Select a note name to open the marker at its source line.
Select the circle next to a marker to remove that entire source line.
To group a note's markers, add YAML frontmatter with a tag:
---
tags:
- work
---
TODO: Send the project update
You can drag a marker into another existing tag group in the sidebar to change its note's tag.
Cairn recognizes a case-sensitive standalone keyword, with an optional colon. The default keyword is TODO; you can change it in Settings → Community plugins → Cairn. Markers can appear in ordinary text or Markdown list items. Case variants like todo or Todo are not recognized.
Open Settings → Community plugins → Cairn to configure:
TODO). The vault is rescanned automatically after changes.Cairn scans vault Markdown files locally. A scan does not add markers or otherwise change their content.
Two actions can modify a note:
tags field. The note must already contain YAML frontmatter, and Cairn uses the first tag as its sidebar group.Review and back up important notes as you normally would before using any plugin that writes to vault files.
Run Refresh todos and confirm that the note is a Markdown file containing the configured marker keyword (default TODO).
Open the source note and check its YAML frontmatter. Cairn uses the first value under tags. Edit the frontmatter directly, then run Refresh todos.
Refresh the list, then collapse and expand the relevant folder. The indicator is only applied to visible File Explorer entries.
For a manual installation, confirm that main.js, manifest.json, and styles.css are directly inside <your-vault>/.obsidian/plugins/cairn/, then restart Obsidian and enable Cairn.
Cairn runs entirely locally. It makes no network requests, sends no vault data or telemetry, and only reads or updates Markdown files in the current vault when you use its features.
This project uses pnpm and Node.js 22 or later.
pnpm install --frozen-lockfile
pnpm run dev
Run the production checks before a release:
pnpm run build
pnpm run test
pnpm run lint
See CONTRIBUTING.md for development and review expectations, SECURITY.md for vulnerability reporting, and RELEASING.md for the release checklist.
See CHANGELOG.md for release history.
Licensed under the GNU General Public License v3.0. See LICENSE.