Markdown-Native
Works directly with your existing markdown files. No database, no lock-in.
A powerful CLI tool for scanning, filtering, and managing TODO tasks in markdown files. Built with TypeScript, designed for developers who love markdown.
# Install globally
npm install -g @md2do/cli
# Add a task
md2do add "Fix login bug" --file tasks.md --assignee nick --priority high --due tomorrow
# Or print to stdout for previewing / piping
md2do add "Deploy hotfix" --due today --priority urgent
# List all tasks
md2do list
# Filter by assignee and priority
md2do list --assignee nick --priority urgent
# View statistics
md2do stats --by assigneemd2do recognizes standard markdown task syntax with rich metadata:
- [ ] Implement user authentication @jane !!! #backend #auth #due/2026-01-20
- [x] Write documentation @nick !! #docs {completed:2026-01-15}
- [ ] Fix bug in parser @alex ! #bug #due/2026-01-18Supported metadata:
@username - Task assignee!!! / !! / ! - Priority (urgent/high/normal)#tag - Tags#due/YYYY-MM-DD - Due date{completed:YYYY-MM-DD} - Completion date{todoist:ID} - Todoist sync IDLegacy bracket syntax (
[due: ...],[completed: ...],[todoist: ...]) is still parsed for backward compatibility.
md2do automatically extracts context from your file structure when run from the repository root:
# Run from repository root to extract context
md2do list
# File structure:
projects/
acme-app/ # Project: acme-app
sprint-planning.md
widget-co/ # Project: widget-co
roadmap.md
1-1s/
nick.md # Person: nick
jane.md # Person: janeContext Extraction
Context extraction works when running md2do list from the repository root directory. The --path option currently doesn't preserve project/person context.
Import tasks to Todoist and sync completion status:
# Import markdown task to Todoist
md2do todoist import tasks.md:15
# Sync completion status from Todoist
md2do todoist sync --dry-run
md2do todoist sync --direction pullUse Claude Code or other AI assistants to query your tasks:
"What urgent tasks does @nick have?"
"Show me task breakdown by project"
"Generate my daily standup report"
📚 Get Started - Install and configure md2do
📖 Read the Guide - Learn about task format and features
💻 VSCode Extension - Install the VSCode extension
🟣 Obsidian Plugin - Install the Obsidian plugin
🔌 Todoist Setup - Set up Todoist integration
🤖 MCP Integration - Connect with Claude Code
📋 CLI Reference - Complete command documentation
Made with ❤️ by Nick Hart