Property Kanban

approved

by Higa Fuyuki

Kanban board driven by note frontmatter properties. Creating, moving, and deleting cards stays in sync with note properties, with swimlanes, quick actions, and parent/child links. - This plugin has not been manually reviewed by Obsidian staff.

564 downloadsUpdated 1mo agoMIT

Property Kanban

日本語版 README はこちら

A kanban task board for Obsidian driven entirely by note frontmatter properties. Task notes are the single source of truth: creating, moving, and deleting cards on the board updates the note properties instantly — and editing notes updates the board.

Features

Kanban board

  • Cards are grouped automatically by any frontmatter field
  • Cards within columns can be sorted automatically by any frontmatter property, ascending or descending
  • Drag & drop cards between columns → frontmatter updates automatically
  • Click a card title to open the note (if the note is already open in another tab, jumps to that tab instead of opening a duplicate)
  • File changes, creations, and deletions are detected in real time and the board refreshes automatically

First-run setup (automatic sample tasks)

The first time you open the board, if the task folder contains no notes yet, the plugin creates the folder and seeds four sample tasks.

  • The sample note bodies explain basic usage (moving cards, adding tasks, customizing the board, swimlanes), generated in English, Japanese, or Chinese (Simplified/Traditional) following your Obsidian language setting
  • The sample properties match the default card display properties (category / project / due / created), so the colored tags and due dates render out of the box
  • The board opens in swimlane view (lane: project × column: status); with two different project values included, the two-dimensional layout is visible from the start
  • This happens only once, on the first board open. Folders that already contain notes are left untouched, and existing notes are never modified
  • Delete the sample cards from the board whenever you no longer need them

Swimlanes

Group in two dimensions using two properties:

  • Lane: the outer grouping (e.g. project) → horizontal rows
  • Column: the grouping within each lane (e.g. status) → columns inside each row
┌─ Project A ──────────────────────────────┐
│ | To do  | In progress | Done |          │
│ | card   | card        | card |          │
└──────────────────────────────────────────┘
┌─ Project B ──────────────────────────────┐
│ | To do  | In progress | Done |          │
│ | card   | card        | card |          │
└──────────────────────────────────────────┘

Cards can be dragged between lanes as well — both the lane and column frontmatter fields are updated at once.

Card creation

  • Create from the "+ New task" button at the top of the board, or "+ Add card" in each column
  • Values auto-detected from the frontmatter of existing tasks are shown as suggestions
  • You can also type a brand-new value to set a new property value on the spot
  • Fields whose Obsidian property type is Date or Date & time get a native calendar picker instead of a text box, and the value is written in Obsidian's own format (YYYY-MM-DD / YYYY-MM-DDTHH:mm:ss). Untyped fields whose existing values all look like dates get the picker too
  • A Markdown note with frontmatter is created in the configured folder

Card deletion

  • Hover over a card to reveal the menu button
  • Choosing "Delete" moves the note to the trash
  • A confirmation dialog is shown (check "Don't ask again" to skip it in the future)
  • On deletion, parent links of its child notes are cleared and the note is removed from its parent's children list automatically

Quick action button

Show a one-click button on cards that sets a specific frontmatter field to a preset value (e.g. set status to "Done").

  • Enable it under "Quick action button" in the settings and configure the label, target field, and value
  • The button is hidden on cards that already have the target value
  • Clicking it updates the note frontmatter instantly and shows a notice

Parent/child links

Manage parent/child relationships between cards as frontmatter wikilinks, so you can follow the hierarchy in Obsidian's graph view and backlinks.

  • Data model: the child note's parent link (e.g. parent: "[[Parent task]]") is the source of truth; the parent note's children list (a list of wikilinks) is derived data generated by the plugin
  • Set parent: card menu → "Set parent…" opens a fuzzy search (the card itself and its descendants are excluded to prevent cycles)
  • Remove parent: menu → "Remove parent"
  • Add child: parent card's menu → "Add child…" opens the create modal with the parent pre-selected
  • Multi-level: since the hierarchy follows parent links, grandchildren and deeper levels work too
  • Rebuild: if lists get out of sync from manual edits, use "Rebuild parent/child links" in the settings or the command palette to regenerate all children lists

Board options (⚙)

Click the gear icon in the header to open the board options popover:

OptionDescription
Lane / ColumnSwitch the frontmatter fields used for grouping
SortingSort cards within columns by one frontmatter property, ascending or descending. Numbers compare numerically, cards missing the property go last; "None" keeps the natural order
ZoomZoom the board in/out (50%–200%)
Card propertiesToggle which properties are shown on cards
Column orderReorder lanes/columns (drag & drop) and toggle their visibility

Card display properties

Configure which frontmatter fields are shown as tags on cards.

  • Add or remove any field — pick one from the fields found in your task folder notes, or type a field name manually
  • Pick a color per field (blue, green, red, yellow, purple, gray, orange, pink, teal)
  • Toggle from the settings or the board options popover

Installation

From the community plugin browser (recommended)

  1. Open Settings → Community plugins → Browse
  2. Search for "Property Kanban"
  3. Install and enable

Manual installation

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Create the folder .obsidian/plugins/property-kanban/ in your vault
  3. Copy the three files into that folder
  4. Reload Obsidian and enable "Property Kanban" under Settings → Community plugins

Usage

  1. Enable the plugin
  2. Click the dashboard icon in the left ribbon, or run Property Kanban: Open board from the command palette
  3. The board opens. On first open, the task folder and four sample tasks with a short usage guide are created automatically, shown as swimlanes (lane: project × column: status)
  4. To match your own notes, pick any frontmatter properties as the lane/column in the ⚙ board options — columns are generated automatically from the values your notes actually use (set Column to "None" for a one-dimensional board)

Settings

SettingDescriptionDefault
Task folderFolder path where task notes are storedtasks
Card display propertiesFrontmatter fields shown on cards, with colorscategory, project, due, created
Quick action: show buttonShow the quick action button on cardsoff
Quick action: button labelText shown on the cardDone
Quick action: target fieldFrontmatter field to updatestatus
Quick action: value to setValue written when the button is clickedDone
Parent field nameFrontmatter field written to child notes for the parent linkparent
Children field nameFrontmatter field auto-generated on parent noteschildren
Maintain children listKeep a wikilink list of children on parent notes (off = parent link only)on
Add empty parent field to new cardsWrite an empty parent field even without a parentoff

Grouping (lane/column), ordering, visibility, and zoom are configured from the board options popover and saved automatically.

The plugin UI is in English by default and switches to Japanese or Chinese (Simplified/Traditional) following the Obsidian interface language.

How it works

  • Frontmatter is read and written by parsing file content directly (no dependency on the metadata cache)
  • Grouping fields and column values are auto-detected from task note frontmatter
  • Board refreshes are debounced (150 ms) to coalesce rapid file events
  • Card deletion uses fileManager.trashFile() — notes are moved to the trash, never permanently deleted
  • No data ever leaves your vault; the plugin makes no network requests

Development

# Install dependencies
npm install

# Development build (watch mode)
npm run dev

# Production build
npm run build

# Type check + ESLint + tests
npm run check

License

MIT

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.