Installs to %USERPROFILE%\AppData\Local\Programs\kairo\kairo.exe and adds the install directory to your user PATH.
Any other OS
go install github.com/programmersd21/kairo/cmd/kairo@latest
OR download a prebuilt binary from the Releases page.
Updates
kairo update
Downloads the latest GitHub Release for your OS/arch, verifies it against checksums.txt, and safely replaces the installed binary.
On Windows, Kairo will automatically close to apply the update; simply re-run kairo once the terminal returns.
Startup Notifications:
Kairo automatically checks for updates on startup. If a newer version is available, a notification will appear in the footer (e.g., Update: v1.2.1 β v1.2.2) directing you to run the update command.
π€ Automation & CLI API
Kairo provides a stable CLI API for external automation. Every operation available in the TUI can be performed via the api subcommand.
Usage
# List tasks with a specific tag
kairo api list --tag work
# Create a new task
kairo api create --title "Finish report" --priority 1
# Update a task
kairo api update --id <task-id> --status done
# Delete all tasks (soft-delete)
kairo api delete all
# Advanced JSON interface
kairo api --json '{"action": "create", "payload": {"title": "API Task", "tags": ["bot"]}}'
Other CLI Commands
# Check installed version
kairo version
# Update to the latest version
kairo update
# Export tasks
kairo export --format json --out tasks.json
kairo export --format markdown --out tasks.md
# Import tasks
kairo import --format json --in tasks.json
# Shell completion (bash, zsh, fish, powershell)
# Automatic install:
kairo completion zsh install
# Manual install (add to your shell profile):
# source <(kairo completion zsh)
kairo completion zsh
# Get help for any command
kairo help
kairo help api
kairo help export
# Sync with Git (if configured)
kairo sync
π Plugins (Lua)
Extend Kairo with custom logic, event hooks, commands, and views using Lua.
Plugin Structure
-- plugins/my-plugin.lua
local plugin = {
id = "my-plugin",
name = "My Plugin",
description = "Reacts to tasks",
version = "1.0.0",
}
-- Hook into events
kairo.on("task_create", function(event)
kairo.notify("New task: " .. event.task.title)
end)
-- Register custom commands
plugin.commands = {
{ id = "hello", title = "Say Hello", run = function() kairo.notify("Hello!") end }
}
return plugin
Supported Events
task_create
task_update
task_delete
app_start
app_stop
Lua API Reference
Method
Description
kairo.create_task(table)
Create a new task
kairo.update_task(id, table)
Update an existing task
kairo.delete_task(id)
Delete a task
kairo.list_tasks(filter)
List tasks with optional filter
kairo.on(event, function)
Register an event listener
kairo.notify(msg, is_error)
Send a notification to the UI
π¨ Design System
Kairo features a minimalist design system optimized for clarity and focus.
Design Philosophy
Breathable Layout β Reduced padding and thin borders for a clean, modern look
Seamless Backdrop β Custom rendering engine ensures the theme background covers the entire terminal window
Instant Feedback β Smooth strikethrough animations when completing tasks
Keyboard-First β All interactions optimized for speed
High Compatibility β Uses standard Unicode symbols for consistent rendering across all terminals
β¨οΈ Keyboard Navigation
Essential Commands
Shortcut
Action
ctrl+p
π Open Command Palette
z
β‘ Strike (toggle completion with animation)
tab / shift+tab
β / β Switch views
n
β Create new task
e
βοΈ Edit selected task
enter
ποΈ View task details
d
ποΈ Delete task
t
π¨ Cycle themes
i
π’ Open GitHub issues
c
π Show changelog
?
β Show help menu
q
β Quit
Plugin Menu Shortcuts
Shortcut
Action
enter
ποΈ View plugin details
u
ποΈ Uninstall plugin
o
π Open plugins folder
r
π Reload plugins
p / esc
β Close menu
View Shortcuts
Shortcut
View
1 - 9
Switch Views β Instant access to all tabs (Inbox, Today, Plugins, etc.)
f
Tag Filter β Quickly jump to Tag View and filter by one or multiple tags (e.g., work dev kairo)
tab / shift+tab
Cycle Views β Move through all available tabs
Pro Tips
Press f to open the tag filter input modal for direct tag entry
Type tag name and press enter to apply filter, or esc to cancel
Type #tag in the command palette to jump to a specific tag
Kairo is built on the belief that task management should be fast, simple, and under your control. We prioritize:
β Your Privacy β Data stays on your machine
β Your Freedom β Open source, MIT licensed
β Your Time β Lightning-fast interactions
β Your Experience β Premium, thoughtful design
Every feature is carefully considered to maintain focus and avoid complexity creep.