10 releases (6 breaking)

Uses new Rust 2024

new 0.9.2 Mar 30, 2025
0.9.1 Mar 24, 2024
0.8.0 Jan 28, 2024
0.6.0 Jun 10, 2023
0.1.2 Jul 11, 2021

#461 in Command line utilities

Download history 2/week @ 2024-12-09 1/week @ 2024-12-16 1/week @ 2025-02-17

451 downloads per month

MIT license

115KB
2K SLoC

genee

Crates.io Docs.rs CI dependency status

genee is a simple habit tracker program for the command line

Features

  • Daily tracking of habits 📅
  • Open storage format: SQLite database 📄
  • Pretty diagrams to compare successive periods of habit data 📊
  • Store default settings persistently 💾

Workflow

  1. Figure out the list of habits to track. In this example, we would like to restrict our gaming binges and increase the frequency of our piano exercise sessions. GAM stands for gaming, whereas PNO stands for the instrumental practice.
  2. Download the latest release from this repository.
  3. Using the downloaded executable, create a new data file to store the diary data. Specify the list of habit abbreviations to use in this file: genee new GAM,PNO
  4. Each day, fill in whether you practiced the particular habits the previous day or not. Run genee which opens an interactive terminal interface. Habit data for each day can be added and edited, and various statistics are shown.

Screenshot

A screenshot of the main genee interface

Full helptext

A habit tracker app with command-line interface

Usage: genee [OPTIONS] [COMMAND]

Commands:
  list-config    Prints the persistent configuration
  new            Provide a comma separated list of habit categories. A new diary file is created at the specified --datafile path
  save-config    Saves the specified options to persistent configuration
  add-category   Adds or unhides a category
  hide-category  Hides a category
  help           Print this message or the help of the given subcommand(s)

Options:
  -d, --datafile <DATAFILE>
          Path to the diary file. When not provided, its value is loaded from persistent configuration file
  -p, --past-periods <PAST_PERIODS>
          Specifies the number of displayed periods when graphing the diary data. When not provided, its value is loaded from persistent configuration file
  -f, --list-most-frequent-days <LIST_MOST_FREQUENT_DAYS>
          Specifies the number of most frequent daily habit compositions over the specified period
  -h, --help
          Print help
  -V, --version
          Print version

Building

genee builds with the standard Rust toolchain:

git clone https://github.com/mfep/genee.git
cd genee
cargo build --release

Contribution

See CONTRIBUTING.md.

Dependencies

~31–41MB
~701K SLoC