Skip to content

leovoon/slower

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slower

Slower demo

Slower is a macOS reminder CLI written in V. It can run in the foreground, start a detached background worker, or install a launchd agent for login-managed reminders.

Requirements

  • macOS
  • V

Slower uses system commands for platform integration:

  • osascript for notifications
  • say for speech
  • launchctl for launchd management

If osascript or say is unavailable, Slower skips that capability.

Homebrew

New install:

brew install leovoon/tap/slower

Update an existing install:

brew update
brew upgrade leovoon/tap/slower

Build

make build

If v is not on your PATH, pass it explicitly:

make V=/path/to/v build

Or directly:

v -o slower ./cmd/slower/main.v

Test

make test

Or directly:

v test .

Usage

Quick Start

./slower start --interval 45 --message "Stand up and stretch"
./slower status
./slower stop

Commands

./slower run
./slower start
./slower stop
./slower status
./slower list
./slower voices
./slower launchd install
./slower launchd uninstall

Shared Flags

  • --session, -n - session name (default: default)
  • --interval, -i - interval in minutes (default: 60)
  • --quiet, -q - quiet hours in HH:MM-HH:MM
  • --message, -m - notification message
  • --say-message - spoken message only
  • --sound, -s - notification sound name, or none
  • --voice, -v - voice name for say, or none
  • --log - enable logging to ~/.slower/logs/<session>.log
  • --log /path/to/file.log - compatibility form for a custom log path
  • --log --log-path /path/to/file.log - explicit custom log path form

Detached Sessions

./slower start --session work --interval 45 --quiet 22:00-08:00 --log
./slower status --session work
./slower stop --session work

Use --all with stop or status to act on every known session.

Foreground Mode

./slower run --session focus --interval 25 --sound none --voice none

launchd

Install a login-managed agent:

./slower launchd install --session work --interval 45 --message "Stretch"

Preview the generated plist without installing it:

./slower launchd install --dry-run --session work --interval 45

Remove the agent:

./slower launchd uninstall --session work
./slower launchd uninstall --session work --purge

stop unloads a running launchd job but keeps the plist on disk. launchd uninstall removes the plist.

Compatibility Aliases

The V rewrite keeps a few old shell-era aliases so existing usage does not break immediately:

  • sessions maps to list
  • top-level uninstall maps to launchd uninstall
  • --name maps to --session
  • --time and -t map to --interval

State Layout

Slower stores runtime state under ~/.slower/:

  • sessions/<session>.json - session state
  • locks/<session>.lock - single-instance lock
  • logs/<session>.log - session event log

LaunchAgents are written to:

  • ~/Library/LaunchAgents/com.leovoon.slower[.<session>].plist

Development

Format:

make fmt

Release build:

make release

Credits

This project is inspired by a walker reminder by Mario Zechner (@badlogicgames, https://x.com/badlogicgames).

About

Reminder slows you down

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages