Skip to content

md2doMarkdown Task Management

A powerful CLI tool for scanning, filtering, and managing TODO tasks in markdown files. Built with TypeScript, designed for developers who love markdown.

md2do logomd2do logo

Quick Example

bash
# 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 assignee

Task Format

md2do recognizes standard markdown task syntax with rich metadata:

markdown
- [ ] 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-18

Supported 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 ID

Legacy bracket syntax ([due: ...], [completed: ...], [todoist: ...]) is still parsed for backward compatibility.

What Makes md2do Special?

🎯 Context-Aware

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: jane

Context Extraction

Context extraction works when running md2do list from the repository root directory. The --path option currently doesn't preserve project/person context.

🔄 Todoist Integration

Import tasks to Todoist and sync completion status:

bash
# 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 pull

🤖 AI Integration

Use 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"

Next Steps

📚 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

MIT LicenseReport BugRequest Feature

Released under the MIT License.