belki

by Yasin Aribuga
5
4
3
2
1
Score: 35/100
New Plugin

Description

A minimal Todoist-like task manager for Obsidian using local Markdown files. - This plugin has not been manually reviewed by Obsidian staff.

Reviews

No reviews yet.

Stats

stars
downloads
0
forks
0
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

belki

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
belki Today view belki Today view with overdue tasks
Task details Upcoming
belki task detail modal belki Upcoming view

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 1
  • P2 = Priority 2
  • P3 = Priority 3
  • P4 = Priority 4
  • none = 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, or in 3 days and 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

  1. Open Obsidian Settings.
  2. Go to Community plugins.
  3. Search for belki.
  4. Install and enable the plugin.
  5. Run the command belki: Open.

Manual Installation

  1. Download manifest.json, main.js, and styles.css from a GitHub release.
  2. Create this folder inside your vault:
.obsidian/plugins/belki/
  1. Copy the three downloaded files into that folder.
  2. Reload Obsidian.
  3. Enable belki in Community plugins.
  4. Run the command belki: Open.

Development

Requirements:

  • Node.js
  • npm

Install dependencies:

npm install

Build:

npm run build

The build outputs:

  • main.js
  • styles.css
  • manifest.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:

  1. Update version in manifest.json and package.json.
  2. Update versions.json with the same plugin version and the matching minAppVersion.
  3. Run npm install.
  4. Run npm run build.
  5. Confirm manifest.json, main.js, and styles.css exist.
  6. Create a GitHub release whose tag exactly matches the plugin version, for example 0.1.0.
  7. Do not prefix the release tag with v.
  8. Upload manifest.json, main.js, and styles.css as 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