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...
- kanban board with
To Do,In Progress, andDonecolumns - 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
- Go
1.26.2or newer - a terminal that supports TUI applications
Pre-compiled binaries for Linux, Windows, and macOS are available on the Releases page.
You can install gk directly using go install:
go install github.com/qrxnz/gk@latestTo 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- 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/gkSimply run the application from your terminal:
gk| 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 |
This project uses Nix with flakes and direnv to provide a reproducible development environment.
-
Clone the repository
git clone https://github.com/qrxnz/gk.git cd gk -
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
-
Available Commands This project uses
go-taskas 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.
I was inspired by:
This project is licensed under the MIT License. See the LICENSE file for details.