A minimal CLI tool for tracking your flexi-time balance.
Homebrew (macOS/Linux):
brew tap thombruce/tap
brew install thombruce/tap/flexicrates.io (requires Rust):
cargo install flexiFrom source:
cargo install --path .flexi # display current balance
flexi add 1 hr 30 min # add time
flexi remove 1 hr # subtract time (alias: rm)
flexi set 2 hr # set balance to exact value
flexi reset # reset balance to zero
flexi log # show change history
flexi log --today # today only (alias: --day)
flexi log --week # current calendar week
flexi log --month # current calendar month
flexi log --since 2026-05-01 --until 2026-05-24 # date range
flexi log --last 10 # last 10 entries (combinable with filters)
flexi log --week --summary # totals for current week (added, removed, net)
flexi undo # undo last change
flexi copy # copy balance to clipboard (alias: cp)
flexi completions <shell> # print shell completion scriptadd and remove print the change and new balance (e.g. +1 hr 30 min → 3 hr). set and reset print the new balance. log prints one entry per line: 2026-05-24 10:20 +1 hr 30 min → 3 hr.
Quotes are optional — flexi add 1h30m and flexi add "1h30m" are equivalent.
All of the following time formats are accepted:
| Format | Example |
|---|---|
N hr M min |
1 hr 30 min, 45 min, 2 hr |
N hour M minutes |
1 hour 30 minutes, 2 hours |
| Compact | 1h30m, 1h, 30m, 1.5h |
| Decimal hours | 1.5, 0.5 |
| Decimal hours with unit | 1.5 hours, 1.5 hr |
| European decimal | 1,5, 1,5 hours |
Positive balances display in green, negative in red. Negative balances display as e.g. -1 hr 30 min.
flexi copy (or flexi cp) copies the current balance to the clipboard and prints it.
On Wayland, this requires the wl-clipboard package:
# Arch/Manjaro
pacman -S wl-clipboard
# Debian/Ubuntu
apt install wl-clipboard
# Fedora
dnf install wl-clipboardOn macOS and X11 Linux, no extra dependencies are needed.
flexi completions zsh > ~/.zsh/completions/_flexi
flexi completions bash > ~/.bash_completion.d/flexi
flexi completions fish > ~/.config/fish/completions/flexi.fishCreate ~/.config/flexi/flexi.toml to configure flexi:
path = "/path/to/flexi.txt"
timestamp_format = "simple" # "simple" (default) or "full"
week_start = "monday" # "monday" (default) or "sunday"timestamp_format |
Example |
|---|---|
simple (default) |
2026-05-24 10:20 |
full |
2026-05-24T10:20:16+01:00 |
week_start |
Description |
|---|---|
monday (default) |
Week starts on Monday |
sunday |
Week starts on Sunday |
Without config, data is stored at ~/.local/share/flexi/flexi.txt (or the platform equivalent). This file is the change log — the current balance is derived from the last entry.
MIT