Dry breath-hold training · Free

Your breath-hold coach,
on your phone.

No watch. No account. Just start. inDepth Apnea Sync runs your training right on your phone: CO2 and O2 tables, static holds and more, every one scaled from your own personal best. Voice and haptic cues call each phase, so you can keep your eyes closed the whole way through.

The Train screen on the phone app, showing today's session, your personal best and this week's plan

Coaching

Want coaching?

You don’t have to plan your own training. Turn coaching on and the app builds a suggested dry plan around your personal best, then keeps it up to date as you train. Prefer to pick your own sessions from the library instead? That works too, any time.

The coaching offer card asking Want coaching? with Yes and No thanks buttons
The Coaching settings screen with training phase set to Base and sessions per week set to three

"Want coaching?"

The first time you open Train, you're asked once. Say yes and you get a suggested dry plan you can adjust any time from Settings.

A Today card, not a to-do list

The home screen opens on the session your plan says is next: the exercise, its shape and an Open button. Open takes you to the safety line first, never straight into a hold.

A week you can see at a glance

A seven-day tape shows what's scheduled and what's behind you. The Plan row underneath sets your training phase (Base, Specific or Peaking), sessions per week and cross-training notes for the rest of your week.

The session runner mid-hold, showing the phase ribbon, a countdown dial and the Mark first contraction, Skip this one and Stop controls

Guided sessions

Close your eyes. We run the clock.

Every hold, breathe-up and rest runs on its own timer, with a ribbon across the top showing the whole session and a dial for the phase you’re on right now. Voice and haptic cues call out every change, so you never have to open your eyes to know what’s next.

Voice and haptic cues

The app speaks each phase change out loud and buzzes the phone at countdowns, hold start and end, and session end. Turn either off in Settings and the visual timer still runs.

Mark first contraction

One tap records when the urge to breathe arrives, without stopping the hold. Empty Statics is the one exception: for that exercise the tap ends the hold, and the button says so.

Skip this one, or stop with a reason

Not feeling a rep? Skip it, quietly, and it just won't count toward your next level. Feeling light-headed or panicky is different: tap it and the whole session ends there and can't become a personal best.

Exercise library

Tables built from your personal best.

Thirteen exercises across eight training areas, each with its own written guidance: what it trains, how to do it, the one rule that matters and how you progress. Do one Max Static (or enter a number you already know) and every table after that scales from it, so the holds fit you and nobody else.

Baseline

Max Static

General

Basic Reps, Custom

CO2 tolerance

Classic CO2 Table, 1-Breath Table

O2 tolerance

O2 Table, Empty Statics

Urge to breathe

Contraction Time

Dry-specific

The 3-Hold, The 3-Hold (Advanced), Apnea Walks

Chest flexibility

Lung Vacuums

Equalization

Leaky Nose-Clip

Most of the library is adapted from Nathan Vinski’s Freedive Fitness Handbook (2021), trainfreediving.com, put into our own words with our own progressions. Max Static is a baseline, the O2 Table is a convention the handbook doesn’t itself endorse, and Custom is whatever you want it to be.

The exercise library grouped by training area, each row showing its phase ribbon, hold count and level

Your progress

Find what’s holding you back.

Your bottleneck, with the evidence behind it, and a session summary that lays every hold out against what the plan asked for.

The Your bottleneck screen naming CO2 tolerance as the limiter, with the session evidence behind the verdict
A session summary for The 3-Hold, with total time, hold count, heart rate and a card for each effort against the prescribed time

Find what’s holding you back

The app reads your recent sessions for three trainable bottlenecks, CO2 tolerance, O2 tolerance and urge to breathe, each backed by evidence from your own holds, not a guess. Once it has a verdict, that bottleneck’s accessory work moves to the front of your rotation.

See every hold against the plan

Every session summary lays your efforts out side by side on one time scale, with a bar for what the table asked for, when your first contraction landed, and your heart rate where the watch recorded one.

Priority Safety

Breath-hold training carries real risk. Train like it.

Sit or lie down

Never stand, and never train in or near water. Have someone nearby. Every exercise screen shows this line before you start, and it never folds away. Apnea Walks is the one exception: you walk on the same breath, so pick a flat, clear route away from water and have someone walk with you.

Two exercises need your OK first

Empty Statics and Lung Vacuums hold at residual volume, after a full exhale, which brings on hypoxic signs faster and with less warning. The app won’t let you run either until you’ve acknowledged the risk once, and both call for direct supervision.

Light-headed or panic ends the session

Tap either one and the session stops right there. It can’t advance a level and it can’t become a personal best, whatever that exercise’s own rule would otherwise award. The Contractions stop is different: it ends just that hold, and the session carries on.

A training aid, not a life-support device. Train sitting or lying down, never alone, and stop the moment something feels wrong.

Optional add-on

Got a Garmin? It’s optional.

None of this needs a watch. If you already have a Garmin Fenix or Descent, three free apps put your training on your wrist too, and once you have a dry personal best, your coached week syncs straight to a paired Dry watch: today’s exercise by name, its level and what it’s about to ask of you.

Free

No watch. No account. Just start.

inDepth Apnea Sync is free on both stores. Download it, do one Max Static, and your first table is already scaled to you.