Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Markdoist

0ximst1ll0ximst1ll54 downloads

Task management with Todoist bidirectional sync.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates8

中文说明

Markdoist is an Obsidian plugin that lets you manage Todoist tasks in plain text.

Write tasks as normal Markdown checkboxes, sync them to Todoist, and pull changes back into your notes.

This plugin uses a local-first sync strategy: tasks are cached locally, edits are queued locally, and then synced to Todoist in the background.

Features

  • Two-way sync between Markdown tasks and Todoist.
  • Create / update / complete / reopen tasks from Markdown lines (via a sync tag).
  • Set due date and project using simple inline markers.
  • Render a task list inside an Obsidian code block (including Todoist filters).
  • Local-first cache with a persistent offline queue.

Quick start

  1. Install the plugin and set your Todoist API token.
  2. Add #todoist to a Markdown task line.
  3. Wait for auto sync (or click “Sync now”).
  4. The plugin will append [todoist_id:...] to bind the line to Todoist.

Usage

Markdown tasks (create / update / complete)

Mark any Markdown checkbox line with your sync tag (default: #todoist):

- [ ] Buy milk #todoist
- [x] Pay rent #todoist

After syncing, the plugin appends an ID marker:

- [ ] Buy milk #todoist [todoist_id:123456789]

Notes:

  • New tasks may temporarily use a local ID like [todoist_id:local-...] until they are created on Todoist.
  • If a task is deleted on Todoist, the plugin will remove [todoist_id:...] from the note and leave a normal Markdown task.

Due dates

Add a due date in YYYY-MM-DD format:

- [ ] Submit report 🗓 2026-01-16 #todoist

Accepted calendar markers: 🗓, 🗓️, 📅.

Projects

Add a project tag using the project name without spaces (case-insensitive):

- [ ] Fix bug #todoist #Work
- [ ] Buy groceries #todoist #Personal

New tasks will be created in Default Project if set; otherwise they go to Inbox.

Code blocks (task list)

Create a code block like this:

filter: #ObsidianTest
limit: 10
name: My Tasks
  • filter: is a Todoist filter expression.
  • limit: (optional) limits the maximum number of tasks displayed.
  • For filter: blocks, the plugin fetches the latest results from Todoist during refresh (and caches them locally).

Settings

Open Obsidian → Settings → Community plugins → Markdoist.

Basic

  • Todoist API Token: from Todoist Settings → Integrations.
  • Default Project: default destination for new tasks (empty = Inbox).
  • Sync Tag: tag that marks Markdown lines for syncing.

Sync

  • Codeblock auto refresh (seconds): how often code blocks refresh themselves (0 = disable).
  • Auto sync interval (seconds): background sync interval (0 = disable).
  • Sync now: flush pending local changes and refresh tasks.
  • Sync status: quick overview of queue / cache / last sync.
  • Todoist Sync API: connectivity test.
  • Use Sync API: use Todoist Sync API for incremental sync.

Cache

  • Filter cache retention (days): how long cached filter results are kept (0 = disable age-based pruning).
  • Max cached filters: maximum number of cached filter result sets (LRU).
  • Maintenance (advanced): cache/queue cleanup utilities.

Developer

  • Debug logging: enable verbose logs in the developer console.

Installation

Recommended (release build)

  1. Download the latest release.
  2. Copy main.js, manifest.json, styles.css into:

<your vault>/.obsidian/plugins/markdoist/

  1. Restart Obsidian and enable the plugin in Community plugins.

From source

Clone this repo into <your vault>/.obsidian/plugins/markdoist/, then run:

npm install
npm run build

License

MIT

83%
HealthExcellent
ReviewSatisfactory
About
Manage Todoist tasks from plain-text Markdown checkboxes and sync changes both ways with Todoist. Keep edits local with a persistent offline queue and background sync, binding lines with a sync tag that receives a todoist_id marker. Render Todoist filters as task lists in Obsidian code blocks and set due dates or projects with simple inline markers.
TasksIntegrationsSyncing
Details
Current version
1.2.1
Last updated
5 days ago
Created
4 months ago
Updates
8 releases
Downloads
54
Compatible with
Obsidian 0.15.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
0ximst1ll0ximst1ll
github.com/0ximst1ll
GitHub0ximst1ll
  1. Community
  2. Plugins
  3. Tasks
  4. Markdoist

Related plugins

Self-hosted LiveSync

Sync vaults securely to self-hosted servers or WEBRTC.

Fast Note Sync

Real-time sync of your vaults across server, mobile, and web; shareable with anyone; supports REST and MCP integrations to build your personal AI knowledge base.

Reminder

Manage Markdown TODOs with reminder.

Todoist Sync

Materialize Todoist tasks within your notes.

WebDAV Sync

General-purpose & bidirectional WebDAV syncing for your vault. Designed for stability and robust file handling without vendor lock-in.

Google Drive Sync

Syncs a vault into Google Drive for cross-platform use (works for iOS).

Remotely Save

Sync notes between local and cloud with smart conflict: S3, Dropbox, webdav, OneDrive, Google Drive, Box, pCloud, Yandex Disk, Koofr, Azure Blob Storage.

Nutstore Sync

Sync your vault with Nutstore (Jianguoyun) using WebDAV protocol.

Local REST API & MCP Server

Unlock your automation needs by interacting with your notes over a secure REST API.

TaskNotes

Note-based task management with calendar, pomodoro and time-tracking integration.