Evidence-informed training planner for bodyweight strength exercises. Supports Pull-Up, Parallel Bar Dip, and Bulgarian Split Squat (DB) — all sharing one planning engine.
git clone <repo-url> && cd bar-scheduler
uv sync --extra dev # install deps (dev includes test tools)
uv run bar-scheduler # open interactive menuGlobal install (no uv run prefix needed):
uv tool install -e .| Command | Description |
|---|---|
profile init |
Create / update profile; set baseline max and training days |
profile update-weight 85.5 |
Update current bodyweight |
profile update-equipment |
Configure bands, machine, or BSS surface |
profile update-language ru |
Save display language to profile |
plan |
Unified history + upcoming plan table; --weeks N; --json |
log-session |
Log a completed session |
show-history |
Display training history; --limit N; --json |
plot-max |
ASCII chart of max reps; -t z/g/m trajectory overlays |
status |
Current TM, readiness, plateau/deload flags; --json |
volume |
Weekly rep volume chart; --weeks N; --json |
explain DATE|next |
Step-by-step breakdown of how a session was planned |
skip |
Shift plan forward/backward N days; --days N |
1rm |
Estimate 1-rep max (5 formulas with ★ recommendation) |
delete-record N |
Delete history entry #N |
help-adaptation |
Adaptation timeline: what the model can predict at each stage |
All data commands accept --exercise / -e (default: pull_up). Add --json for machine-readable output.
Run bar-scheduler without arguments:
[1] Show training log & plan
[2] Log today's session
[3] Show full history
[4] Progress chart
[5] Current status
[6] Update bodyweight
[7] Weekly volume chart
[e] Explain how a session was planned
[r] Estimate 1-rep max
[s] Rest day — shift plan forward
[u] Update training equipment
[l] Change display language
[i] Setup / edit profile & training days
[d] Delete a session by ID
[a] How the planner adapts over time
[0] Quit
bar-scheduler -e dip # open menu with dip pre-selected
bar-scheduler -e bss plan # run plan command for BSS
bar-scheduler --lang ru # Russian interface for this session
bar-scheduler profile update-language zh # save Chinese as defaultSeparate history files per exercise: ~/.bar-scheduler/pull_up_history.jsonl, dip_history.jsonl, bss_history.jsonl.
Available languages (auto-discovered from locales/*.yaml): en, ru, zh.
- CLI Examples — commands, sets format, output examples
- JSON API — full JSON schemas for
--jsonoutput - Training Model — adaptation logic summary (Russian)
- Formula Reference — all formulas with config knobs
- Exercise Structure — how to add a custom exercise
- Plan Logic — technical reference: prescription stability, skip mechanism
- Adaptation Guide — what to expect at each stage
uv run pytestCC BY-NC 4.0 — non-commercial use with attribution. See LICENSE.

