lazytask lt
AI-first task management. Human in command.
Built in Rust. Fast to run, easy to understand.
Why lazytask? · How it works · Getting started · Commands · Configuration
Why lazytask?
AI coding agents are powerful, but they have blind spots. lazytask makes building easier for AI and for you.
🧩 Simple by design
Auto-memory, agent swarms, multi-tool orchestration: powerful for some, overkill for many. lazytask takes the opposite approach. Plain markdown files on disk. Readable by grep, diffable in git. No sync, no server, no database. AI as a 10x exoskeleton, not a swarm.
Sophisticated simplicity: if you can't do it on a whiteboard, you can't do it in lazytask.
🔁 Learnings are prompted, not lost
Most agents finish a task and move on. Nothing is retained. lazytask prompts reflection after every completion: what surprised, what broke, what to do differently. Learnings accumulate until you decide it's time to review them. No opaque auto-memory. You trigger the learning cycle, and your agent distills insights into concrete improvements to docs, workflows, or code.
🪤 Bugs don't slip through the cracks
Your agent spots a bug while working on something else. Without a place to put it, that bug vanishes. lazytask gives agents a create command, so side-findings become tracked tasks instead of forgotten context.
🎛️ AI-first, human in control
Agents get a strict CLI with JSON envelopes. You get a keyboard-driven TUI. Same storage, same rules. Stay on top of every task, or let the agent drive. Your call.
How it works
lazytask has two interfaces that share the same storage:
| Human | AI agent | |
|---|---|---|
| Interface | Keyboard-driven TUI | Strict CLI with JSON envelopes |
| Launch | lt |
lt list, lt create, ... |
| Workflow | Navigate, create, move tasks | Create, start, complete tasks, capture learnings |
Tasks flow through directories. What you see in your file tree is the state:
Each task is a single .md file. Moving a task from todo to in-progress is literally moving a file.
The feedback loop: agents do work → record learnings → you trigger review → agents distill insights → better code.
.taskscan be included in git, but we'd discourage it. lazytask tasks are meant to be post-its next to you on your desk.

Getting started
Install
Install instructions coming soon
Quick start
lt init also appends usage instructions to your AGENTS.md (or CLAUDE.md), so your AI agent knows how to use lt immediately.
Use lt init --upgrade after installing a new lazytask version to refresh generated defaults without overwriting .tasks/.
Commands
Human commands
| Command | Description |
|---|---|
lt |
Open the TUI |
lt init |
Initialize lazytask in your project |
lt init --upgrade |
Refresh generated config and agent guidance defaults |
AI commands
All AI commands return a consistent JSON envelope: {"ok": bool, "data": ...} or {"ok": false, "error": {...}}.
| Command | Description |
|---|---|
lt list [--type task|bug] [--show-done] |
List tasks |
lt get <query>... |
Get task details |
lt create --title '...' --type task|bug --details '...' [--start] |
Create a task |
lt start <query> |
Move task to in-progress |
lt done <query> |
Complete task (returns reflection prompt) |
lt discard <query> --discard-note '...' |
Discard a task |
lt learn <query> --learning '...' |
Record a learning for a done task |
lt learn --review |
Distill learnings into improvements |
Configuration
lazytask.toml in your project root:
[]
= 20 # max tasks in todo
= 3 # max tasks in progress
[]
= 35
[]
= 3 # auto-delete done/discard tasks older than this many days
Acknowledgements
lazytask's TUI is built with ratatui, and its TUI UX draws heavy inspiration from lazygit.
License
MIT