Owlet Smart Sock 3 vitals on the Omarchy bar.
Heart rate and oxygen on the bar. A bento of vitals in the popup. Desktop notifications when Owlet alert flags rise.
Not affiliated with Owlet Baby Care. Uses the unofficial pyowletapi cloud client. This is not a substitute for the official Owlet app or its alarms.
omarchy plugin add https://github.com/ravivasavan/Omalet.git --enable --yesThat clones the plugin, enables the bar widget, and the first refresh
creates a local Python venv with pyowletapi. Open the panel from the
bar pill, enter your Owlet email and password, and the password is stored
in the system keyring (secret-tool), not in shell.json.
Refresh interval is refreshSeconds on the bar entry (default 10).
omarchy plugin remove ravivasavan.owlet --yesThat removes the plugin checkout and bar entry. It does not touch Hyprland or other Omarchy config. Optional leftover cleanup:
rm -rf ~/.local/share/omarchy/owlet
rm -f ~/.local/state/omarchy/owlet.json \
~/.local/state/omarchy/owlet-tokens.json \
~/.local/state/omarchy/owlet-auth.json \
~/.local/state/omarchy/owlet-alerts.json
secret-tool clear service owlet| Bar | Heart rate and oxygen while the sock is monitoring |
| Vitals panel | Beats per minute, blood oxygen, battery level, skin temperature, movement, sleep type |
| Charging | The bento collapses to a single Charging... tile (dots animate one by one) |
| Alerts | The matching tile keeps the bento and softly pulses; a notification fires on rising flags |
Click the bar pill to open the panel. Middle-click refreshes. r refreshes
while the panel is focused.
Already on a typical Omarchy install:
- Omarchy 4 / Omarchy shell (Quickshell)
python(3.11+)secret-tool(libsecret)- Network access to Owlet's cloud API
First run installs pyowletapi==2025.4.10 into
~/.local/share/omarchy/owlet/venv. No sudo. No writes outside the plugin
directory, that venv, ~/.local/state/omarchy/owlet*, and the keyring
item service=owlet.
- Password lives in the system keyring
- Session tokens live in
~/.local/state/omarchy/owlet-tokens.json(mode 0600) - Email/region live in
~/.local/state/omarchy/owlet-auth.json(mode 0600) - Nothing is uploaded except to Owlet's own API, through pyowletapi
Tokyo Night on the Omarchy Quattro wallpaper. 16:9.
| Tray | Vitals |
|---|---|
![]() |
![]() |
| Charging | Alert |
|---|---|
![]() |
![]() |
manifest.json plugin declaration (kind: bar-widget)
BarWidget.qml bar pill
Panel.qml popup, login, charging tile, alert flash
StatBox.qml one vitals tile
Model.js state parsing and labels
fetch.py unofficial Owlet poller
fetch.sh venv bootstrap + poll
login.sh keyring store + first poll
setup.sh create venv, pin pyowletapi
test/run.js node test/run.js
omarchy plugin validate ~/.config/omarchy/plugins/ravivasavan.owlet
node test/run.jsSaved edits under ~/.config/omarchy/plugins/ reload automatically.
Force a rescan with omarchy-shell shell rescanPlugins.
MIT. Owlet is a trademark of Owlet Baby Care; this plugin is unofficial and is not a medical device.



