Four Layer Todo
approvedby vrytfmcat
Centering on the whiteboard, manage attention among the cache workspace, task memory, and peripheral long-term objects. - This plugin has not been manually reviewed by Obsidian staff.
Four Layer Todo for Obsidian
Four-Layer Todo is a local-first task workspace for Obsidian. It keeps the current task in a whiteboard while moving less immediate work through a workbench, task pools, and long-term objects.
Demo Video
Watch the subtitled Four Layer Todo demo
Features
- A whiteboard for the one to three tasks currently in focus.
- A reversible workbench with an inbox, to-do list, and cache list.
- Expandable Kanban-style task pools.
- Long-term objects with related tasks.
- Task connections, text notes, card movement, archiving, deletion, and completion.
- Markdown files and folders as the single source of task content and layers.
- Links to notes outside the task folder without moving the original file.
- Import and export through Obsidian's official Canvas format.
The plugin is local-first. It does not send task content to a network service. The AI buttons are interface placeholders only.
Interface Languages
Four Layer Todo includes complete English and Chinese interfaces. By default, the plugin follows Obsidian's language. You can also choose Automatic, English, or Chinese under Settings → Community plugins → Four Layer Todo.
Changing the interface language never renames existing notes, task folders, or frontmatter values. This keeps existing Chinese vaults compatible while making the full interface usable for English-speaking users. New sample content is created in the active interface language.
Install From Source
npm install
npm run build
To install the development build into the current vault:
npm run install:local
Then enable Four-Layer Todo in Obsidian's Community Plugins settings and run Open Four-Layer Todo from the command palette.
Markdown / Canvas Source of Truth
Set the task-notes folder in the plugin settings. The default is 待办
("Todo") for compatibility with existing vaults. There is no synchronization
toggle: the plugin always reads and writes the files in this folder.
Before the first 0.1.11 startup, let Obsidian Sync finish and disable or update older plugin builds on other devices. The one-time migration rewrites managed frontmatter; any duplicate IDs received from Sync are isolated for manual review instead of being guessed or deleted.
- Only Markdown with
fourLayerTodo: trueis indexed; ordinary notes in the same folders are untouched. - The file name is the title, the body is the detail, and frontmatter stores only the stable ID, priority, completion, order, long-term-object ID, and linked-note path.
- The directory is the only task-layer source. Moving or renaming a managed note updates the UI; Vault events never move a file from an in-memory copy.
- Each direct child folder under
任务存储器/is a task pool. Its_任务池.mdstores the pool description, color, and order. - The Load tasks button in settings manually rebuilds the task index from the configured task folder and refreshes the plugin view. This operation is read-only: it never writes, moves, copies, or deletes files.
白板/任务白板.canvasstores file nodes, coordinates, colors, connections, and text notes only. Missing or invalid Canvas data cannot change a task's directory.data.jsonstores only the task root, language, transparent-interface preference, and file-schema migration version. It contains no task body or workspace snapshot.- Active duplicate IDs are excluded from the normal index and listed with all conflicting paths in plugin settings. Resolve them manually before editing or moving those tasks.
- Deleting a managed note removes its task card.
- Linking a note inside the task folder moves it to the selected task area. Linking a note outside the task folder creates a backlink-style task card and leaves the original file in place.
The synchronized folder layout is:
待办/
├── 白板/
├── 缓存工作台/
│ ├── 收集箱/
│ ├── 待办列表/
│ └── 缓存列表/
├── 任务存储器/
│ └── <task-pool>/
├── 归档/
│ └── YYYY-MM-DD/
└── 长期对象/
Archiving moves the managed note into the dated archive folder. Deleting sends the managed Markdown note to Obsidian's trash.
Development Checks
npm run build
npm test
npm run lint
node --check main.js
License
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.