Command line markdown todo list manager
mdt
A simple command-line markdown todo list manager inspired by t
Demo GIF using starship prompt, purify theme, JetBrains Mono font, along with NvChad and st
:sparkles: Features
- Minimal set of functionality designed to finish tasks instead of organizing them.
- Flexible, future-proof markdown file format that you can use to add additional context and notes to your tasks.
- Nice, interactive command-line interface to quickly capture and check tasks.
:package: Dependencies
- POSIX-compliant shell (dash, bash, zsh etc.)
- gum
:rocket: Installation
Arch Linux
paru -S mdt # or with your AUR helper of choice
macOS (Homebrew)
brew install mdt
Manually with make
# Clone the repo
git clone https://github.com/basilioss/mdt
Change your current directory to mdt
cd mdt
Install
sudo make install
Update
git pull
sudo make install
Remove
sudo make uninstall
Manually with curl
# Download
curl -L https://raw.githubusercontent.com/basilioss/mdt/main/mdt > mdt
Make it executable
chmod +x mdt
Move it somewhere in your $PATH
mv mdt ~/.local/bin
:gear: Configuration
| Option | Environment Variable | Description | | ------------------ | --------------------- | -------------------------------------------------------------------------------------------------------------------- | | -d, --dir | MDT_DIR | Path to the tasks directory. By default the current working directory. | | -i, --inbox | MDT_INBOX | Path to the inbox file. By default "TODO.md". | | -m, --add-multiple | MDTADDMULTIPLE_TASKS | Add multiple tasks at once. | | -u, --unite-tasks | MDTUNITETASKS | List all tasks in the file. By default false, if tasks are separated by headings, mdt will prompt you to select one. | | --color | MDTMAINCOLOR | Main color. | | --prompt | MDT_PROMPT | Input prompt character. Default is 'โ'. | | --cursor | MDT_CURSOR | Selection character. Default is 'โ'. | | --item-width | MDTITEMWIDTH | Todo items width. 0 for no wrap, default is 75. | | --input-width | MDTINPUTWIDTH | Input prompt width. 0 for no wrap, default is 65. | | --editor | MDT_EDITOR, EDITOR | Markdown file editor. | | | MDTCHECKBOXPREFIX | Prefix of markdown checkboxes [ ]/[x]. Default is '-'. |
Examples of using options:
# Static path to the inbox
alias mdt='mdt --dir ~/tasks --inbox ~/tasks/inbox.md'
Dynamic path to the inbox
alias mdt='mdt --dir ~/tasks --inbox ~/tasks/"$(date -I).md"'
Examples of using environment variables:
export MDTMAINCOLOR='#5FAFFF'
export MDT_EDITOR='nvim -c "set nonumber"'
:keyboard: Keybindings
| Keybinding | Description | | ---------------------------- | ------------------- | | โ/โ, j/k, Ctrl+j/k, Ctrl+n/p | Move up/down | | โ/โ, g/G | Move top/bottom | | Tab/Space/x | Select | | a/A | Select/unselect all | | Enter | Accept |