MITs ⚡
A terminal task manager built around the 3 Most Important Tasks method — focus on what actually matters today.
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
Metadata
Release files for mits-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mits_cli-0.1.0.tar.gz | 28.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mits_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.7 kB
Release files / mits_cli-0.1.0.tar.gz
| Download URL | mits_cli-0.1.0.tar.gz |
|---|---|
| Size | 28.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a2b5df227b68db151b08fcdcdd93c053908a7668d9678f2ffe3e14e323359ff
|
|
BLAKE2b-256 checksum How to use checksums |
a3d340bab5813b917ed5f63b1aacf56e670bb3c7818977b1bb16c14cb0500640
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / mits_cli-0.1.0-py3-none-any.whl
| Download URL | mits_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 33.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ebde129287ea53e96b30eee192dd8fbfca5d1e86e35e14e3d8a757b7ed8e3d82
|
|
BLAKE2b-256 checksum How to use checksums |
b6f2c315a6dd6cac3e5128a636a5e8b8b052b161676f4d18931acb6991a7096d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|