Breathe CLI — Paced Resonance Breathing

Terminal app for vagal tone training. Single-file Python, no dependencies. Grounded in CHF clinical trials (Bernardi, Vaschillo, Lehrer). macOS. Science: /science/

View the Project on GitHub marekkowalczyk/breathe-cli

The science behind Breathe CLI

Breathe CLI paces slow breathing for cardiac vagal tone support. It is a habit tool, not a medical device: it does not diagnose, treat, or monitor disease, and it does not replace care from your clinician.

For install and usage, see the product home.

Mechanism

Resonance breathing — paced breathing near six breaths per minute (a 10-second cycle) — is among the better-studied non-pharmacological ways to engage cardiac vagal pathways.

The chain is physiological, not mystical:

  1. Slow paced breathing amplifies respiratory sinus arrhythmia (RSA) — the natural rise and fall of heart rate with each breath.
  2. Larger RSA reflects stronger vagal (parasympathetic) outflow to the heart.
  3. That outflow trains the baroreflex and tends to shift autonomic balance away from chronic sympathetic dominance.

Around 0.1 Hz (~6 breaths/min) is also where many adults show a cardiovascular resonance peak in heart-rate variability research: breathing, heart rate, and blood-pressure oscillations line up so baroreflex stimulation is especially strong. Individual “resonance frequency” can sit a little below or above 6 bpm; this app uses a fixed ~6 bpm protocol that matches the clinical slow-breathing literature it cites, not a sensor-guided personal RF assessment.

Why this matters in HFrEF / CHF

In heart failure with reduced ejection fraction (HFrEF), sympathetic overdrive is both a symptom and a driver of progression. Trials of slow breathing in chronic heart failure (CHF) have shown improvements in baroreflex sensitivity, oxygen saturation, and exercise tolerance — sometimes after a single session, with further gains when practice is daily over weeks.

That evidence motivates a low-friction daily habit. It does not mean breathing replaces guideline-directed medical therapy, devices, or follow-up. Effects vary; this app cannot predict individual clinical outcomes.

How presets map to the literature

All named presets keep a 10-second cycle → 6 breaths/min. What changes is duration and inhale:exhale balance.

Preset Duration Ratio (in–ex) Intent Literature anchor
morning 10 min 5–5 Equal phases; daily baseline Habit-sized morning bout; acute RSA/baroreflex effects appear within a short paced session
midday 20 min 4–6 Longer exhale; main daytime train Within the common ~15–20 min training-bout band; CHF home device-guided work is often ~15 min × 2/day (this app runs one session per invoke)
evening 15 min 4–6 Sympathetic wind-down Matches common single-session CHF / evening slow-breathing length (e.g. Laborde 15 min)
night 20 min 3–7 Stronger exhale bias before sleep Tsai 2015 pre-sleep 6 cpm, 3–7, ~20 min

Goal-word feel axis (same ratios, duration chosen separately): train → 5–5, calm → 4–6, sleep → 3–7. Custom sessions stay inside the same envelope: each phase 3–10 s, total cycle ≥ 8 s.

Safety physiology (why the app refuses some patterns)

Several popular breathing-app features are excluded on purpose:

Stop immediately if you feel lightheadedness, palpitations, or tingling in the hands or face. Run breathe --safety for the in-app safety screen.

What this app claims — and what it does not

Supports: a consistent, timed practice of slow continuous breathing at ~6 bpm, with presets aligned to published protocol shapes.

Does not: measure heart rate, HRV, SpO₂, or blood pressure; find your personal resonance frequency; provide biofeedback; or claim to reverse heart failure. For true HRV biofeedback you need appropriate sensors and a clinician- or researcher-guided protocol (Lehrer / Vaschillo tradition).

Key references

Back to Breathe CLI

Personal project by Marek Kowalczyk.