A tiny (250KB), "Zero-Dependency" breathing exercise overlay for Windows.
❤️ For Wellbeing & Nothing else:
This project is a personal tool built for mental health and focus. It is completely free, open-source, and not intended for sale or commercial use. I built it to help myself, and I'm sharing it to help you.
The information and guidance provided by this breathing app are intended for general informational purposes only and should not be construed as medical advice, diagnosis, or treatment. The creator of this app is not a medical professional, and the app is not a substitute for professional medical advice or consultation with a qualified healthcare provider. Always seek the advice of a physician or other qualified healthcare provider with any questions you may have regarding a medical condition or health objectives. Do not disregard or delay seeking professional medical advice because of the information or suggestions provided by this app. In the event of a medical emergency, call your doctor or dial your local emergency number immediately. Use of this app is at your own risk, and the creator assumes no responsibility for any adverse effects or consequences resulting from its use.
I was searching for a simple overlay app that stays Always-on-Top to help me fix my breathing while using my laptop.
My inspiration was Exhale.
- The original macOS version (built in Swift) is fantastic—it is incredibly small, resource-friendly, and smooth.
- However, the Windows/Linux port was built using Electron.
I realized the file size of the Windows/Linux version was over 600MB and it consumed significant RAM (~100MB) just to render a moving circle.
I wanted the efficiency of the original Swift app, but on Windows.
But I am a web developer. I have zero experience making native Windows apps. So, I vibe coded Breathing using Gemini Deep Research, Gemini 3 Pro, and Antigravity. I tried keeping the app size as low as possible and resource-friendly.
The Result:
- Size: 250KB (~150KB exe and 100KB icons).
- Performance: Uses almost 0% CPU, 5-10% GPU, and <10MB RAM.
- Tech: Native C++ using Windows DirectComposition.
- Click-Through Overlay: The window is "click-through". You can keep working/typing while the breathing guide floats above your work.
- System Tray: Right-click the icon to switch presets (Normal, Focus, Quick) or toggle the border ring.
- Auto-Config: The app automatically generates a
breathing-config.inifile if you don't have one.
This fork adds two native Windows dialog panels to the tray menu, so everyday tweaks no longer require touching files:
- Manage Presets... — Add, Delete, and Set Default presets from a dialog. Presets are still stored in
breathing-config.iniand enumerated dynamically in the tray menu (the active one is checked). - Settings... — Adjust visuals natively:
- Radius sliders with a live on-screen preview of the circle (filled = Min radius, ring = Max radius)
- Native color picker (Windows
ChooseColordialog) — no more typing RGB values - Alpha value and Show Border Ring toggle
- Restore Defaults button (back to the app's built-in defaults)
The native panels replace the old web config generator entirely — changing colors, sizes or presets takes seconds in-app.
Build with build.bat (VS 2022 Build Tools), which outputs BreathingApp.exe.
Also ships AGENTS.md — the owner's distilled knowledge written as a strong prompt so AI agents can build, configure, and extend this project safely (presets, build, pitfalls, conventions).
Senpai 预设可能造成晕厥效果,练习前请先确保有正确穿着贞操裤等专业装备。
The original D3D11 + DirectComposition renderer could silently vanish when the GPU driver resets (TDR — Timeout Detection & Recovery) — a common issue on laptops with flaky iGPU/dGPU drivers. Example: one machine logged 803 GPU reset events (LiveKernelEvent 141/1a8/1b8) in 14 days; every reset killed the DComp visual, the circle disappeared while the process stayed alive, and only right-clicking the tray icon brought it back.
This fork rewrites the renderer as a pure-software GDI+ layered window
(UpdateLayeredWindow): the anti-aliased circle is drawn in software every
frame and composited by DWM. There is no GPU device to lose — a driver
reset can no longer make the overlay disappear, by construction.
- Same features & same
breathing-config.iniformat — fully compatible. - Lighter: ~17MB RAM, ~2% CPU, event-driven timer (no busy-wait loop).
- The old D3D source is kept in the repo for reference (
breathing.cpp).
Build: build.bat (VS 2022) → outputs BreathingApp.exe.
Electron apps bundle Chromium and Node.js. This app is written in Raw C++. It speaks directly to the Windows OS without any middleman.
Most old Windows apps use GDI, which is slow for transparency. This app uses DirectComposition (dcomp.lib).
- Direct2D: Draws the high-quality anti-aliased circle on the GPU.
- DirectComposition: Composites that circle onto your screen. It handles the transparency natively at the hardware level.
Uses QueryPerformanceCounter (Hardware Timer) to calculate Delta Time, ensuring the breathing animation is mathematically perfect regardless of computer speed.
-
Go to the Releases page, download Breathing.exe, and just run it.
-
To Enable Auto-Startup: Right-click the tray icon and select "Run on Startup".
I used Visual Studio Build Tools 2022 LTSC → "Desktop development with C++".
I have only tested it on Windows 11. It will likely work on Windows 10, unsure about 8, and definitely won't work on Windows 7.
- Open Developer Command Prompt for VS 2022.
- Run:
rc resource.rc
cl /std:c++17 /EHsc /O2 Breathing.cpp resource.res user32.lib gdi32.lib shell32.lib d3d11.lib dxgi.lib d2d1.lib dcomp.lib winmm.lib /link /SUBSYSTEM:WINDOWS /OUT:Breathing.exe
This project is "Perfect" for my specific needs. I do not have time to update, maintain, or add new features. I am sharing it as-is.
However, if you have ideas or know C++ better than I do, feel free to send a Pull Request.
Readme generated via AI.

