Yasin Aribuga68 downloadsA minimal Todoist-like task manager for Obsidian using local Markdown files.
belki is a minimal Todoist-like task manager for Obsidian. It keeps your tasks inside your vault as readable Markdown and does not connect to Todoist or any external service.
belki aims to sit between lightweight checkbox-based task plugins and heavier task-note systems: structured enough to work as a real task manager, but small enough to stay calm and easy to use.
Task data is stored by default in:
_belki_files/
├─ main.md
├─ Data/
│ └─ YYYY-MM.md
└─ Attachments/
└─ <task-id>/
| Today | Today with overdue tasks |
|---|---|
![]() |
![]() |
| Task details | Upcoming |
|---|---|
![]() |
![]() |
belki stores tasks as Markdown list items with metadata underneath:
- [ ] Task title
id:: task-unique-id
created:: 2026-06-22
due:: 2026-06-22
deadline:: 2026-06-25
priority:: P1
description:: Optional description
labels:: client, urgent
attachments:: [[_belki_files/Attachments/task-unique-id/image.png]]
Tasks without a project appear in the Inbox smart view and do not write a project:: line. When a real project is selected, belki writes project:: Project Name.
Completed tasks use [x] and include:
completed:: 2026-06-22
Older belki/tasks.md files can be migrated with the command:
belki: Migrate old task file
Priorities are stored as Markdown metadata:
P1 = Priority 1P2 = Priority 2P3 = Priority 3P4 = Priority 4none = no priorityIn the UI, priority is shown with subtle colors, including the task completion circle. Task titles are not recolored by priority.
Labels are stored in the labels:: metadata field as comma-separated values. belki normalizes duplicate labels and can show labels as small chips in task rows and task details.
The Filters & Labels view lets you browse label-based task lists. Label colors can be customized in settings; otherwise belki assigns stable muted colors automatically.
Attachments are copied into the vault under:
_belki_files/Attachments/<task-id>/
Image attachments show previews in the task detail modal and can be opened in a lightbox. Other attachments are shown as compact file rows. Attachments can be downloaded or removed from a task.
belki stores task data as local Markdown files in the configurable data folder, _belki_files/ by default. Because these are real vault files, they can appear in Obsidian search, graph, and unlinked mentions.
If you do not want belki task data to appear there, add _belki_files/ to Obsidian Settings -> Files and links -> Excluded files. If you use a custom belki data folder, exclude that folder instead.
belki itself only reads its configured data folder and does not scan the whole vault. Future vault-wide checklist import should respect Obsidian excluded folders.
The task board includes a Sorting menu with:
Today keeps today's tasks and overdue tasks in separate groups. Upcoming keeps date groups in date order. Sorting applies inside the current group or view.
The Today view also includes an overdue range selector:
These are planned directions, not promises for the current release:
tomorrow, next Friday, or in 3 days and have belki convert them into due dates.belki is available from the Obsidian Community Plugins directory:
https://community.obsidian.md/plugins/belki
belki.belki: Open.manifest.json, main.js, and styles.css from a GitHub release..obsidian/plugins/belki/
belki in Community plugins.belki: Open.Requirements:
Install dependencies:
npm install
Build:
npm run build
The build outputs:
main.jsstyles.cssmanifest.jsonFor local testing, copy or symlink this repository into an Obsidian vault at:
.obsidian/plugins/belki/
Then reload Obsidian and enable the plugin.
Before publishing a release:
version in manifest.json and package.json.versions.json with the same plugin version and the matching minAppVersion.npm install.npm run build.manifest.json, main.js, and styles.css exist.0.1.0.v.manifest.json, main.js, and styles.css as individual release assets.belki stores task data and attachments inside your Obsidian vault. It does not add telemetry, analytics, cloud sync, account login, or network requests.
MIT. See LICENSE.
Yasin Aribuga