Skip to content

๐Ÿ“‘ CLI Task manager built using Cobra & Bubble Tea in Go

License

Notifications You must be signed in to change notification settings

ashish0kumar/taskly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

28 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Taskly

A command-line task management tool built in Go using the Cobra package. It features data storage with SQLite, visually styled output with Lip Gloss, and an interactive Kanban board view powered by Bubble Tea.
Taskly makes it easy to add, edit, delete, and manage tasks directly from the terminal.

List View Kanban View
List View Kanban View

Features

  • Task Management: Add, delete, update, and list tasks.
  • Project Organization: Assign tasks to specific projects for better organization.
  • SQLite Database Integration: Efficient storage and retrieval of tasks.
  • Styled Output: Stylish table and Kanban layouts using Lip Gloss.
  • Kanban Board Interface: Visualize tasks as a Kanban board with Bubble Tea.

Installation

Prerequisites:

  • Go (version 1.16 or later recommended)
  1. Clone the repository:

    git clone https://github.com/ashish0kumar/taskly.git
    cd taskly
  2. Install the application using go install:

    go install .

This command will compile the main.go file and place the resulting executable (taskly) in your GOPATH/bin directory. Ensure that your GOPATH/bin is included in your system's PATH environment variable so you can run taskly from anywhere in your terminal.

Alternatively, you can build the executable manually:

go build -o taskly .
# Then move the 'taskly' executable to a directory in your PATH
# For example: mv taskly /usr/local/bin/

Usage

Use Taskly commands from your terminal to manage tasks. The main command is taskly, followed by subcommands to perform specific actions.

Commands

  • Add a Task: Add a new task, optionally specifying a project name

    taskly add "Task Name" -p "Project Name"
  • Delete a Task: Delete a task by its unique ID:

    taskly delete <ID>
  • Update a Task: Update a task's name, project, or status:

    taskly update <ID> -n "New Task Name" -p "New Project Name" -s <status>

    Status options:

    • 0 for "todo"
    • 1 for "in progress"
    • 2 for "done"
  • List All Tasks: List all stored tasks in a table format:

    taskly list
  • View Kanban Board: Display tasks in a Kanban board layout. Tasks are categorized into todo, in progress and done columns:

    taskly kanban
  • View Database Path: Locate the database file where tasks are stored:

    taskly where

Examples

  1. Adding a Task with Project Name
taskly add "Design Homepage" -p "Website Redesign"
  1. Updating a Task's Status
taskly update 1 -s 1
  1. Listing All Tasks
taskly list

This command shows tasks in a formatted table with columns for ID, Name, Project, Status, and Creation Date.

  1. Viewing the Kanban Board
taskly kanban

This displays tasks in a Kanban layout, categorized by status.

Data Storage

Taskly uses a SQLite database to persist tasks. The database is stored in an XDG-compliant directory (typically $HOME/.local/share/tasks.db). This structure enables easy backup and integration across systems.

Dependencies

  • Cobra: CLI command framework.
  • Bubble Tea: TUI framework for the Kanban board.
  • Lip Gloss: Used for stylish table layouts.
  • SQLite: Lightweight, serverless SQL database.

Contributions

Contributions are welcome! Please fork the repository, create a new branch, and submit a pull request.

License

MIT