TODO comments that turn 🟢 green → 🟡 yellow → 🔴 red as their due date approaches. Zero config. Works in every language. No ESLint needed.
The Problem
Every codebase has TODO comments that were written once and never touched again:
// TODO: fix this later ← when is "later"?
// TODO: remove before release ← which release?
// TODO: optimize this ← still here 2 years later
There is no urgency, no deadline, no reminder. They just rot.
The Solution
Add a date to your TODO. TODO Expiry does the rest — instantly, in every language, with zero setup.
// TODO[2026-08-01]: Refactor payment service ← 🟢 Green — plenty of time
// TODO[2026-07-05]: Write unit tests ← 🟡 Yellow — due soon!
// TODO[2025-01-01]: Remove deprecated endpoint ← 🔴 Red — overdue!
Screenshots
Color highlighting — green, yellow and red directly in your code

Hover tooltip — see exactly how many days remain or how overdue it is

Features
- 🟢 Green — more than 7 days remaining
- 🟡 Yellow — within 7 days of the due date
- 🔴 Red — past the due date (overdue)
- 💬 Hover tooltip — shows exact days remaining or days overdue
- 📊 Status bar — live count of overdue / due soon / on track TODOs at a glance
- 🌍 Every language — JS, TS, Python, C#, Go, Java, Rust, PHP, Ruby and more
- ⚡ Zero config — just write the comment and it works instantly
- 🔒 Non-invasive — just add a date, nothing else changes in your code
Usage
Write any comment with a date in TODO[YYYY-MM-DD] format:
// TODO[2026-09-01]: Migrate to new API
# TODO[2026-07-10]: Add input validation
// TODO[2026-08-15]: Refactor auth middleware
// TODO[2026-07-03]: Optimise database query
// TODO[2026-10-01]: Handle error edge cases
Works in any file type. No ESLint, no build tools, no CI pipeline needed.
How the colours work
| Colour | Condition | Meaning |
|---|---|---|
| 🟢 Green | More than 7 days away | You have time |
| 🟡 Yellow | Within 7 days | Act soon |
| 🔴 Red | Past the due date | Overdue! |
The threshold of 7 days is fully configurable.
Why Not Just Use ESLint?
| TODO Expiry | ESLint plugins | |
|---|---|---|
| Works in every language | ✅ | ❌ JS/TS only |
| Visual green/yellow/red colour | ✅ | ❌ Just a lint error underline |
| Zero config | ✅ | ❌ Requires ESLint setup in every project |
| Hover tooltip with days count | ✅ | ❌ |
| Status bar summary | ✅ | ❌ |
| Works in CI | ➖ | ✅ |
Settings
| Setting | Default | Description |
|---|---|---|
todoExpiry.warningDays |
7 |
Days before due date when a TODO turns yellow |
Example — turn yellow 14 days before due date:
{
"todoExpiry.warningDays": 14
}
Tips
- Put TODO Expiry dates on technical debt you actually want to fix
- Use it in code reviews — leave a dated TODO instead of a comment
- Great for marking things to clean up before a release date
- Works alongside your existing TODO comments — only TODOs with
[YYYY-MM-DD]are highlighted
License
MIT © Sonu