Skip to content

Commit e404faa

Browse files
chore: fmt codebase and readme
1 parent 9114b58 commit e404faa

10 files changed

Lines changed: 130 additions & 114 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1919
### Fixed
2020
- **Project Switcher Logic**: Resolved an issue where newly created projects or projects without tasks were hidden from the selection list.
2121
- **Task Note Editing**: Fixed a UI bug in the result editor that prevented proper task identification in detail view mode.
22-
- **List Order Alignment**: Fixed misalignment in the task overview when customizing `[list.order]` columns with no content now render a fixed-width placeholder, preserving alignment across rows regardless of column order.
22+
- **List Order Alignment**: Fixed misalignment in the task overview when customizing `[list.order]` - columns with no content now render a fixed-width placeholder, preserving alignment across rows regardless of column order.
2323
- **Sub-task Status Toggle**: Fixed a bug where pressing `z` on a sub-task would apply the status change and outcome note to a different task. The result editor now correctly targets the originally selected task.
2424

2525
## [1.7.1] (2026-06-04)
@@ -33,14 +33,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3333
- **Task Result / Completion Report**: New `result` field for documenting task outcomes. Press `z` on a completed task to open the result editor dialog; results are visible in the detail view and included in exports.
3434
- **Open Issue ID System**: Every task now receives a human-friendly ID (`OI000001`, `OI000002`…) in addition to the internal hash ID. Displayed in the detail view and configurable as a list column via `open_issue_id` in `[list.order] right`.
3535
- **Responsible Person Assignment**: New `responsible` text field in the task editor for tracking task ownership. Visible in the detail view and included in exports.
36-
- **Project-Scoped Export**: The export dialog now offers a scope selection export all projects or limit to the current project.
36+
- **Project-Scoped Export**: The export dialog now offers a scope selection - export all projects or limit to the current project.
3737
- **Parent Project Inheritance**: Child tasks automatically inherit the project from their parent task when no project is explicitly assigned.
3838

3939
### Changed
4040
- **Config**: Added `open_issue_id` to the default right-side column order and allowed field list.
41-
- **Storage**: Database schema migration v7 adds `result`, `open_issue_id`, `responsible` columns and `meta` table.
41+
- **Storage**: Database schema migration v7 - adds `result`, `open_issue_id`, `responsible` columns and `meta` table.
4242
- **Code Cleanup**: Removed redundant comments, dead stub code, and developer notes across the codebase.
43-
- **UI Layout Engine**: Complete redesign of task list row layout title width is now computed dynamically from actual rendered content widths instead of hardcoded magic number (`-40`).
43+
- **UI Layout Engine**: Complete redesign of task list row layout - title width is now computed dynamically from actual rendered content widths instead of hardcoded magic number (`-40`).
4444
- **Detail View**: Metadata labels now use computed widths based on actual label content instead of hardcoded 10-character padding, ensuring alignment is maintained regardless of field name lengths.
4545
- **Modal Overlays**: Result editor and tag filter modals now use responsive widths (`min(60, width-4)`) instead of fixed 60 characters.
4646
- **FillViewport**: Removed `width+1` off-by-one guard hack and extra bottom padding line. Background filling now uses exact terminal dimensions.

README.md

Lines changed: 114 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66

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

9-
A premium, minimalist task manager designed for focus. Kairo strips away the noise, relying on structured whitespace and refined typography to keep you in your flow.
9+
Kairo is a keyboard-first task manager for the terminal. It keeps tasks, projects, recurring work, and notes local, fast, and easy to automate.
1010

1111
<br/>
1212

13-
[![Release](https://img.shields.io/github/v/release/programmersd21/kairo?style=for-the-badge&logo=github&color=7c3aed)](https://github.com/programmersd21/kairo/releases)
14-
[![CI](https://img.shields.io/github/actions/workflow/status/programmersd21/kairo/ci.yml?branch=main&style=for-the-badge&logo=github&color=2563eb)](https://github.com/programmersd21/kairo/actions)
13+
[![Release](https://img.shields.io/github/v/release/programmersd21/kairo?style=for-the-badge\&logo=github\&color=7c3aed)](https://github.com/programmersd21/kairo/releases)
14+
[![CI](https://img.shields.io/github/actions/workflow/status/programmersd21/kairo/ci.yml?branch=main\&style=for-the-badge\&logo=github\&color=2563eb)](https://github.com/programmersd21/kairo/actions)
1515
[![License: MIT](https://img.shields.io/badge/License-MIT-f59e0b?style=for-the-badge)](https://opensource.org/licenses/MIT)
1616

1717
<br/>
@@ -20,95 +20,106 @@ A premium, minimalist task manager designed for focus. Kairo strips away the noi
2020

2121
</div>
2222

23-
**YouTube tutorial playlist (in dev):**
24-
https://youtube.com/playlist?list=PLvaz_NYJcySmNh28QzxLqV5HRrTslEaUo&si=XY8YvRnrhqxqU6RD
23+
**YouTube tutorial playlist (in dev):**
24+
[https://youtube.com/playlist?list=PLvaz_NYJcySmNh28QzxLqV5HRrTslEaUo&si=XY8YvRnrhqxqU6RD](https://youtube.com/playlist?list=PLvaz_NYJcySmNh28QzxLqV5HRrTslEaUo&si=XY8YvRnrhqxqU6RD)
2525

2626
---
2727

2828
## Why Kairo?
2929

30-
Kairo is built on the philosophy of "Calm Tech." We focus on your data, not our UI.
30+
Kairo is built for people who want speed, structure, and full keyboard control without leaving the terminal.
3131

32-
| Premium Minimalist Feature | Benefit |
33-
|---|---|
34-
| **Momentum Dashboard** | Empty states are now data-rich, bordered modules. |
35-
| **White-Space-First UI** | No borders, no clutter — just content. |
36-
| **Monochrome Design** | Neutral core, semantic-only color highlights. |
32+
| Feature | Benefit |
33+
| ------------------------ | ------------------------------------------------- |
34+
| **Momentum Dashboard** | Quick view of task progress and activity. |
35+
| **White-Space-First UI** | Focused layout with less visual noise. |
36+
| **Monochrome Design** | Clean core with semantic color accents. |
3737
| **Typography Hierarchy** | Clear visual focus through font weight and scale. |
38-
| **Fluid Motion** | Sub-300ms transitions that feel "alive." |
38+
| **Fluid Motion** | Fast transitions that stay out of the way. |
3939

4040
---
4141

4242
## Quick Start
4343

4444
**macOS (Homebrew)**
45+
4546
```bash
4647
brew install programmersd21/kairo/kairo
4748
```
4849

4950
**Linux / macOS**
51+
5052
```bash
5153
curl -fsSL https://raw.githubusercontent.com/programmersd21/kairo/main/scripts/install.sh | bash
5254
```
5355

5456
**Windows (PowerShell)**
57+
5558
```powershell
5659
iwr -useb https://raw.githubusercontent.com/programmersd21/kairo/main/scripts/install.ps1 | iex
5760
```
5861

5962
**Go**
63+
6064
```bash
6165
go install github.com/programmersd21/kairo/cmd/kairo@latest
6266
```
6367

64-
Then just run:
68+
Then run:
69+
6570
```bash
6671
kairo
6772
```
6873

69-
Press `n` to create your first task. `ctrl+s` to save. That's it.
74+
Press `n` to create your first task. Press `ctrl+s` to open settings.
7075

71-
> Works best on Alacritty. Some terminals may have rendering quirks see [#16](https://github.com/programmersd21/kairo/issues/16).
76+
> Works best on Alacritty. Some terminals may have rendering quirks - see [#16](https://github.com/programmersd21/kairo/issues/16).
7277
7378
---
7479

7580
## Features
7681

7782
![Kairo Home Screen](screenshots/home_screen.png)
7883

79-
### ⚡ Genuinely Fast
80-
Sub-millisecond fuzzy search. Vim bindings (`j/k/gg/G`). Natural language deadlines like `tomorrow 10am` or `next friday`. Full keyboard control — you never touch the mouse.
84+
### Genuinely Fast
85+
86+
Sub-millisecond fuzzy search, Vim bindings (`j/k/gg/G`), and full keyboard control.
87+
88+
### Project Sidebar & Hierarchy
89+
90+
Organize work into projects and nested task trees. Toggle the sidebar with `ctrl+e` and switch projects with arrow keys.
91+
92+
### Recurring Tasks & Results
93+
94+
Create weekly or monthly schedules, and attach completion notes when marking work as done.
95+
96+
### Your Data, Locally
8197

82-
### 🗂 Project Sidebar & Hierarchy
83-
Organize work into deep hierarchies and separate projects. Toggle the **Project Sidebar** with `ctrl+e` for quick navigation, fuzzy find projects by name, and switch between projects using arrow keys. Project ordering is customizable via `config.toml` (e.g., `[projects] order = "alphabetical"|"recent"`). Nest tasks via the **Parent** field in the editor, and select projects from an interactive list by pressing `Enter` on the **Project** field.
98+
SQLite with WAL mode. Fully offline. Optional Git-backed sync. Export to JSON, CSV, Markdown, or plain text.
8499

85-
### 🔁 Recurring Tasks & Results
86-
Tasks reappear automatically on a schedule. Weekly (`mon,wed,fri`) or monthly (`15`). When completed, Kairo generates the next instance immediately with a smart due-date preview.
100+
### Interactive Stats Dashboard & Focus Engine
87101

88-
**Task Results**: Document the outcome of your work with completion notes (countermeasures). Press `z` on a task to open the interactive status selection popup — choose from `todo`, `doing`, or `done`. Selecting `done` prompts you for a completion note, ensuring you capture important insights and review your productivity.
102+
Press `s` to open statistics and `f` to launch the built-in Pomodoro timer.
89103

90-
### 🔒 Your Data, Locally
91-
SQLite with WAL mode. Fully offline. Optional Git-backed sync — no backend, no account, no lock-in. Export to JSON, CSV, Markdown, or plain text on demand. Project organization is preserved in your database.
104+
### Optional AI
92105

93-
### 🧭 Interactive Stats Dashboard & Focus Engine
94-
Press `s` to open a next-gen "Command Center". Visualize your **Productivity DNA**, track real-time momentum, and get behavioral insights.
106+
Gemini integration is available for natural-language task creation and management. Toggle it with `ctrl+a`.
95107

96-
**Focus Engine**: Press `f` to launch the native Pomodoro timer. Track deep work sessions directly against your active tasks. When a session is active, Kairo displays a "DEEP WORK" pulse in the footer.
108+
### Beautiful by Default
97109

98-
### 🤖 AI — Optional, Never Intrusive
99-
Gemini integration (`gemini-3.1-flash-lite-preview` / `gemini-2.5-flash-lite` / `gemini-2.0-flash-lite`). Toggle with `ctrl+a`. Create and manage complex recurring tasks with natural language, including assigning to specific projects. Invisible until you need it.
110+
32 built-in themes, live switching, Markdown preview, and configurable UI behavior.
100111

101-
### 🎨 Beautiful by Default
102-
32 built-in themes with edge-to-edge background coverage. Live switching with `t`. Bento-style layout. Real-time Markdown preview (`ctrl+p`), with configurable default state in `config.toml` under `[edit]`. Cinematic create/complete/delete animations — or disable them entirely in `config.toml`.
112+
### Extensible to the Core
103113

104-
### 🧩 Extensible to the Core
105-
A Lua plugin system hooks into task events. A headless CLI API enables full scripting. An MCP server opens Kairo to AI agents — with complete support for recurring schedules and nested hierarchies.
114+
Lua plugins, a headless CLI API, and an MCP server for agent workflows.
106115

107-
### ↩️ Undo & Redo
108-
Kairo now tracks your every move with a local history engine. Instantly reverse mistakes with `ctrl+z` or re-apply undone actions with `ctrl+y`. Supports task creation, deletion (including bulk), editing, and status changes. Everything is synchronized live with the database.
116+
### Undo & Redo
109117

110-
### 🎨 Tag Highlighting
111-
Color-code your tags directly in `config.toml`. Supports hex codes or theme-aware aliases (e.g., `accent`).
118+
Track task creation, editing, deletion, and status changes with local history.
119+
120+
### Tag Highlighting
121+
122+
Color-code tags directly in `config.toml`.
112123

113124
```toml
114125
[tags.highlight]
@@ -121,28 +132,28 @@ diy = "bg=accent"
121132

122133
## Keyboard Shortcuts
123134

124-
| Key | Action |
125-
|---|---|
126-
| `n` | New task |
127-
| `D` | Duplicate task |
128-
| `e` | Edit task |
129-
| `z` | Complete task |
130-
| `ctrl+d` | Duplicate task |
131-
| `Space` | Select task / Collapse subtasks |
132-
| `s` | Stats dashboard |
133-
| `f` | Focus engine |
134-
| `ctrl+f` | Filter by tag |
135-
| `ctrl+e` | Switch project |
136-
| `p` | Manage plugins |
137-
| `t` | Switch theme |
135+
| Key | Action |
136+
| -------- | ---------------------------------- |
137+
| `n` | New task |
138+
| `D` | Duplicate task |
139+
| `e` | Edit task |
140+
| `z` | Complete task |
141+
| `ctrl+d` | Duplicate task |
142+
| `Space` | Select task / Collapse subtasks |
143+
| `s` | Stats dashboard |
144+
| `f` | Focus engine |
145+
| `ctrl+f` | Filter by tag |
146+
| `ctrl+e` | Switch project |
147+
| `p` | Manage plugins |
148+
| `t` | Switch theme |
138149
| `ctrl+p` | Command palette / Markdown preview |
139-
| `ctrl+a` | AI panel |
140-
| `ctrl+s` | Settings |
141-
| `x` | Import / Export |
142-
| `?` | Help |
143-
| `ctrl+z` | Undo last action |
144-
| `ctrl+y` | Redo last undone |
145-
| `ctrl+w` | Welcome tour |
150+
| `ctrl+a` | AI panel |
151+
| `ctrl+s` | Settings |
152+
| `x` | Import / Export |
153+
| `?` | Help |
154+
| `ctrl+z` | Undo last action |
155+
| `ctrl+y` | Redo last undone |
156+
| `ctrl+w` | Welcome tour |
146157

147158
<div align="center">
148159
<img src="screenshots/new_task.png" width="30%" />
@@ -160,7 +171,7 @@ diy = "bg=accent"
160171

161172
## CLI Automation
162173

163-
Kairo exposes a full CLI API for scripting and CI pipelines, with complete support for `parent_id` and `collapsed` state:
174+
Kairo exposes a full CLI API for scripting and CI pipelines, with support for `parent_id` and `collapsed` state:
164175

165176
```bash
166177
# Create a task
@@ -200,7 +211,7 @@ Browse [sample plugins →](https://github.com/programmersd21/kairo/tree/main/pl
200211

201212
## Architecture
202213

203-
```
214+
```text
204215
Input (CLI · TUI · Lua · AI)
205216
206217
Task Service (single source of truth)
@@ -216,19 +227,19 @@ Bubble Tea TUI (instant rendering)
216227

217228
## Everything Included
218229

219-
| Feature | Status |
220-
|---|---|
221-
| Local-first SQLite storage ||
222-
| Nested tasks & folders ||
223-
| 32 themes, live switching ||
224-
| Keyboard-only workflow ||
225-
| Recurring tasks ||
226-
| Git sync (no backend) ||
227-
| Lua plugin system ||
228-
| CLI automation API ||
229-
| AI assistant (optional) ||
230-
| MCP server ||
231-
| Free & open source ||
230+
| Feature | Status |
231+
| -------------------------- | ------ |
232+
| Local-first SQLite storage | |
233+
| Nested tasks & folders | |
234+
| 32 themes, live switching | |
235+
| Keyboard-only workflow | |
236+
| Recurring tasks | |
237+
| Git sync (no backend) | |
238+
| Lua plugin system | |
239+
| CLI automation API | |
240+
| AI assistant (optional) | |
241+
| MCP server | |
242+
| Free & open source | |
232243

233244
---
234245

@@ -237,6 +248,7 @@ Bubble Tea TUI (instant rendering)
237248
Kairo can be configured via `config.toml` in your application data directory.
238249

239250
### Task List
251+
240252
You can customize the fields shown on the right side of the task list:
241253

242254
```toml
@@ -247,41 +259,45 @@ right = ["tags", "due", "priority"]
247259
Valid values for `right` are: `tags`, `due`, `priority`.
248260

249261
### Task Fields
250-
* **Minimal Due Mode**: Abbreviate "overdue" to "OD" and use a fixed-width column for consistent task list alignment. Enabled by default.
251-
```toml
252-
[list.fields.due]
253-
minimal = true
254-
```
255-
* **wait_until**: Hide a task from the task list until the specified datetime. If the task is recurring, new instances are not generated/shown until `wait_until` has passed. Format: `yyyy-MM-dd HH:mm`.
256-
* **until**: Stop generating new recurring instances after the specified datetime. Existing instances may remain visible. Format: `yyyy-MM-dd HH:mm`.
262+
263+
**Minimal Due Mode**: Abbreviate overdue states and use a fixed-width column for consistent alignment.
264+
265+
```toml
266+
[list.fields.due]
267+
minimal = true
268+
```
269+
270+
**wait_until**: Hide a task from the task list until the specified datetime.
271+
272+
**until**: Stop generating new recurring instances after the specified datetime.
257273

258274
Auto-generated on first run at:
259275

260-
- **Linux:** `~/.config/kairo/config.toml`
261-
- **macOS:** `~/Library/Application Support/kairo/config.toml`
262-
- **Windows:** `%APPDATA%\kairo\config.toml`
276+
* **Linux:** `~/.config/kairo/config.toml`
277+
* **macOS:** `~/Library/Application Support/kairo/config.toml`
278+
* **Windows:** `%APPDATA%\kairo\config.toml`
263279

264-
| Option | Description | Default |
265-
|---|---|---|
266-
| `theme` | UI theme name | `catppuccin` |
267-
| `vim_mode` | Vim keybindings | `false` |
268-
| `show_help` | Help footer | `true` |
269-
| `show_id` | Task IDs in detail view | `true` |
270-
| `animations` | UI animations | `true` |
271-
| `rainbow` | Animated rainbow logo | `false` |
280+
| Option | Description | Default |
281+
| ------------ | ----------------------- | ------------ |
282+
| `theme` | UI theme name | `catppuccin` |
283+
| `vim_mode` | Vim keybindings | `false` |
284+
| `show_help` | Help footer | `true` |
285+
| `show_id` | Task IDs in detail view | `true` |
286+
| `animations` | UI animations | `true` |
287+
| `rainbow` | Animated rainbow logo | `false` |
272288

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

275291
---
276292

277293
## Roadmap
278294

279-
- Encrypted multi-workspace support
280-
- Event-sourced sync engine
281-
- Sandboxed plugin environment
282-
- Smart task suggestions
283-
- Plugin marketplace
284-
- Streaming performance optimizations
295+
* Encrypted multi-workspace support
296+
* Event-sourced sync engine
297+
* Sandboxed plugin environment
298+
* Smart task suggestions
299+
* Plugin marketplace
300+
* Streaming performance optimizations
285301

286302
---
287303

@@ -299,7 +315,7 @@ Prefer not to edit files? `ctrl+s` opens the in-app settings menu.
299315

300316
## Contributing
301317

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

304320
Huge thanks to [@Tornado300](https://github.com/Tornado300), [@riodelphino](https://github.com/riodelphino) and [@FuryRacer](https://github.com/FuryRacer) for key bug fixes and improvements that made Kairo better for everyone.
305321

cmd/kairo/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ func runUpdate(ctx context.Context) error {
400400

401401
func runHelp(args []string) {
402402
if len(args) == 0 {
403-
fmt.Println("Kairo Minimal, powerful task management.")
403+
fmt.Println("Kairo - Minimal, powerful task management.")
404404
fmt.Println("\nUsage:")
405405
fmt.Println(" kairo [command]")
406406
fmt.Println("\nAvailable Commands:")

docs/docs/features/dashboard.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ If you're in a specific project, the dashboard shows:
2828
### Behavioral Insights
2929
Kairo analyzes your data to provide smart tips, such as:
3030
- "You're most productive between 10 AM and 12 PM."
31-
- "You have 5 high-priority tasks overdue focus on those first."
31+
- "You have 5 high-priority tasks overdue - focus on those first."
3232

3333
## Bentham-Style Layout
3434
The dashboard uses a clean, module-based layout (inspired by Bento grids) that stays readable even in smaller terminal windows.

0 commit comments

Comments
 (0)