9 releases (breaking)

0.9.1 Mar 24, 2024
0.8.0 Jan 28, 2024
0.6.0 Jun 10, 2023
0.4.1 Dec 5, 2021
0.1.2 Jul 11, 2021

#417 in Command line utilities

Download history 2/week @ 2024-01-15 7/week @ 2024-02-19 19/week @ 2024-02-26 107/week @ 2024-03-04 28/week @ 2024-03-11 86/week @ 2024-03-18 22/week @ 2024-03-25 67/week @ 2024-04-01

207 downloads per month

MIT license

115KB
2K SLoC

genee

Crates.io Docs.rs CI

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

genee X.Y.Z
A habit tracker app with command-line interface

USAGE:
    genee [OPTIONS] [SUBCOMMAND]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -d, --datafile <datafile>
            Path to the diary file. 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

    -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

SUBCOMMANDS:
    add-category     Adds or unhides a category
    help             Prints this message or the help of the given subcommand(s)
    hide-category    Hides a category
    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

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

~36MB
~540K SLoC