Skip to content

qrxnz/gk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

53 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

gk

A terminal-based task and habit manager written in Go

gk is a lightweight, fast, and keyboard-driven TUI designed for managing daily tasks and habits, built in Go using the Bubble Tea framework and a local libSQL database. Built with developers and terminal enthusiasts in mind, it allows you to stay organized without ever leaving the command line or lifting your hands off the keyboard...

🧰 Features

  • kanban board with To Do, In Progress, and Done columns
  • create, edit, delete, and move tasks between columns
  • weekly habit tracker
  • mark habits as completed for a selected day
  • track the current streak for each habit
  • local data storage in ~/.gk

πŸ“‹ Requirements

  • Go 1.26.2 or newer
  • a terminal that supports TUI applications

πŸ› οΈ Installation

πŸ“¦ Binary Releases

Pre-compiled binaries for Linux, Windows, and macOS are available on the Releases page.

🐹Using Go

You can install gk directly using go install:

go install github.com/qrxnz/gk@latest

πŸ—οΈ Build from Source

To build from source, you need to have Go installed.

git clone https://github.com/qrxnz/gk.git
cd gk
go build -o gk .

Alternatively, if you have Task installed, you can use:

task build

❄️ Using Nix

  • Run without installing
nix run github:qrxnz/gk
  • Add to a Nix Flake

Add input in your flake like:

{
 inputs = {
   gk = {
     url = "github:qrxnz/gk";
     inputs.nixpkgs.follows = "nixpkgs";
   };
 };
}

With the input added you can reference it directly:

{ inputs, system, ... }:
{
  # NixOS
  environment.systemPackages = [ inputs.gk.packages.${pkgs.system}.default ];
  # home-manager
  home.packages = [ inputs.gk.packages.${pkgs.system}.default ];
}
  • Install imperatively
nix profile install github:qrxnz/gk

πŸ“– Usage

Simply run the application from your terminal:

gk

⌨️ Keybindings

Key Action
n create a task or habit in the active section
e edit the selected task/habit
d delete the selected task/habit
enter move a task to the next column or toggle a habit check
tab switch between the task board and habit tracker
up / k move up
down / j move down
left / h previous column or previous day in the habit tracker
right / l next column or next day in the habit tracker
esc return from a form
? show help
q / ctrl+c quit

πŸ‘¨πŸ»β€πŸ’» Development

This project uses Nix with flakes and direnv to provide a reproducible development environment.

  1. Clone the repository

    git clone https://github.com/qrxnz/gk.git
    cd gk
  2. Activate the environment If you have Nix and direnv installed, the environment should be activated automatically when you enter the directory. If not, run:

    direnv allow
  3. Available Commands This project uses go-task as a command runner. Here are the most common commands:

    • task build: Build a production binary.
    • task test: Run unit tests.
    • task lint: Run the linter and fix issues.

πŸ—’οΈ Credits

🎨 Inspiration

I was inspired by:

πŸ“œ License

This project is licensed under the MIT License. See the LICENSE file for details.

About

A terminal-based task and habit manager written in Go

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages