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 |