Skip to main content

Terminal task manager enforcing the 3 Most Important Tasks (MIT) method — MITs

Project description

MITs ⚡

Python 3.10+ License: MIT

A terminal task manager built around the 3 Most Important Tasks method — focus on what actually matters today.

MITs main UI

MITs global search


Install

pip install mits-cli
mits

From source:

git clone https://github.com/lahbibsemlali/MITs.git
cd MITs
make install
make launch

What it does

Each day you pick up to 3 Most Important Tasks (★). Everything else lives in your inbox or someday list. At the end of the day you know exactly what you shipped.

★ MIT limit Max 3 active starred tasks per day — forces real prioritisation
Due dates due:today, weekday names, +3 (days from now), ISO dates
Recurring recur:daily, weekly, weekdays — auto-reschedules on completion
Projects +tag syntax, project overview panel, per-project progress bars
Global search Fuzzy search across all tasks and projects
Undo Full undo stack (u)
Weekly review W — see everything outstanding across all lists
Themes t to cycle through palettes, persisted in config
CLI capture Add tasks without opening the TUI
Shell greeting One-liner summary for your .zshrc / .bashrc

CLI quick capture

Add tasks directly from the shell — no need to open the TUI:

mits "fix the rlinks bug"              # → inbox
mits "fix SSR bug +work"               # → inbox, tagged #work
mits today "read x86 calling conv"     # → today
mits someday "learn heap exploit"      # → someday
mits "deploy hotfix +work due:today *" # → today, MIT-starred

Inline syntax (also works in the TUI add/edit prompt):

title  +project  due:fri  recur:daily  ★ (or *)
Token Example Effect
+project +work Tag with a project
due: due:mon, due:+3, due:2026-05-01 Set due date
recur: recur:daily, recur:weekdays Recurring task
or trailing * fix bug * Mark as MIT
today: / inbox: / someday: today: plan sprint Set target list

Shell greeting

Print today's MITs and stats every time you open a terminal. Add to ~/.zshrc or ~/.bashrc:

mits --summary

Example output:

╔╗╔╗ ╦ ╔╦╗ ╔═╗
║╚╝║ ║  ║  ╚═╗
╩  ╩ ╩  ╩  ╚═╝

⚡ MITs — Monday, April 07

  MITs (2/3)
  ★ fix rlinks_client SSR bug     #work
  ★ solve Rainfall level3         #rainfall

  today: 4   inbox: 7   streak: 🔥4d

Machine-readable version for scripts:

mits --summary --json | jq .mit_count

Keybindings

Key Action
a Add task
e Edit task
n Notes
m Toggle MIT ★
Space Toggle done
u Undo
D Delete task
/ or ff Global search
Tab / Ctrl+j / Ctrl+k Switch sidebar ↔ list
h Back to sidebar
W Weekly review
t Cycle theme
? Full help
q Quit

Data & config

Path
Tasks ~/.local/share/mits/data.json
Config ~/.config/mits/config.json

Override with MITS_DATA=/path/to/data.json.


Development

make install    # create venv + install deps
make launch     # run TUI
make dev        # run with Textual devtools
make build      # build sdist + wheel → dist/
make report     # print weekly markdown report
make demo-gifs  # regenerate README demo GIFs
make reset      # wipe local data (careful)
make clean      # remove .venv and caches

Publishing:

# 1. bump version in pyproject.toml
make build
python -m twine upload dist/*

Repository layout

MITs/
├── mits.py             # CLI entry point
├── app.py              # TUI application
├── data.py             # persistence, parsing, migrations
├── logo.py             # ASCII art logo
├── help_text.py        # in-app help content
├── themes.py           # colour palettes
├── widgets/            # sidebar, task panel, modals, search
├── assets/demos/       # README GIFs
├── pyproject.toml
├── Makefile
└── LICENSE

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mits_cli-0.1.0.tar.gz (28.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mits_cli-0.1.0-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

File details

Details for the file mits_cli-0.1.0.tar.gz.

File metadata

  • Download URL: mits_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 28.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for mits_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4a2b5df227b68db151b08fcdcdd93c053908a7668d9678f2ffe3e14e323359ff
MD5 1ae79bfe15379625568b683ac67e93de
BLAKE2b-256 a3d340bab5813b917ed5f63b1aacf56e670bb3c7818977b1bb16c14cb0500640

See more details on using hashes here.

File details

Details for the file mits_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mits_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 33.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for mits_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ebde129287ea53e96b30eee192dd8fbfca5d1e86e35e14e3d8a757b7ed8e3d82
MD5 b052f3ec76bdb542b47e7871b70e3d5d
BLAKE2b-256 b6f2c315a6dd6cac3e5128a636a5e8b8b052b161676f4d18931acb6991a7096d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page