The pomeranian that makes you take breaks.
Docs: https://velofy.co/pawse/
Every so often (you decide when), a fluffy pomeranian takes over your screen, tells you to take a walk and drink some water, counts down 30 seconds, asks if you're happy, and leaves. That's it. That's the app.
The dog is real, actual pomeranian footage (CC-BY, see ASSETS.md) with the background matted out, played as transparent video. Prefer the built-in procedural 3D dog instead? One toggle in Settings. Want your own dog on screen? See Put your own dog in Pawse.
- 🪶 Lightweight, Tauri app: ~10–15 MB installer, ~40 MB RAM, near-zero CPU while idle
- 🔒 Super safe, no network access at all (there is no HTTP capability compiled in), no accounts, no analytics. Settings and mood logs live only on your device.
- 🎨 Highly customizable, interval or fixed daily times, break length, the messages the dog says, sound, coat color, dog name, hard mode, launch at login
- 🖥️ Cross-platform, macOS (
.dmg) and Windows (.exe), takes over the primary display - 🧡 Open source, MIT
- At your chosen time, Biscuit (rename him!) trots onto your primary screen.
- The screen is blocked for 30 s (configurable): "Woof! Time to stretch those legs, take a little walk. 🐾" A countdown ring ticks down while the dog sits, pants, blinks, and wags.
- When the countdown ends, the dog asks: "Are you happy?"
- Yes → happy hops, a spin, floating hearts 💛
- Not really → a sympathetic head-tilt and a paw hug
- The dog leaves, you get back to work. Your answer is stored in a local mood log (visible in Settings, it never leaves your machine).
Emergency escape: hold ESC for 3 seconds to skip a break (in a meeting, on a call…). You can disable this in Settings for hard mode. Pawse deliberately does not fight OS-level force-quit, it's a break reminder, not a jail.
macOS, the easy way (no warnings): Homebrew strips the download quarantine for you, so it just works.
brew tap velofy/tap
brew install --cask pawseOr download directly from Releases:
- macOS (Intel + Apple Silicon):
Pawse_x.y.z_universal.dmg - Windows:
Pawse_x.y.z_x64-setup.exe
The downloads are not signed with a paid developer certificate, so the OS shows a warning on first launch. This is expected, not a virus.
This is macOS Gatekeeper reacting to the download quarantine on an unsigned app, not actual damage. Any one of these fixes it:
- Best: install via Homebrew (above): it never happens.
- Or, after dragging Pawse to Applications, run once in Terminal:
then open it normally.
xattr -cr /Applications/Pawse.app
- Or: System Settings → Privacy & Security → scroll down → Open Anyway.
Click More info → Run anyway.
Pawse lives in your menu bar / system tray: take a break now, pause for an hour, open the Control Panel, or quit.
Full docs live at https://velofy.co/pawse/:
Open Settings from the tray icon:
- Break every (default 45 min): interval between breaks
- Fixed times (default none): e.g.
10:30,15:00; when set, these replace the interval - Break length (default 30 s): the countdown
- Messages (3 built-ins): one per line; the dog rotates through them
- Emergency escape (on): hold ESC to skip; turn off for hard mode
- Sound (on): soft synthesized chime and woof, no audio files
- Dog name / coat (Biscuit / golden): coat colors apply to the 3D dog
- Dog style (Auto): real video when clips exist, or the procedural 3D dog
- Launch at login (off): start Pawse with your computer
Settings are plain JSON at:
- macOS:
~/Library/Application Support/com.anishfyi.pawse/settings.json - Windows:
%APPDATA%\com.anishfyi.pawse\settings.json
Prereqs: Rust, Node 20+, and the Tauri prerequisites for your OS.
npm install
npm run dev # run in dev mode
npm run build # produce the installer for your OSReleases are built by CI (.github/workflows/release.yml): push a v* tag and it
produces the macOS universal DMG and the Windows NSIS installer as a draft release.
The real-dog engine plays three packed-alpha clips: idle.mp4 (loops during the
break), happy.mp4 (you said yes), sad.mp4 (you said not really). Pawse looks for
them first in your config dir, so you can replace the bundled pomeranian with your dog:
- Film your dog against a plainish background (1080p; a calm sitting take, an excited take, a head-tilt take).
- Run the documented pipeline in
scripts/pack-clips.sh(ffmpeg + rembg, the exact commands are in the script header). - Drop the three files into:
- macOS:
~/Library/Application Support/com.anishfyi.pawse/dogclips/ - Windows:
%APPDATA%\com.anishfyi.pawse\dogclips\
- macOS:
Packed-alpha video (color left, alpha matte right, recomposited by a WebGL shader) is used because it is the only transparent-video approach that behaves identically in both the macOS and Windows webviews.
The fallback/alternative dog is built procedurally from three.js primitives
(ui/dog.js), spheres, capsules, and a chained-segment tail. No model files, and
every part of the dog (coat color, wag speed, ear droop, blink timing) is one line
of code away from being yours.
Issues and pull requests are welcome. Run cargo test --manifest-path src-tauri/Cargo.toml before sending a change. Developer notes are in docs/superpowers/.
MIT, see LICENSE.