Skip to content

Usage

goodmorning-claude provides four subcommands for managing and firing the daily ping. All commands require macOS — the CLI refuses to run on any other platform.

install — Install the daily schedule

goodmorning-claude install [--time HH:MM]

Writes a LaunchAgent plist to ~/Library/LaunchAgents/com.waterjuice.goodmorning-claude.plist and loads it with launchctl bootstrap. The schedule fires at the specified wall-clock time every day. Default is 07:05 if --time is omitted.

# Default: 07:05 every morning
goodmorning-claude install

# Custom time
goodmorning-claude install --time 06:30
Option Description
--time, -t Time of day in HH:MM (default: 07:05)

Install time also resolves the absolute path to claude and prepends its directory to the plist's PATH environment variable, so the schedule keeps firing correctly even if claude is only on your shell PATH because of an init script (nvm, asdf, Homebrew path munging, etc.).

uninstall — Remove the daily schedule

goodmorning-claude uninstall

Unloads the LaunchAgent (launchctl bootout) and removes the plist. Safe to run even if nothing is installed.

status — Show the current schedule

goodmorning-claude status

Reports whether the schedule is installed and, if so, what time it is set to.

Installed (launchd) — fires daily at 07:05.

run — Fire the ping now

goodmorning-claude run

Invokes claude -p "hi" directly with a 120-second timeout. Normally called by the scheduler; run it manually to test your setup or to open the window on demand.

When the schedule is installed, run prefers the absolute claude path that was pinned at install time (via the GOODMORNING_CLAUDE_BIN env var the LaunchAgent sets). When run from a normal shell it falls back to a PATH lookup. If claude cannot be found, run fails with a clear error.

Output:

Pinging Claude via /opt/homebrew/bin/claude...
Ping succeeded in 1.8s.

Pass -v to also print the chosen binary, the full argv, and Claude's stdout.

Global Options

Option Description
--verbose, -v Show detailed logs of every action and subprocess call (stderr)
--version Show version and exit
--license Show licence information and exit
--help Show help and exit

-v may appear either before or after the subcommand:

goodmorning-claude -v install --time 07:05
goodmorning-claude install -v --time 07:05

File Locations

Path Purpose
~/Library/LaunchAgents/com.waterjuice.goodmorning-claude.plist LaunchAgent plist
~/Library/Logs/goodmorning-claude.log Ping stdout/stderr