Manuel Delgado Tenorio13 downloadsPlan your work on a kanban board with swimlanes, a list, a calendar and a timeline, where every card and every lane is a note.
Plan your work in Obsidian on a kanban board with swimlanes, a list, a calendar and a timeline, where every card and every lane is a note.
A Matter is anything worth keeping an eye on: a kitchen renovation, the household bills, a thesis. An Action is one step that moves a Matter forward. Each Matter is a lane on the board and each Action a card in it. Both are ordinary notes in your vault, so they take part in links, backlinks, search and Bases like anything else.

Matters that Matter works with any theme. Its companion theme, Calm Matters, gives it the look in these pictures: a warm paper page, Dusk for the evening, a friendly serif for titles and calm, frosted panels, across your whole vault. It changes how things look, not what they do.
To add it: Settings → Appearance → Themes → Manage, search for Calm Matters, then Install and use. Setup offers the same in one click, and so does the top of the plugin's settings.
.base file next to your other bases and respect its filters.Call Charlie about the worktop /call #Kitchen @Charlie !1 tomorrow 10am. Dates are read in English and Spanish.matters code block lists Actions as cards inside any note, from one line in quick add's tokens (#Kitchen renovation, @Charlie waiting, /call today). Empty, it shows a Matter's or a person's open Actions on their own note, or what's due today elsewhere.![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
All pictures show the Calm Matters theme, with the sample content setup offers.
Setup opens in a tab the first time the plugin loads. It creates nothing until the last step, and it never overwrites a file.
MTM/… by default). Existing folders are reused.Tick Add sample content to get a small, made-up life to try every view with: Matters across four Spheres, Actions in every type and status, and the people they involve, with dates relative to today. The command Remove sample content moves those notes to the trash.
Then run Quick add from the command palette (or give it a hotkey in Settings → Hotkeys) and start capturing.
Every property the plugin reads or writes starts with mtm-, so it never touches a status or type of your own. Notes are recognised by mtm-kind, not by folder, so Matters and Actions can live anywhere in your vault.
---
mtm-kind: action
mtm-type: call
mtm-matter: "[[Kitchen renovation]]"
mtm-status: next
mtm-due: 2026-10-15T10:00
mtm-priority: 1
mtm-waiting-on: "[[Charlie Carter]]"
mtm-people:
- "[[Charlie Carter]]"
---
Confirm the worktop measurements before ordering.
- [ ] Ask for the revised quote
The Action's title is its file name. The body is plain Markdown: the inspector shows the text at the top as Details and the task items as a Checklist, and it never restructures the note.

The plugin never rewrites a value on its own. If an Action names a status, type or Matter that doesn't exist (say, after you delete a status, or before settings have synced), the card shows a badge with the value and the views use a fallback. Nothing is written until you move the Action, dismiss the badge, or run Fix orphaned Actions.
| Command | What it does |
|---|---|
| Quick add | Captures an Action |
| New Matter | Creates a Matter: name, outcome, review rhythm and Sphere |
| Open board | Opens the board, or lets you choose one if you have several |
| Mark as done | Marks the current Action as done |
| Open Matter overview | Opens the overview of the current Matter note |
| Mark as reviewed | Records today as the current Matter's last review |
| Process Inbox | Steps through the Inbox one Action at a time |
| Review Matters | Steps through the Matters whose review is due, one at a time |
| Run setup | Opens setup again |
| Fix orphaned Actions | Gives every Action with an unknown status, type or Matter the fallback value, after asking |
| Remove sample content | Moves the sample notes to the trash |
No command has a default hotkey.
mtm-start and mtm-due hold either a date (2026-10-15, all day) or a date and time (2026-10-15T10:00). Obsidian's Properties panel and Bases tables show an all-day date as "00:00", and editing it with Obsidian's date picker adds a time, which makes the Action timed. Edit dates in the inspector to keep them all day..obsidian folder), setup reads the statuses, types, Spheres and folders back from the notes, changing none of them.A few features reach into parts of Obsidian that have no public API. Each one is isolated, checks that what it needs is there, and falls back quietly if it isn't:
| Feature | What it touches | Without it |
|---|---|---|
| Date properties | Sets mtm-start and mtm-due to the Date & time property type (in .obsidian/types.json), so Obsidian doesn't treat them as dates only |
Dates still work; only Obsidian's own date widgets differ |
| Matters open as their overview | Rewrites what a tab is asked to show before it renders, so Back and Forward work with no flash. Can be turned off in settings | Matter notes open as notes |
| What matters today? | Adds a panel to Obsidian's empty new tab. Can be turned off in settings | New tabs look as usual |
| File explorer | Adds classes to Action entries (a dot in the type's colour) | Entries look as usual |
| The Calm Matters card | Reads the name of the active theme, so setup and settings can say when Calm Matters is in use; its button opens Obsidian's theme browser at the theme through Obsidian's own link handler. It never installs or switches a theme | The card always offers the theme; the button opens the obsidian:// link instead |
Because Matters and Actions are recognised by mtm-kind rather than by folder, the plugin goes through the vault's list of Markdown notes and reads each note's cached properties to find them. It makes no network requests, collects nothing, and reads and writes only inside your vault.
npm install
npm run dev # watch build
npm test
npm run lint
styles.css is generated from the design sources and committed as a build output; don't edit it by hand.