Pick your platform:
brew tap programmersd21/kairo_tap && brew install --cask kairocurl -fsSL https://raw.githubusercontent.com/programmersd21/kairo/main/scripts/install.sh | bashiwr -useb https://raw.githubusercontent.com/programmersd21/kairo/main/scripts/install.ps1 | iexgo install github.com/programmersd21/kairo/cmd/kairo@latestkairoPress n β create your first task.
Done writing? β ctrl+s to save your task!
Kairo is a terminal task manager built in Go for developers who want speed, structure, and full local control.
Most task managers are built wrong for developers:
- GUI apps β slow, mouse-driven, context switching
- Plain-text tools β flexible but no structure or querying
- Cloud apps β lock-in, subscriptions, data ownership loss
- Legacy TUIs β powerful but outdated UX
Kairo is the missing middle:
A modern, scriptable, AI-aware, local-first task system inside your terminal
- SQLite storage (WAL-enabled)
- Fully offline operation
- Optional Git-backed sync (no backend)
- Export: JSON / CSV / Markdown / plain text
- Sub-millisecond fuzzy search with ranked results
- Full keyboard control (no mouse)
- Vim mode (j/k/gg/G)
- Natural language deadlines (tomorrow 10am, next friday, in 2 hours)
- Lua plugin system (event hooks: task_create, task_update, app_start, etc.)
- Headless CLI API for automation
- MCP server exposing full task schema to AI agents
- Custom themes via Lua or config
- Gemini integration (2.0 / 2.5 / 3.1 flash)
- Full task CRUD from chat panel
- Toggle anytime (
ctrl+a) - Fully disabled unless invoked
- Bento-style layout with Lip Gloss styling
- 32 built-in themes (dark/light/hybrid)
- Live theme switching (
t) - Full-viewport rendering (no terminal bleed-through)
- Cinematic animations for create/complete/delete
| Capability | Status |
|---|---|
| Local-first storage | β |
| Full TUI with themes | β |
| Keyboard-only workflow | β |
| Git sync (no backend) | β |
| Lua plugin system | β |
| CLI automation API | β |
| AI assistant | β |
| MCP server | β |
| Free & open source | β |
kairo api create --title "Finish report"
kairo api list --tag work
kairo api update --id <id> --status done
kairo export --format markdown
kairo sync
kairo mcpUser Input (CLI / UI / Lua / AI)
β
Task Service (single source of truth)
β
SQLite (WAL) + optional Git sync
β
Bubble Tea TUI (instant rendering)
kairo.on("task_create", function(event)
kairo.notify("New task: " .. event.task.title)
end)Lua API: create_task, update_task, delete_task, list_tasks, on, notify
Events: task_create Β· task_update Β· task_delete Β· app_start Β· app_stop
| Key | Action |
|---|---|
| n | New task |
| e | Edit |
| z | Complete |
| d | Delete |
| t | Switch theme |
| f | Filter tags |
| ctrl+p | Command palette |
| ctrl+a | AI panel |
| ? | Help |
- Views: Inbox, Today, Upcoming, Completed, by Tag, Priority
- Fuzzy command palette (ctrl+p)
- Shell completions (bash/zsh/fish/powershell)
- Import/export: JSON, CSV, Markdown
- Git-backed sync (per-task JSON)
- MCP server for AI agents
- Plugin hooks for automation
kairo api create --title "task" --priority 1
kairo api list --tag work
kairo api update --id <id> --status done
kairo api delete allJSON mode:
kairo api --json '{"action":"create","payload":{"title":"API task"}}'Extras:
kairo api set_theme --theme nord
kairo api plugin_list
kairo export --format csv
kairo sync
kairo mcplocal plugin = {
id = "my-plugin",
name = "My Plugin",
version = "1.0.0"
}
kairo.on("task_create", function(event)
kairo.notify("New task: " .. event.task.title)
end)
return plugin- TUI: Bubble Tea (state machine)
- Styling: Lip Gloss
- Storage: SQLite (WAL)
- Search: in-memory fuzzy index
- Plugins: GopherLua VM
- Sync: Git-based per-task files
- AI: Gemini tool-calling API
- encrypted multi-workspace support
- event-sourced sync engine
- sandboxed plugins
- smart task suggestions
- plugin marketplace
- streaming performance optimizations
Auto-generated on first run:
- Linux:
~/.config/kairo/config.toml - macOS:
~/Library/Application Support/kairo/config.toml - Windows:
%APPDATA%\\kairo\\config.toml
In-app config: ctrl+s (settings menu)
PRs welcome:
- themes
- plugins
- performance
- docs
Special thanks to @Tornado300 for key bug fixes and contributions.
If Kairo improves your workflow, star it so more developers can discover it.
Fast. Local. Scriptable. Terminal-native.
