Skip to content

v1.10.0 β€” writing tool + per-session tracking on every media log (73 tools)

Choose a tag to compare

@dm1tryG dm1tryG released this 23 May 22:29
· 82 commits to main since this release
pip install --upgrade clibo    # or: pipx upgrade clibo  Β·  uv tool install -U clibo

Headline: the 73rd tool

✍️ clibo writing β€” daily word-count tracker for novelists, bloggers,
essayists, NaNoWriMo participants. Writers track words, not minutes β€”
focus and time lose the metric that matters most. Pace (wpm), per-project
breakdown, daily goal, streak.

clibo writing log novel -w 1200 -t 45
# βœ“ Logged ✍️ 1200w on novel Β· 1200/500w today
clibo writing goal 1667                       # NaNoWriMo daily
clibo writing today                           # goal bar, streak, by-project
clibo writing stats                           # best_day, top_projects, avg_wpm

Per-session tracking on every media log

The big theme of this release is making books, films, and workout
answer "what did I do this week and how fast?" out of the box.

πŸ“š books β€” pages Γ— minutes

New BookSession table; books read now accepts -t MIN:

clibo books read "Atomic Habits" 30 -t 45     # 40 pages/hour
clibo books history --days 7                  # session timeline
clibo books stats                             # avg_pages_per_hour, days_read

Plus: books edit (was missing), books rm by title (was integer-only),
and exact-title match wins over substring (books show "Dune" finds Dune
not Dune: Part Two).

🎬 films β€” episode pointer for TV

Two new columns (season, episode); a progress subcommand with three
modes:

clibo films add "Better Call Saul" -k show -S 6 -E 5    # status auto-becomes "watching"
clibo films progress "Better Call Saul" --bump          # +1 episode
clibo films progress "Better Call Saul" -S 6 -E 10      # absolute pointer
clibo films show "Better Call Saul"                     # β†’ "S06E10"

Plus films show and films edit (both were missing), name-based rm,
and the same exact-match resolver fix.

πŸ‹οΈ workout pr β€” personal records

clibo workout pr                              # heaviest per exercise, sessions/exercise
clibo workout pr "bench press"                # rep-range breakdown β€” 1RM, 3RM, 5RM

Skips cardio rows automatically. workout show <name> / workout rm <name>
also gained name-resolve.

Other wins

  • 🀝 split owe / split lent β€” direct IOU shortcuts:

    clibo split owe Anna 50 --for dinner        # "I owe Anna $50"
    clibo split lent Bob 20                      # "Bob owes me $20"

    Stored as 1-participant SplitExpense rows, so they flow through
    balances, who, and settle like any other shared expense β€” no
    fake bill needed.

  • 🩺 clibo doctor gains three new checks:

    • --check-updates β€” opt-in PyPI query (3s timeout, fails silently)
    • schema drift detection (compares model columns vs live SQLite)
    • unconfigured-settings hint ("5 settings unconfigured β€” run clibo init")
    • canonical warnings: [str] field for agents
  • Name-resolution rolled out to the last six transactional tools:
    income, subs, bills, wishlist, bookmark, donations. Every
    show/edit/rm/cancel/pay/buy/fav now accepts a label, not
    just an integer ID. bills pay Electricity lands on the unpaid one.

By the numbers

  • 887 tests (+80 since v1.9.0), ruff clean
  • 73 tools (+1 β€” writing)
  • 88 SQLite tables (+2 β€” writing_session, books_session)
  • 6 iterations stacked (85 β†’ 91)

Upgrading

If you've been on v1.0.0 (pipx default git URL): pipx upgrade clibo will
catch you up to v1.10.0 in one command. To know when you've drifted in
future, run clibo doctor --check-updates.