A calm Todoist-like task manager for Obsidian.
Tasks stay inside your vault as local Markdown files.
Community plugin · Releases · Docs
belki is a Todoist-inspired task manager that lives entirely inside your Obsidian vault. There is no account, no external service, and no sync layer. Your tasks are stored as plain Markdown files you own.
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.
belki is not a Todoist integration. It does not connect to Todoist or any external service.
- Inbox — tasks without a project.
- Today — today's tasks plus an Overdue section.
- Upcoming — future tasks grouped by date.
- Projects — all projects or one focused project.
- Filters & Labels — browse by priority, date, label, or saved smart filters.
- Activity — completed-task stats and a 26-week activity heatmap.
- Completed — completed tasks grouped by completion date.
- Search — quick overlay search across task title, description, project, and labels.
- Daily Notes — show completed tasks for a daily note in a belki panel or
belki-completedcode block, with optional auto-insert.
- Add tasks from the board, mobile composer, or command palette with
belki: Add task. - Edit title, description, project, priority, due date, deadline, labels, repeat rule, and attachments.
- Complete, uncomplete, reschedule, move, and delete tasks.
- Use
#labeland//projectin the title field while adding a task. - Use wikilinks such as
[[Project brief]]in task titles and descriptions. - Sort by Smart, Due date, Priority, Deadline, Created date, Project, or Alphabetical.
- Add sub-tasks from the parent task detail view.
- Parent task rows show a sub-task completion counter.
- Click the counter to expand an inline sub-task preview in the main task list.
- Complete sub-tasks directly from the preview.
- Reorder sub-tasks in the task detail view on desktop.
- Sub-tasks stay hidden from top-level views to avoid duplication.
- Daily, weekly, monthly, yearly, and custom repeat rules.
- Calendar-based or completion-based repeats.
- Weekly repeats can target multiple weekdays.
- Recurring tasks advance to the next occurrence when completed.
- Use Complete permanently to finish a recurring task.
- Create, rename, archive, delete, and color projects.
- Choose a project color while creating a project, or use Auto.
- Rename or delete labels without deleting tasks.
- Customize project and label colors in settings.
- Priority levels use a Todoist-like model: Priority 1, Priority 2, Priority 3, and default Priority 4.
- Priority is shown subtly on the completion circle.
- Attach files to tasks.
- Image attachments show inline previews and a lightbox.
- Other files show as compact file rows.
- Attachments are stored inside your vault.
- Responsive single-column mobile layout.
- Full-screen mobile task composer.
- Mobile task detail screen with back navigation.
- Mobile-friendly date picker and repeat controls.
- Task action menu includes Move to Today, Move to Tomorrow, Pick date, and Clear date.
belki creates a data folder in your vault. The default location is:
_belki_files/
├─ Data/
│ └─ YYYY-MM.md
└─ Attachments/
└─ <task-id>/
Each task is a Markdown list item with metadata:
- [ ] Write portfolio case study draft
id:: task-example
created:: 2026-07-05
due:: 2026-07-08
deadline:: 2026-07-10
project:: Client Work
priority:: P2
description:: Keep it short and visual.
labels:: writing, portfolioTasks without a real project simply omit project:: and appear in Inbox. Completed tasks use [x] and include a completed:: date. The data folder path is configurable in settings.
See Markdown storage for full details.
belki stores task data as local Markdown files in the configurable data folder, _belki_files/ by default. Since these are real vault files, users who do not want belki task data to appear in Obsidian search, graph, or unlinked mentions should add _belki_files/ to:
Obsidian Settings → Files and links → Excluded files
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.
- Open Obsidian Settings → Community plugins.
- Click Browse and search for
belki. - Install and enable the plugin.
- Run the command
belki: Open.
Community listing: community.obsidian.md/plugins/belki
- Download
manifest.json,main.js, andstyles.cssfrom a GitHub release. - Create this folder inside your vault:
.obsidian/plugins/belki/ - Copy the three files into that folder.
- Reload Obsidian.
- Enable belki in Settings → Community plugins.
- Run the command
belki: Open.
- Install and enable belki.
- Run
belki: Openfrom the command palette. - Click + Add task or run
belki: Add task. - Add a title, date, project, label, priority, or repeat rule.
- Tasks with no project land in Inbox.
See Getting started for a walkthrough.
| Page | Description |
|---|---|
| Getting started | Install and take your first steps |
| Tasks | Creating, editing, and completing tasks |
| Projects and Inbox | How projects and Inbox work |
| Sub-tasks | Adding and managing sub-tasks |
| Recurring tasks | Repeat rules and behavior |
| Labels and priorities | Labeling tasks and setting priority |
| Sorting and filtering | Sorting, grouping, and filtering |
| Attachments | Adding files and images to tasks |
| Activity | Completed task history and stats |
| Daily Notes | Show completed tasks for a daily note date |
| Mobile | Using belki on mobile |
| Settings | Configuration options |
| Markdown storage | How belki stores task data |
| FAQ | Common questions |
npm install
npm run buildDuring development:
npm run devBuild output is written to:
main.jsstyles.cssmanifest.json
- Update
manifest.json,package.json, andversions.json. - Run
npm run build. - Confirm
manifest.json,main.js, andstyles.cssare present. - Create a GitHub release whose tag exactly matches the manifest version.
- Upload
manifest.json,main.js, andstyles.cssas release assets.
See RELEASE.md for the full process.
belki does not add telemetry, does not call external APIs, and does not require an account. It reads and writes task data only inside its configured vault data folder.
These are directions being explored, not commitments:
- Natural language date parsing (
tomorrow,next Friday,in 3 days). - Standalone recurring task refinements.
- Vault-wide checklist import that respects Obsidian excluded files and folders.
- Better lightweight GTD-style workflows such as Inbox, Next Actions, Waiting, Someday/Maybe, and Projects.
- Minimal, understandable settings with clear defaults and optional advanced workflows.
Bug reports and feature requests are welcome at github.com/aribuga/obsidian-belki-tasks/issues.
Created by Yasin Aribuga.
MIT. See LICENSE.







