Skip to content

heynaavi/breathe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Breathe

a 60-second sound bath for your mind


Your screen fades to black. Ambient audio fills your headphones. For one minute, everything stops.


Install

npm install -g breathe-a-min && breathe-a-min

Or grab the app β†’ macOS .dmg Β· Windows .exe


How it works

Click the menu bar icon. The rest happens on its own.

πŸŒ‘ Fade Screen goes dark. A gong rings. The world disappears.
🎧 Sound A random ambient track plays. Headphones recommended.
🧘 Breathe Close your eyes. One minute. That's it.
🫧 Return "Welcome back." Quick feedback. Fade out.

Press Esc anytime to exit.


Menu bar

Your stats and settings live in the tray popup.

β—‰ Minutes Total time spent breathing
β—‰ Helped Times it actually slowed you down
πŸ”Š Volume Adjust ambient audio level
⌨️ Shortcut Custom global hotkey β€” click to remap

Default shortcut: ⌘ Shift B (mac) · Ctrl Shift B (win)


First launch

A cinematic onboarding plays once β€” logo blooms in, a gong sounds, and the app settles into your menu bar with a gentle "I live here, come take a breath."


Platforms

Platform File
🍎 macOS (Apple Silicon) .dmg
πŸͺŸ Windows (x64) .exe (portable)

Build from source

git clone https://github.com/heynaavi/breathe.git
cd breathe && npm install && npm start

Package: npm run build (macOS) Β· npm run build:win (Windows) Β· npm run build:all (both)

Release: npm run release patch β€” bumps version, builds, pushes to GitHub + npm in one command.


Analytics (Optional)

Breathe collects anonymous session metrics (total sessions, duration, helped count) to improve the experience. This requires a Supabase backend.

To enable analytics for your own build:

  1. Create a Supabase project
  2. Set up an edge function to receive session data (POST /functions/v1/log-session)
  3. Create a .env file in the project root:
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_KEY=your-anon-key

The app works fully without analytics β€” all features remain functional. Session stats are stored locally regardless.


Project structure

breathe/
β”œβ”€β”€ main.js              # Electron main process
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ experience.html  # Fullscreen overlay
β”‚   β”œβ”€β”€ experience.js    # Session logic + animations
β”‚   β”œβ”€β”€ preload.js       # Context bridge
β”‚   β”œβ”€β”€ tray-popup.html  # Menu bar popup + settings
β”‚   └── onboarding.html  # First-launch cinematic
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ audio/           # Ambient tracks (~1 min each)
β”‚   β”œβ”€β”€ gong.mp3         # Onboarding gong
β”‚   └── icons/           # App + tray icons
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ release.js       # One-command release
β”‚   β”œβ”€β”€ postinstall.js   # npm postinstall wrapper
β”‚   └── install-binary.js
└── bin/
    └── breathe.js       # CLI launcher

MIT · made with stillness 🫧