a tiny macos tui to schedule claude code prompts so your sessions can keep running even when you hit limits or go to sleep.
wakeclaude_demo_short.mp4
i hit the 5 hour session rate limit on my claude plan a lot. work would stop mid‑flow, so i wanted a way to auto‑resume right when the limit resets.
now i can schedule a prompt to continue at the reset time, and i can also schedule prompts while i’m sleeping so the work keeps going. one thing i do weekly is run a security review on my codebases just before the weekly rate limit resets (while i’m asleep).
- pick a project, pick a session (or start a new one)
- write the prompt
- choose a model + permission mode
- schedule it (one‑time, daily, weekly)
- wakes your mac only when needed and runs the prompt
- keeps logs + shows a simple run history
- sends a native macos notification on success/error
brew install --cask rittikbasu/wakeclaude/wakeclaudeto update later:
brew update
brew upgrade --cask wakeclaude-
build it:
go build -o wakeclaude ./cmd/wakeclaude
-
run it:
./wakeclaude
wakeclaude uses a long‑lived claude code token so scheduled prompts keep working even after you close the terminal.
generate one in a separate terminal:
claude setup-tokenpaste it into wakeclaude when prompted. it stores the token in your macos keychain (not in files).
- uses launchd (launchdaemons) to run on schedule
- uses pmset schedule wakeorpoweron to wake the mac only when needed
- you’ll be prompted for sudo when creating/editing/deleting schedules
- the job runs as root, then uses
launchctl asuserto runclaudein your user session
important: if you are fully logged out, claude may not be able to access your keychain session. running while asleep with the user still logged in works best.
you’ll see a simple menu:
- schedule a prompt (project → session → prompt → model → permission → time)
- manage scheduled prompts (edit/delete)
- view run logs
controls:
- arrow keys to move,
enterto select - type to search (projects, sessions, schedules, logs)
escto go back,qto quit- prompt entry:
ctrl+dto continue
models:
opussonnethaiku
permission modes:
acceptEdits– auto‑accept file edits + filesystem accessplan– read‑only, no commands or file changesbypassPermissions– skips permission checks (use with care)
data lives here:
~/Library/Application Support/WakeClaude/schedules.json~/Library/Application Support/WakeClaude/logs.jsonl~/Library/Application Support/WakeClaude/logs/*.log
run logs are retained (last 50) and shown in the tui. each run also triggers a native macos notification (via osascript).
--projects-root <path>: override default~/.claude/projects--run <id>: internal (used by launchd)
- claude code sessions live under
~/.claude/projects - root‑level
.jsonlfiles are sessions - project display names are derived from the session
cwdwhen available claudemust be in your PATH at scheduling time (wakeclaude records it)
open a pr if you want — bug fixes, ux polish, or smarter scheduling ideas are welcome.