cli_kanban

command module
v0.0.0-...-4d2d488 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2026 License: MIT Imports: 12 Imported by: 0

README ΒΆ

cli_kanban

cli_kanban screenshot

A terminal-based Kanban board management tool built with Go, featuring a beautiful TUI interface.

Features

  • πŸ“‹ Three-column board: Todo / In Progress / Done
  • ✨ Full CRUD operations: Add, edit, and delete tasks
  • 🏷️ Task tags: Categorize tasks with colored tags
  • πŸ“… Due dates: Set deadlines with color-coded status (overdue, today, upcoming)
  • πŸ” Search & filter: Quick search across tasks with tag: syntax support
  • 🎨 Beautiful TUI interface: Built with Bubble Tea framework
  • πŸ’Ύ SQLite persistence: Data automatically saved to local database
  • ⌨️ Keyboard shortcuts: Efficient keyboard navigation

Installation

Prerequisites
  • Go 1.21 or higher
  • GCC (for compiling SQLite)
Build
# Clone or navigate to project directory
cd cli_kanban

# Download dependencies
go mod tidy

# Build
go build -o cli_kanban

# Run
./cli_kanban

Usage

Launch Application
# Use default workspace (default)
./cli_kanban

# Use a named workspace (stored under ~/.cli_kanban/)
./cli_kanban -w work

# List existing workspaces
./cli_kanban --list

# Delete a workspace database
./cli_kanban --delete work
Workspaces

cli_kanban stores data in separate workspaces. Each workspace maps to its own SQLite database file.

  • Default workspace: default
  • Select workspace: --workspace <name>

Workspace name rules

  • Allowed characters: lowercase letters, digits, _, -
  • Length: 1–32
  • Examples: default, work, personal_2025, proj-a
Data Storage

All databases are stored under your home directory:

  • Directory: ~/.cli_kanban/
  • Database file: ~/.cli_kanban/cli_kanban__<workspace>.db

Examples:

  • ~/.cli_kanban/cli_kanban__default.db
  • ~/.cli_kanban/cli_kanban__work.db
Migration Notes

Older versions used a single default database at ~/.cli_kanban.db.

On first run with the default workspace, if ~/.cli_kanban/cli_kanban__default.db does not exist but ~/.cli_kanban.db does, the old database is copied to the new location.

Keyboard Shortcuts
Navigation
  • ← / β†’ or h / l - Switch between columns
  • ↑ / ↓ or j / k - Move between tasks
Actions
  • a - Add new task to current column
  • e or Enter - Edit selected task title
  • i - Edit selected task description
  • t - Edit selected task tags
  • u - Edit selected task due date
  • d or Delete - Delete selected task
  • m - Move task to next column
  • / - Open search input
  • Enter - Apply search filter
  • Esc - Clear search filter (when active)

Search syntax:

  • keyword - Search in title, description and tags
  • title:text - Search only in title
  • desc:text - Search only in description
  • tag:name - Search only in tags (exact match)
  • due:YYYY-MM-DD - Exact due date match
  • due:<YYYY-MM-DD - Due before date
  • due:>YYYY-MM-DD - Due after date
  • due:<=YYYY-MM-DD - Due on or before date
  • due:>=YYYY-MM-DD - Due on or after date
  • due:today - Due today
  • due:yesterday - Due yesterday
  • due:tomorrow - Due tomorrow
  • due:overdue - Past due date
  • due:none - No due date set
Other
  • F5 - Refresh board (reload tasks)
  • ? - Show help
  • q or Ctrl+C - Quit application
  • Esc - Cancel current action or quit

Project Structure

cli_kanban/
β”œβ”€β”€ main.go              # Entry point and Cobra commands
β”œβ”€β”€ go.mod               # Go module dependencies
β”œβ”€β”€ internal/
β”‚   β”œβ”€β”€ db/
β”‚   β”‚   └── sqlite.go    # SQLite database operations
β”‚   β”œβ”€β”€ model/
β”‚   β”‚   └── task.go      # Data model definitions
β”‚   └── tui/
β”‚       β”œβ”€β”€ model.go     # Bubble Tea model
β”‚       β”œβ”€β”€ update.go    # Event handling logic
β”‚       └── view.go      # View rendering
└── README.md

Tech Stack

Data Model

Task
Field Type Description
id INTEGER Auto-increment primary key
title TEXT Task title
description TEXT Task description
status TEXT Task status (todo/in_progress/done)
tags TEXT Comma-separated tags
due DATETIME Due date (optional)
created_at DATETIME Creation timestamp
updated_at DATETIME Last update timestamp

Development

# Run (development mode)
go run main.go

# Format code
go fmt ./...

# Run tests
go test ./...

License

MIT

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis
internal
db
tui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL