AFVN · automated frequency GitHub ↗

Goooood morning, Claudeee!

Your Claude Pro/Max 5-hour window starts at the first message — so this little robot sends it while you're still asleep. Your computer stays off. Your limits reset sooner.

The 5-hour clock only starts when you do

Claude Max gives you a generous usage window that resets every five hours. The catch: the timer starts at your first message, not at dawn.

Sit down at 10:00, hit your limit at noon — and now you're staring at the wall until 15:00. Five full hours, counted from when you showed up. That's the bug. This is the fix.

One morning, on air

A GitHub Actions cron checks in every few minutes — in the cloud, so your machine sleeps as late as you do. The schedule below is what actually happens.

08:00

The robot grabs the mic

The previous window has expired, so the automation sends Claude a one-line "gooodmorning claudeee!!!" on the cheapest model. The 5-hour clock starts ticking — while you're still in bed.

10:00

You sit down to work

The window has already been running for two hours. You spend the morning burning tokens like a champ.

12:00

You hit the limit

It happens to the best of us. But the clock started at 08:00, not 10:00 — so the reset lands at 13:00, not 15:00.

13:00

Back on air

Fresh window, fresh tokens. You waited one hour instead of three. The cycle repeats itself, dynamically, all day long.

Two hours of waiting, gone. Every single day.

Loud on the surface, boring underneath

It's ~190 lines of dependency-free Python on a GitHub Actions cron. The boring parts are the point:

On air in five minutes

You need a Claude Pro or Max subscription and a GitHub account. That's it.

Fork the repo

Your fork carries the workflow. GitHub runs it for you, free, forever.

gh repo fork marcozambrella/goodmorning-claude --clone

Mint a token

On the machine where you're already logged into Claude Code. The token lives for a year.

claude setup-token   # copy the printed token

Set the secret & go

Drop the token into your fork's Actions secrets. The cron takes over from there.

gh secret set CLAUDE_CODE_OAUTH_TOKEN --repo <you>/goodmorning-claude

Wake Claude up before you do

Free, open source, and slightly ridiculous — like all the best automations.

Star it on GitHub