flexi
A minimal CLI tool for tracking your flexi-time balance.
Quickstart
Installation
Homebrew (macOS/Linux):
crates.io (requires Rust):
From source:
Usage
add 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. Notes appear dimmed at the end: 2026-05-24 10:20 +1 hr 30 min → 3 hr # reason.
--note/-m works on add, remove, set, and reset. Place it before or after the time args.
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.
Clipboard
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
# Debian/Ubuntu
# Fedora
On macOS and X11 Linux, no extra dependencies are needed.
Shell completions
Configuration
Create ~/.config/flexi/flexi.toml to configure flexi:
= "/path/to/flexi.txt"
= "simple" # "simple" (default) or "full"
= "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.
License
MIT