Kairo (Greek: kairos - "the right moment") is a terminal-based task management tool focused on weekly planning. Stay organized with an interactive TUI and automatic task rollover.
- Interactive TUI: Full-featured terminal user interface with keyboard shortcuts
- Weekly planning: Organize tasks by ISO week numbers
- Inbox support: Collect unscheduled tasks and schedule them when ready
- Tags & Projects: Categorize tasks with tags and organize by projects
- Filtering: Filter tasks by tag or project (filters persist across sessions)
- Time estimates: Track estimated hours for tasks
- Auto-rollover: Incomplete tasks automatically move to next week
- Beautiful output: Rich terminal formatting with tables and colors
- Weekly statistics: Real-time stats and completion tracking with estimates
- Weekly reports: Generate planning and completion reports
- CLI commands: Alternative command-line interface for scripting
- Simple storage: SQLite database stored in
~/.kairo/tasks.db
# Clone or navigate to the project
cd kairo
# Install with uv
uv sync
# Run directly
uv run kairo --help
# Or activate the virtual environment
source .venv/bin/activate
kairo --helpcd kairo
pip install -e .
kairo --helpSimply run kairo to launch the interactive terminal UI:
kairoTask Management:
- a - Add new task
- e - Edit selected task
- c - Toggle complete/reopen task
- s - Toggle task between inbox and current week
- d - Delete selected task (with confirmation)
- v - View task details
Task Ordering:
- J - Move selected task down in list
- K - Move selected task up in list
Filtering & Views:
- f - Show filter menu (filter by tag, project, or clear all filters)
- i - Toggle between inbox view and weekly view
Navigation:
- g - Go to current week
- ←/→ or h/l - Navigate between weeks (vim style)
- ↑/↓ or j/k - Navigate task list (vim style)
Reports:
- w - Show weekly plan
- r - Show weekly report
Other:
- q - Quit
All filters persist across sessions.
Week Navigation:
- ◄ Prev - Go to previous week
- 📍 This Week - Jump to current week
- Next ► - Go to next week
Actions:
- ➡️ Move to Next Week - Move incomplete tasks from current week to next week
- ⬅️ Move to Prev Week - Move incomplete tasks from next week back to current week
# Add task to current week
kairo add "Review pull requests"
# Add with description
kairo add "Deploy new feature" -d "Deploy to production after QA approval"
# Add with tags
kairo add "Team meeting" -t "work,urgent"
kairo add "Buy groceries" -t "personal"
# Add to specific week
kairo add "Quarterly review" -w 46
kairo add "Year-end planning" -w 2025-W52
# Combine options
kairo add "Sprint planning" -d "Q4 planning session" -t "work,planning" -w 46# List current week's tasks
kairo list
# List specific week
kairo list -w 45
kairo list -w 2025-W45
# List all tasks
kairo list --all
# Filter by status
kairo list --status open
kairo list --status completed
# Filter by tag
kairo list --tag work
kairo list --tag personal --status open
kairo list --tag urgent --all# Edit task title
kairo edit 3 --title "New title"
# Edit task description
kairo edit 3 -d "New description"
# Edit task tags
kairo edit 3 -t "work,urgent"
# Edit multiple fields at once
kairo edit 3 --title "Updated title" -d "Updated description" -t "work,important"
# Clear tags (empty string)
kairo edit 3 -t ""# Mark task as done
kairo complete 3# Mark completed task as open again
kairo reopen 3# Delete a task permanently (requires confirmation)
kairo delete 3
# Skip confirmation prompt
kairo delete 3 --yes# Current week's plan
kairo plan
# Specific week
kairo plan -w 46# Current week's report
kairo report
# Specific week
kairo report -w 45# Move current week's incomplete tasks to next week
kairo rollover
# Rollover from specific week to another
kairo rollover -f 45 -t 46- Launch Kairo:
kairo - Press a to add tasks for the week
- Add tasks with title, description, tags, project, and time estimate
- Press i to toggle to inbox view for unscheduled tasks
- Press t to move tasks between inbox and current week
- Press f to filter by tag or project
- Navigate with arrow keys or j/k (vim style)
- Press c to toggle task completion
- Press e to edit task details
- Press g to jump to current week
- Press w or s to view weekly plan/report
- Check weekly statistics in the left panel
- Press ←/→ to move between weeks
- All filters persist across sessions
- Press q to quit
# Monday: Plan your week
kairo plan
# Add new tasks throughout the week with tags
kairo add "Fix authentication bug" -d "Users unable to login with SSO" -t "work,urgent"
kairo add "Update documentation" -t "work"
kairo add "Team meeting prep" -t "work,meeting"
kairo add "Dentist appointment" -t "personal"
# Check your tasks
kairo list
# View work tasks only
kairo list --tag work
# Complete tasks as you finish them
kairo complete 1
kairo complete 3
# Reopen task if completed by mistake
kairo reopen 2
# Friday: Review your week
kairo report
# Sunday: Move incomplete tasks to next week
kairo rolloverTags and projects help you organize and filter tasks.
Tags help you categorize tasks by context. You can assign multiple tags to any task.
Common Tag Examples:
- Context:
work,personal,home - Priority:
urgent,important,low-priority - Type:
meeting,coding,review,planning
Using Tags in TUI:
- Press a to add a new task
- Fill in the title and description
- In the "Tags" field, enter comma-separated tags:
work, urgent - Tags appear in the task table and details view
- Press f → Select "Filter by Tag"
- Shows list of all available tags
- Enter a tag name to filter (e.g., "work")
- Filter persists when you close and reopen Kairo
Using Tags in CLI:
# Add task with tags
kairo add "Sprint planning" -t "work,meeting,planning"
# Filter by tag
kairo list --tag work
kairo list --tag urgent --status openProjects help you group related tasks together. Each task can belong to one project.
Project Examples:
- Website Redesign
- API Migration
- Documentation Update
- Q4 Planning
Using Projects in TUI:
- Press a to add a new task
- Enter a project name in the "Project" field
- Press f → Select "Filter by Project"
- Shows list of all available projects
- Select a project to filter
- Filter persists across sessions
Using Projects in CLI: Projects are managed through the TUI. Use tags in CLI for similar functionality.
The inbox is for unscheduled tasks that you want to track but haven't assigned to a specific week yet.
Using Inbox:
- Press i to view inbox tasks
- Press a to add tasks (uncheck "Schedule for this week")
- Press t on any inbox task to schedule it to the current week
- Press t on any scheduled task to move it to inbox
- Press f to filter inbox tasks by tag or project
Tasks are stored in ~/.kairo/tasks.db (SQLite database).
To backup your tasks:
cp ~/.kairo/tasks.db ~/backups/tasks-backup.dbTo reset (delete all tasks):
rm ~/.kairo/tasks.db# Install dependencies
uv sync
# Run tests (when available)
uv run pytest
# Run the CLI
uv run kairo --helpGPL-3.0 license - See LICENSE file for details
Contributions welcome! Please open an issue or submit a pull request.
This is an experimental project built using Claude Code for testing AI coding. Use at your own risk.