Skip to content
This repository was archived by the owner on Jul 11, 2026. It is now read-only.

Repository files navigation

Kairo

Kairo

The terminal task manager for developers who live in their editor.

Kairo is a keyboard-first task manager for the terminal. It keeps tasks, projects, recurring work, and notes local, fast, and easy to automate.


ReleaseCILicense: MIT


Kairo Demo

YouTube tutorial playlist (in dev):https://youtube.com/playlist?list=PLvaz_NYJcySmNh28QzxLqV5HRrTslEaUo&si=XY8YvRnrhqxqU6RD


Why Kairo?

Kairo is built for people who want speed, structure, and full keyboard control without leaving the terminal.

FeatureBenefit
Momentum DashboardQuick view of task progress and activity.
White-Space-First UIFocused layout with less visual noise.
Monochrome DesignClean core with semantic color accents.
Typography HierarchyClear visual focus through font weight and scale.
Fluid MotionFast transitions that stay out of the way.

Quick Start

macOS (Homebrew)

brew install programmersd21/kairo/kairo

Linux / macOS

curl -fsSL https://raw.githubusercontent.com/programmersd21/kairo/main/scripts/install.sh | bash

Windows (PowerShell)

iwr -useb https://raw.githubusercontent.com/programmersd21/kairo/main/scripts/install.ps1 | iex

Go

go install github.com/programmersd21/kairo/cmd/kairo@latest

Then run:

kairo

Press n to create your first task. Press ctrl+s to open settings.

Works best on Alacritty. Some terminals may have rendering quirks - see #16.


Features

Kairo Home Screen

Genuinely Fast

Sub-millisecond fuzzy search, Vim bindings (j/k/gg/G), and full keyboard control.

Project Sidebar & Hierarchy

Organize work into projects and nested task trees. Toggle the sidebar with ctrl+e and switch projects with arrow keys.

Recurring Tasks & Results

Create weekly or monthly schedules, and attach completion notes when marking work as done.

Your Data, Locally

SQLite with WAL mode. Fully offline. Optional Git-backed sync. Export to JSON, CSV, Markdown, or plain text.

Interactive Stats Dashboard & Focus Engine

Press s to open statistics and f to launch the built-in Pomodoro timer.

Optional AI

Gemini integration is available for natural-language task creation and management. Toggle it with ctrl+a.

Beautiful by Default

32 built-in themes, live switching, Markdown preview, and configurable UI behavior.

Extensible to the Core

Lua plugins, a headless CLI API, and an MCP server for agent workflows.

Undo & Redo

Track task creation, editing, deletion, and status changes with local history.

Tag Highlighting

Color-code tags directly in config.toml.

[tags.highlight]
work = { fg = "#CCCCCC" }
private = "fg=#EEEEEE,bg=#0000FF,bold"diy = "bg=accent"

Keyboard Shortcuts

KeyAction
nNew task
DDuplicate task
eEdit task
zComplete task
ctrl+dDuplicate task
SpaceSelect task / Collapse subtasks
sStats dashboard
fFocus engine
ctrl+fFilter by tag
ctrl+eSwitch project
pManage plugins
tSwitch theme
ctrl+pCommand palette / Markdown preview
ctrl+aAI panel
ctrl+sSettings
xImport / Export
?Help
ctrl+zUndo last action
ctrl+yRedo last undone
ctrl+wWelcome tour

CLI Automation

Kairo exposes a full CLI API for scripting and CI pipelines, with support for parent_id and collapsed state:

# Create a task
kairo api create --title "Finish report" --priority 1
# List by tag
kairo api list --tag work
# Mark complete
kairo api update --id <id> --status done# Export everything
kairo export --format markdown

Lua Plugin System

localplugin= {
id="my-plugin",
name="My Plugin",
version="1.0.0"
}
kairo.on("task_create", function(event)
kairo.notify("New task: " ..event.task.title)
end)
returnplugin

Browse sample plugins →


Architecture

Input (CLI · TUI · Lua · AI)
↓
Task Service (single source of truth)
↓
SQLite (WAL) + optional Git sync
↓
Bubble Tea TUI (instant rendering)

Stack: Bubble Tea · Lip Gloss · SQLite (WAL) · GopherLua · Gemini API · Git


Everything Included

FeatureStatus
Local-first SQLite storage
Nested tasks & folders
32 themes, live switching
Keyboard-only workflow
Recurring tasks
Git sync (no backend)
Lua plugin system
CLI automation API
AI assistant (optional)
MCP server
Free & open source

Configuration

Kairo can be configured via config.toml in your application data directory.

Task List

You can customize the fields shown on the right side of the task list:

[list.order]
right = ["tags", "due", "priority"]

Valid values for right are: tags, due, priority.

Task Fields

Minimal Due Mode: Abbreviate overdue states and use a fixed-width column for consistent alignment.

[list.fields.due]
minimal = true

wait_until: Hide a task from the task list until the specified datetime.

until: Stop generating new recurring instances after the specified datetime.

Auto-generated on first run at:

  • All platforms:./.kairo/config.toml (relative to the working directory)
  • Legacy fallbacks:~/.kairo/config.toml and ~/.config/kairo/config.toml
OptionDescriptionDefault
themeUI theme namecatppuccin
vim_modeVim keybindingsfalse
show_helpHelp footertrue
show_idTask IDs in detail viewtrue
animationsUI animationstrue
rainbowAnimated rainbow logofalse

Prefer not to edit files? ctrl+s opens the in-app settings menu.


Roadmap

  • Encrypted multi-workspace support
  • Event-sourced sync engine
  • Sandboxed plugin environment
  • Smart task suggestions
  • Plugin marketplace
  • Streaming performance optimizations

Star History

Star History Chart

Contributing

PRs are welcome - especially for themes, plugins, performance, and docs. If something bugs you, fix it.

Huge thanks to @Tornado300, @riodelphino and @FuryRacer for key bug fixes and improvements that made Kairo better for everyone.


If Kairo saves you time, a ⭐ helps other developers find it.


Built for the terminal. Built for focus. Built for you.

About

🤩 Kairo is a fast, keyboard-first terminal task manager in Go 🐹 with offline-first SQLite, Git sync 🔁, fuzzy search 🔍 & Lua plugins 🧩

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

239 stars

Watchers

9 watching

Forks

Releases

Sponsor this project

Contributors

Languages