A cozy, chat-based terminal planner. Tell it what's on your plate in plain language and it organizes everything into projects → tasks → subtasks with deadlines and priorities, gives you quick planning advice, and shows the whole plan in a clean, minimal TUI so you can see what to do next.
python3 -m venv .venv
. .venv/bin/activate
pip install -e ".[dev]"plannerThis opens the TUI: chat on the left, your live plan on the right.
- Type what you need to do — sprout extracts tasks, projects, subtasks, deadlines, and priorities and applies them instantly.
- The board groups tasks by project, nests subtasks, shows a colored priority dot (🔴 urgent → 🔵 someday) and a deadline badge (overdue, today, due soon…).
- Works in any language. Write in Persian (فارسی) and sprout replies in Persian, keeps your task titles in Persian, and understands Jalali/Shamsi dates ("تا پنجشنبه", "۱۵ تیر") — converting them to real deadlines.
- Shortcuts:
Ctrl+Rrefresh ·Ctrl+Lclear chat ·Ctrl+Zundo ·Ctrl+Dmark selected task done ·Ctrl+Xdelete selected task ·Ctrl+Cquit. Use the arrow keys to select a task on the board.
Made a mistake (or the assistant did)? Press Ctrl+Z in the TUI — or run
planner undo — to revert the last batch of changes. Run it repeatedly to walk
further back.
planner dashboard # writes sprout-dashboard.html and opens it
planner dashboard plan.html --no-openA cute, self-contained HTML view of every project, task, subtask, deadline and priority — a quick, shareable way to see everything you have to do.
planner chat "Plan the Berlin trip: book flights and reserve a hotel by Jul 10, urgent"
planner list
planner add "Book dentist" --project Health --deadline 2026-07-01 --priority 2
planner complete 1
planner undo
planner projects
planner export-ics tasks.ics
planner dashboardsprout talks to any OpenAI-compatible chat API. Put your key in a .env file in
the project root (it's loaded automatically):
OPENAI_API_KEY=sk-...
# optional overrides:
# PLANNER_BASE_URL=https://api.openai.com/v1
# PLANNER_MODEL=gpt-4.1-miniWithout an API key it falls back to a simple offline heuristic extractor, so the app still runs — just without the smart planning. (Multilingual understanding, including Persian and the Jalali calendar, needs an API key.)