Exercise reminder overlay for Claude Code thinking time
Project description
vibe-wellness
Exercise reminder overlay for macOS. Pops up during Claude Code sessions to remind you to move.
What it does
A floating overlay window appears every 15 minutes when you're using Claude Code:
- 3-second countdown with exercise name
- Animated stick figure GIF showing the exercise
- Auto-dismisses after 30 seconds (or click to dismiss)
Default exercises (desk-friendly):
- Kegels / 提肛
- Drink Water / 喝水
- Squats / 深蹲
- Wall Push-ups / 靠墙俯卧撑
- Neck Rolls / 颈椎运动
Install
Requires uv.
uvx vibe-wellness
The interactive installer will:
- Ask your preferred language, reminder interval, and exercises
- Install
vibe-wellnessas a tool viauv tool install - Add a
UserPromptSubmithook to~/.claude/settings.json
Configuration
Edit ~/.config/vibe-wellness/config.json:
{
"lang": "zh",
"interval": 900
}
| Key | Default | Description |
|---|---|---|
lang |
"auto" |
Language: "en", "zh", or "auto" (detect system) |
interval |
900 |
Seconds between reminders |
duration |
30 |
Overlay display time in seconds |
opacity |
0.92 |
Window opacity (0.0 - 1.0) |
exercises |
(built-in) | Custom exercise list (see below) |
Custom exercises
Add exercises in your config. They merge with defaults by key:
{
"exercises": [
{ "key": "stretching", "name": { "en": "Stretch", "zh": "拉伸" } }
]
}
Custom GIFs
Drop a {key}.gif in ~/.config/vibe-wellness/gifs/ to use your own animation for any exercise.
Uninstall
Remove the vibe-wellness hook entry from ~/.claude/settings.json, then:
uv tool uninstall vibe-wellness
rm -rf ~/.config/vibe-wellness
Project structure
vibe_wellness/
cli.py # Entry point: install / --show / --overlay
installer.py # Interactive installer with TUI
show.py # Single-instance guard + interval check
ui.py # Overlay window (tkinter)
config.py # Config loading, i18n, language detection
config.json # Default config + exercises
gifs/ # Bundled exercise GIFs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vibe_wellness-0.2.3.tar.gz.
File metadata
- Download URL: vibe_wellness-0.2.3.tar.gz
- Upload date:
- Size: 178.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e3d7e399c33c5700c8b31604d5042f53aa1d66b79a0dcb0c9f2c3b319064ddb
|
|
| MD5 |
036d3a3fc7ef49b34aa5883dbda5ce76
|
|
| BLAKE2b-256 |
0206fc446fbe30444803022e17bc3c62ad269b1996f65f58b962bfb1be5c5d20
|
File details
Details for the file vibe_wellness-0.2.3-py3-none-any.whl.
File metadata
- Download URL: vibe_wellness-0.2.3-py3-none-any.whl
- Upload date:
- Size: 182.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3b39226f0e092e280d3da2a190ad4aa51dc976f1c41621f96e369d79c75e186
|
|
| MD5 |
fa1e7b7323c9500976f17d907c9b0f6b
|
|
| BLAKE2b-256 |
c738107b579bed1dc5093cd5b1963b176501abbeceb17c3adc934b91efedda21
|