System-level scheduling
Install LaunchAgent, schtasks, or Linux systemd/crontab schedules with one command. Scheduled wakes use smart 5h+buffer skipping by default.
Local-first AI quota window waker
Schedule tiny wake calls for Claude Code, Codex, and custom provider CLIs so quota windows can start before you sit down to work.
$ qwake doctor
claude: ok (claude)
codex: ok (codex)
$ qwake schedule install codex claude \
--times 06:05,11:10,16:15,21:20
Installed schedule
Logs: ~/.qwake/logs/claude.log Qwake is not a quota bypass tool. It is a small local scheduler that attempts honest wake requests and records the result.
Install LaunchAgent, schtasks, or Linux systemd/crontab schedules with one command. Scheduled wakes use smart 5h+buffer skipping by default.
Use Claude Code, Codex, or any custom CLI, including third-party routes already configured locally.
Check schedule status and logs without opening an agent session. Logs show success, failure, limited, or skipped.
Install globally after npm publish, or build from the repository during development.
npm install -g @sysiphus/qwake
qwake doctor --fix
qwake schedule install codex claude \
--times 06:05,11:10,16:15,21:20 Qwake does not stay resident. It delegates timing to the operating system and uses smart 5h+buffer skipping to avoid redundant provider calls.
Qwake attempts wake requests and records timestamps. It cannot guarantee provider quota refresh if the machine is off, fully asleep, offline, or rejected by the provider.
qwake schedule install codex claude \
--times 06:05,11:10,16:15,21:20
qwake schedule status
qwake schedule doctor
qwake schedule test codex claude
qwake schedule repair codex claude
qwake schedule logs After installing a schedule, status and logs tell you whether launchd loaded it and whether wake calls succeeded.
qwake schedule status
qwake schedule doctor
qwake schedule test codex claude
qwake schedule logs
# healthy log output
[2026-06-01 09:20:00 +08:00] wake agent=claude status=success exitCode=0 limited=false durationMs=1842 utc=2026-06-01T01:20:00.000Z
[2026-06-01 11:10:00 +08:00] wake agent=claude status=skipped exitCode=0 limited=false durationMs=3 utc=2026-06-01T03:10:00.000Z nextWakeAt=2026-06-01T06:25:00.000Z The experimental fingerprint workflow samples short answers from an OpenAI-compatible endpoint, stores the evidence locally, and compares it with a trusted reference profile.
A fingerprint is statistical evidence, not cryptographic proof. Model updates, quantization, provider routing, caching, and hidden reasoning can all cause a legitimate drift.
export RELAY_API_KEY=sk-...
qwake fingerprint collect \
--base-url https://relay.example.com/v1 \
--api-key-env RELAY_API_KEY --model gpt-4o
qwake fingerprint enroll --name gpt-4o-reference \
--from ~/.qwake/fingerprints/runs/<run>.json
qwake fingerprint audit --claim gpt-4o-reference \
--base-url https://relay.example.com/v1 \
--api-key-env RELAY_API_KEY --model gpt-4o Read the practical guide for macOS LaunchAgent, Linux systemd/crontab fallback, and Windows Task Scheduler workflows.
LaunchAgent, systemd/crontab fallback, and Task Scheduler setup paths for Qwake.
The paper behind Qwake's experimental workflow, what it establishes, and the limits of endpoint verification.
A practical, local-first workflow for collecting a reference profile and auditing a relay endpoint.
No. Qwake sends tiny scheduled wake calls through your existing local CLI. It does not bypass, unlock, or hack provider quotas.
No. Qwake calls whatever local command already works. If Claude Code routes to GLM, OpenRouter, Bedrock, Vertex, or another provider, Qwake uses that setup.
wake and probe send tiny live requests and may spend a small amount of provider quota. Scheduled wakes use smart mode by default, so repeated checks inside the configured window are skipped.
A tiny local CLI for honest workflow continuity.