Attestations that pass 'gh attestation verify' are rejected by the community plugin submission checker, and recently accepted plugins ship without attestations (a missing attestation is a non-blocking recommendation). Keep the version stamp so assets stay byte-unique and inherit no attestations from prior releases. |
||
|---|---|---|
| .github/workflows | ||
| .eslintrc.json | ||
| .gitignore | ||
| .node-version | ||
| esbuild.config.mjs | ||
| i18n.ts | ||
| jest.config.js | ||
| LICENSE | ||
| main.ts | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.ja.md | ||
| README.md | ||
| styles.css | ||
| tsconfig.json | ||
| utils.test.ts | ||
| utils.ts | ||
| versions.json | ||
Property Kanban
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
- 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
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
- 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:
| Option | Description |
|---|---|
| Lane / Column | Switch the frontmatter fields used for grouping |
| Zoom | Zoom the board in/out (50%–200%) |
| Card properties | Toggle which properties are shown on cards |
| Column order | Reorder 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 a color per field (blue, green, red, yellow, purple, gray)
- Toggle from the settings or the board options popover
Installation
From the community plugin browser (recommended)
- Open Settings → Community plugins → Browse
- Search for "Property Kanban"
- Install and enable
Manual installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create the folder
.obsidian/plugins/property-kanban/in your vault - Copy the three files into that folder
- Reload Obsidian and enable "Property Kanban" under Settings → Community plugins
Usage
- Enable the plugin
- Click the dashboard icon in the left ribbon, or run
Property Kanban: Open boardfrom the command palette - The board opens
Settings
| Setting | Description | Default |
|---|---|---|
| Task folder | Folder path where task notes are stored | tasks |
| Card display properties | Frontmatter fields shown on cards, with colors | category, project, due, created |
| Quick action: show button | Show the quick action button on cards | off |
| Quick action: button label | Text shown on the card | Done |
| Quick action: target field | Frontmatter field to update | status |
| Quick action: value to set | Value written when the button is clicked | Done |
| Parent field name | Frontmatter field written to child notes for the parent link | parent |
| Children field name | Frontmatter field auto-generated on parent notes | children |
| Maintain children list | Keep a wikilink list of children on parent notes (off = parent link only) | on |
| Add empty parent field to new cards | Write an empty parent field even without a parent | off |
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 when the Obsidian interface language is set to 日本語.
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
vault.trash()— 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