Scheduling an AI Agent to Run Every Morning

Combining a local PC and the cloud to run an AI agent headlessly on a fixed schedule

Headless ExecutionScheduled LaunchSchedulerAutomationClaude Code
6 min read

Introduction

Run an AI research agent automatically every morning — easy to say, but "where and how do you launch it" turns out to be a surprisingly tricky question. Running it in the cloud feels modern, yet I deliberately chose to launch Claude Code headlessly via the local PC's Task Scheduler.

This article explains why a local PC, what headless execution means, and the tricks for running it reliably even when no one is around.

Why a Local PC Instead of the Cloud

The Real Story on Cost and Authentication

"Automation equals cloud" is a strong assumption, but once you actually build it, a local PC is often the more sensible choice.

BEFORE
Running in the cloud

You pay for an always-on server and must entrust each data source's credentials to the cloud. Token management and refresh flows for GA4 and Shopify are all on you to build.

AFTER
Running on a local PC

Log in once on your everyday PC and each service's authentication stays live and usable. Zero extra server cost. Since it runs just a few minutes a day, the PC only needs to be powered on.

The agent runs only a few minutes each morning. Renting an always-on cloud server for that was excessive, both in cost and in operational overhead.

Access to At-Hand Data Was the Deciding Factor

The other deciding factor was direct access to data that lives at hand.

Store sales CSVs are downloaded and managed by staff in a local folder. To read those from a cloud agent, you'd have to build a separate path to upload them somewhere. Run it on the local PC and the agent reads that folder directly. Authenticated browser sessions and local config files can be used as-is, too. "Using what's already at hand, as-is" turned out to be a bigger advantage than expected.

Accepting the Trade-offs of Local Launch

Local launch has weaknesses, of course. It won't run if the PC is off, and it depends on the staff member's environment.

This agent is auxiliary work that "isn't fatal if it doesn't run," so accepting the trade-offs of local launch struck just the right balance.

How Headless Execution Works

What Headless Mode Means

Headless mode is a way of running where a human doesn't operate a dialogue screen; a single command drives the whole thing from start to finish. Launch Claude Code with a prompt handed to it in advance, and the agent proceeds through the instructions and exits automatically when done.

In interactive mode it waits for human input — "what next?" In headless mode it doesn't wait. That's exactly why the agent can complete its investigation autonomously in the early morning while people are still asleep.

Scheduled Launch with Task Scheduler

For the launch trigger, I use Windows Task Scheduler. Register the setting "run this command at this time every morning" once, and the OS launches it automatically from then on.

Setting Up a Scheduled Launch
Prepare a launch script

Create a script that starts Claude Code with the prompt and options specified

Register in Task Scheduler

Set the daily run time and the script path

Configure logging

Save results and errors to a file so you can trace them later

Automatic execution

From then on, the agent launches and completes unattended every morning

No special infrastructure is needed. Unattended scheduled execution is achievable with only the standard features of the PC you already use.

Logs and Preparing for Failure

Since it runs unattended, being able to confirm afterward that "it actually worked" matters.

The agent's execution results are logged whether they succeed or fail. A data source's temporary hiccup can halt an investigation midway, so it's important to accept that some days will have zero proposals. Quietly skipping and retrying the next morning is safer than forcing a retry and emitting a mistaken proposal.

Coordinating with the Cloud

Roles Divided Between Local and Cloud

This system has the local agent and the cloud business hub coordinate through an API.

Local and Cloud Coordination
Local PC

Task Scheduler + Claude Code (investigation and proposal generation)

Sends proposals via HTTPS API
Business Hub (Next.js / cloud)

Storing proposals, admin screen, approval flow, Slack notifications

The agent handles "investigate and submit proposals," while the storing, display, approval, and notification beyond that are the cloud business hub's job. The local side focuses on investigation, and the parts needing constant access live in the cloud. This division takes the best of both.

Handling Credentials

When registering proposals to the API, the agent authenticates with a dedicated key issued to it. Each data source's credentials stay inside the local PC and are never sent to the cloud. Process at-hand data at hand, and pass only the results to the cloud — I like how simple this data flow is, from a security standpoint too.

Summary

We covered the mechanism for launching an AI agent on a schedule every morning.

  1. Why we chose local PC launch — sensible for cost, authentication, and access to at-hand data
  2. Headless execution — unattended scheduled runs with Task Scheduler plus Claude Code
  3. Division of roles with the cloud — local investigates; the cloud stores, approves, and notifies

What the agent actually investigates and how is covered in "Designing Research Prompts Across Multiple Data Sources," and how humans handle the proposals in "Human-in-the-Loop: Proposal → Approval → Execution." For the big picture, see the hub article "A Daily AI Research Agent."