README file from
Githubbelki
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>/
Screenshots
| Today | Today with overdue tasks |
|---|---|
![]() |
![]() |
| Task details | Upcoming |
|---|---|
![]() |
![]() |
Features
- Inbox, Today, Upcoming, Projects, Filters & Labels, Search, and Completed views
- Add, edit, complete, uncomplete, delete, and reschedule tasks
- Due dates, deadlines, projects, priorities, descriptions, labels, and attachments
- Markdown-first storage using the Obsidian Vault API
- Automatic refresh when belki task data changes on disk
- Drag a task onto a project or compatible date group to update metadata
- Configurable data folder, sidebar icons, project colors, label colors, overdue range, sort mode, and fonts
Task Format
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
Priority System
Priorities are stored as Markdown metadata:
P1= Priority 1P2= Priority 2P3= Priority 3P4= Priority 4none= no priority
In the UI, priority is shown with subtle colors, including the task completion circle. Task titles are not recolored by priority.
Labels
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
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.
Obsidian Search and Excluded Files
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.
Sorting and Filtering
The task board includes a Sorting menu with:
- Smart
- Due date
- Priority
- Deadline
- Created date
- Project
- Alphabetical
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:
- Yesterday
- Last 7 days
- Last 30 days
- Older
Roadmap
These are planned directions, not promises for the current release:
- Natural language date parsing: Users should eventually be able to type dates like
tomorrow,next Friday, orin 3 daysand have belki convert them into due dates. - Standalone recurring tasks: belki should eventually support independent recurring tasks, such as daily, weekly, monthly, or completion-based repeats.
- Vault-wide checklist import: belki should eventually be able to import existing Markdown checklists from across the vault. This must respect Obsidian excluded files and folders.
- Better GTD-style workflows: belki may support lightweight GTD-style workflows such as Inbox, Next Actions, Waiting, Someday/Maybe, and Projects, without forcing users into a rigid system.
- Minimal, understandable settings: belki should avoid settings bloat. Prefer clear defaults, simple options, and optional advanced workflows instead of an overwhelming settings menu.
Installation
From Community Plugins
belki is available from the Obsidian Community Plugins directory:
https://community.obsidian.md/plugins/belki
- Open Obsidian Settings.
- Go to Community plugins.
- Search for
belki. - Install and enable the plugin.
- Run the command
belki: Open.
Manual Installation
- Download
manifest.json,main.js, andstyles.cssfrom a GitHub release. - Create this folder inside your vault:
.obsidian/plugins/belki/
- Copy the three downloaded files into that folder.
- Reload Obsidian.
- Enable
belkiin Community plugins. - Run the command
belki: Open.
Development
Requirements:
- Node.js
- npm
Install dependencies:
npm install
Build:
npm run build
The build outputs:
main.jsstyles.cssmanifest.json
For local testing, copy or symlink this repository into an Obsidian vault at:
.obsidian/plugins/belki/
Then reload Obsidian and enable the plugin.
Release Checklist
Before publishing a release:
- Update
versioninmanifest.jsonandpackage.json. - Update
versions.jsonwith the same plugin version and the matchingminAppVersion. - Run
npm install. - Run
npm run build. - Confirm
manifest.json,main.js, andstyles.cssexist. - Create a GitHub release whose tag exactly matches the plugin version, for example
0.1.0. - Do not prefix the release tag with
v. - Upload
manifest.json,main.js, andstyles.cssas individual release assets.
Privacy and Network Usage
belki stores task data and attachments inside your Obsidian vault. It does not add telemetry, analytics, cloud sync, account login, or network requests.
License
MIT. See LICENSE.
Author
Yasin Aribuga



