tdx
Your todos, in markdown, done fast.
<p align="center" <img src="assets/demo-0.11.0.gif" alt="tdx demo" width="600" </p
A fast, single-binary CLI todo manager focused on developer experience. Features vim-style navigation, an interactive TUI, and scriptable commands—all stored in plain markdown you can version control.
Features
- ⚡ Fast - Native binary with no application runtime to install
- 📝 Markdown-native - Todos live in todo.md, version control friendly
- ⌨️ Vim-style navigation - j/k, relative jumps (5j), number keys
- 🖥️ Interactive TUI - Toggle, create, edit, delete, undo, move, copy
- 🎯 Command Palette - Helix-style : commands with fuzzy search
- 📋 Manual Save - Reuse checklists without automatic writes; legacy read-only options remain supported
- 🔖 Saved Views - Save per-file filters and section focus; optionally restore the last view
- 🔧 Scriptable - Filtered JSON output and list, add, toggle, edit, delete commands
- 🔄 Smart Conflict Handling - Atomic saves, external-change detection, visual conflict diffs
- 🕘 Version History - Automatic snapshots with visual diffs and safe restore
- 📑 Per-File Configuration - YAML frontmatter for file-specific settings
- 📂 Recent Files - Jump to recently opened files with cursor position restoration
- 🌍 Cross-platform - macOS, Linux, Windows
Sections and projects
Press s to open the section overview. It lists every Markdown heading, including empty sections, with nested headings indented and completion counts beside each project.
| Key in the section overview | Action | | --- | --- | | ↑ / ↓ or j / k | Select a section | | Enter | Focus the section and its subsections | | Space | Fold or unfold its tasks | | e | Rename the selected heading | | n | Create a section after the selected section | | N | Create a subsection (up to heading level 6) | | a | Show all tasks and clear folds | | Esc | Return to the task list |
While focused, n adds a task after the selection; in an empty section it creates that section's first task. N adds to the focused section's own task list. Press S to return to all sections. Tag, priority, due-date, completed-task filters, and search respect the current section. Focus and folds last for the current session and reset when a file is reloaded, headings change, or an edit is undone. Save a named view to recall them later. u undoes up to 100 edits during the session.
Section editing uses the same guarded saves and version history as task editing. Read-only files support section browsing and focus without permitting heading edits.
What's new in 0.14.0
Release notes and upgrade guidance · Download v0.14.0
- Preserve surrounding Markdown bytes during checkbox-only edits, with faster cached updates.
- Keep undo history intact when cancelling input and detect external edits made while typing.
- Validate sustained use with replayable sessions, CLI contracts and real-terminal tests.
- Manage projects directly through Markdown headings, without opening another editor.
- Compose tdx with scripts and editors using filtered JSON output and explicit file selection.
- Type and paste international text in task, search, command, and recent-file inputs.
- Use the current Bubble Tea and Lip Gloss v2 terminal renderer and input handling.
- Use mise for reproducible development tools and tasks. mise tasks lists available commands; mise run check runs local validation.
- Installation defaults to ~/.local/bin; set TDXINSTALLDIR to choose another directory. Existing todo files and global configuration remain compatible.