A terminal-based habit tracking application with calendar views, multiple habit types, and note-taking capabilities.
- Calendar Views: Weekly and monthly calendar interfaces
- Habit Types: Boolean (done/not done), count (integers), and float (decimals)
- Note System: Attach detailed notes to any habit entry
- Themes: Built-in themes (Default, Dark, Light, Monochrome, Rosé Pine)
- Commands: Vim-style command system for habit management
- Persistence: SQLite database with automatic migrations
- Go 1.25.0 or later
- SQLite3
git clone <repository-url>
cd habits
go mod tidy
go build ./..../habitsThe application follows clean architecture principles with clear separation of concerns:
cmd/main.go- Application entry pointinternal/app/- Core business logic and data modelsinternal/tui/- Terminal user interface componentsinternal/cli/- Command-line interface (prepared for future CLI mode)
- Go 1.25.0 or later
- SQLite3 (usually pre-installed on most systems)
git clone <repository-url>
cd habits
go mod tidy
go build ./..../habits
# or
go run ./...The application creates configuration files automatically on first run:
- Database:
~/.local/state/habits/habits.db - Config:
~/.config/habits/config.toml - Themes:
~/.config/habits/themes/
Tab- Switch between weekly/monthly viewsHJKL/ Arrow keys - Navigate dates and habits:- Open command modeq- Quit
add <name> <type>- Create habit (types: bit, count, float)delete <name>- Remove habittrack-up <habit>- Increment habit valuetrack-down <habit>- Decrement habit valuenext-month/prev-month- Navigate months
- bit: Boolean completion (done/not done)
- count: Integer values (e.g., pages read)
- float: Decimal values (e.g., hours exercised)
e- Edit notes for selected habit/dateSpace- Toggle completion for bit habits+/-- Adjust values for count/float habits
Configuration files are created automatically in:
~/.config/habits/config.toml- Application settings~/.config/habits/themes/- Custom themes
Built-in themes: Default, Dark, Light, Monochrome, Rosé Pine
go test ./... # Run tests
go build ./... # Build application
go run ./... # Run application- Go 1.25.0+
- SQLite3
MIT
