No project description provided
Project description
habits.txt
habits.txt is a plain text habit tracker.
Installation | Concepts | Format | Directives | Examples
Installation
pip install habits.txt
You can then use the CLI with:
hbtxt --help
Concepts
Time-bound
A habit is time-bound. It has a start date, and eventually an end date. It means with habits.txt, you can track habits for a specific period of time. When you want to stop tracking a habit, you can just stop tracking it.
Frequency
A habit is defined by a frequency, else it's called a task. The minimum frequency supported by habits.txt is daily (it doesn't support intra-day habits).
Boolean or Measurable
A habit can be boolean or measurable. A boolean habit is either done or not done. A measurable habit has a value.
Format
Habits are tracked in what I call a "journal" which is just a plain text file. A journal contains "directives".
A directive is composed of a date, a directive type, a habit name, and other metadata specific to the directive type. For example, here is a sample directive:
2024-01-01 track "Read 5 pages a day" (* * *)
You can comment lines in your journal by starting them with a #
character.
You can't add comments at the end of a line.
# Start tracking a habit
2024-01-01 track "Read 5 pages a day" (* * *)
Directives
track
To start tracking a habit, you use the track
directive and specify the frequency of the habit enclosed in parentheses.
Optionally, you can make the habit measurable by specifying the "measurable" keyword.
The frequency follows a simplified cron syntax, omitting the minute and the hour.
Example:
2024-01-01 track "Read 5 pages a day" (* * *)
2024-01-01 track "Exercise" (* * 1,3,5) measurable
untrack
To stop tracking a habit, you use the untrack
directive.
Example:
2024-02-01 untrack "Read 5 pages a day"
record
To record a habit, you use the record
directive and specify a value.
The allowed values are yes
, no
, or a number. You should not mix boolean and numeric values for the same habit.
You can write directives but omit the directive type, it will default to record
.
Example:
2024-01-01 record "Read 5 pages a day" 5
2024-01-01 record "Workout" yes
2024-01-01 "Weight" 70.5
Examples
habits.journal
:
2024-01-01 track "Reading" (* * *)
2024-01-01 track "Exercise" (* * 1,3,5)
2024-01-01 track "Weight" (* * 1) measurable
# Record habits
2024-01-01 record "Reading" yes
2024-01-01 record "Exercise" no
2024-01-01 record "Weight" 70.5
Once your journal is ready, you can use the CLI to interact with it.
# Set the journal file as default journal
hbtxt config set journal /path/to/habits.journal
# Fill the habits for today interactively
hbtxt fill -i
Exercise (2024-01-01): yes
# Filter habit records
hbtxt filter -n "Exercise"
2024-01-01 Exercise yes
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file habits_txt-0.3.2.tar.gz
.
File metadata
- Download URL: habits_txt-0.3.2.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.8.9-arch1-2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1826c5c7ebfea35ce90d7f6687288757b6ca9bb12c6cb63ac758794529bc44bf |
|
MD5 | 0ccf71861e5c15d77b7dd21b5516ec7f |
|
BLAKE2b-256 | 8187e7bad841ee6b05b5f62dfd230c8b1bf45b944b4a0df6748a95bddffd0ae7 |
File details
Details for the file habits_txt-0.3.2-py3-none-any.whl
.
File metadata
- Download URL: habits_txt-0.3.2-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.8.9-arch1-2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd465f5110642d9ae7cf4addf65cf4d3d83dbadabcc4518f5a8acba6b5e2afb0 |
|
MD5 | a1caa2f67f7f991d42c62ea47ba62396 |
|
BLAKE2b-256 | 904ece07887193d122d051208d80257fee88cd1b018d3dcb42fd67e461693182 |