Skip to content

Automations in lpm

Schedule Claude Code and Codex to run on their own.

Give an agent a prompt and a schedule: every night, on weekdays, or every few hours. lpm runs it in your project, a fresh copy, or a Git worktree, and keeps every answer ready to read and reply to.

  • Claude Code
  • Codex
  • Gemini CLI
  • OpenCode
The Automations list in lpm: every job across your projects, with new results on top, what's running now, and when each job runs next.
How it works

Set it up once. Check in when it's done.

Automations live in the desktop app, next to the projects they run in.

  1. 01

    Write the job

    Name it, then write a prompt, a shell command, or pick one of the project's actions. For a prompt, choose the agent, model, effort and access.

  2. 02

    Pick when it runs

    Every day, on certain days, on an interval, or only when you start it. The editor spells out the schedule in plain English as you go.

  3. 03

    It runs on its own

    When the job is due, lpm runs your optional check for work, makes a fresh copy or worktree if you asked for one, runs the job, then checks the result if you told it how.

  4. 04

    Read and reply

    New results wait in Automations with an unread badge. Open a run to see the full answer, and reply to an AI job to keep the conversation going.

Build a job

Prompt an agent, run a command, or press a button

Each job does one thing on its schedule. You set it up in one form, and the same form edits it later.

  • AI prompt

    Claude Code, Codex, Gemini CLI or OpenCode. For Claude Code and Codex, also pick the model and reasoning effort. Set access to Full or Read only.

  • Command

    Any shell command, run in the project folder: refresh fixtures, rebuild a cache, run a report.

  • Action

    One of the project's saved actions, the same buttons you click in lpm, now on a timer.

Where it runs

Runs in:
One project, several at once, or none. A job with no project runs from your home folder.
Works on:
The project itself, a fresh copy of it, or a new Git worktree. Pick a copy or a worktree and the folder you work in stays untouched.
The job editor: a nightly Claude Code run that works in a fresh copy of the project.
Schedules

Nightly, on weekdays, or every few hours

No cron syntax to remember. Pick a rhythm and the editor spells out in plain English when the job will run.

  • Every day

    Every day at 02:00

    The nightly run. Add more runs a day inside a time window if you need them.

  • On certain days

    Mondays and Thursdays at 18:00

    Pick the weekdays, or let lpm use only a few of them at random each week.

  • On an interval

    Every 4โ€“8 hours

    A fixed gap, or a random one inside a range, in minutes, hours or days.

  • Manually

    Runs only when you start it

    Keep a ready-made job for when you need it, and run it with one click.

A job set for a fixed time starts within a few minutes of it, so jobs set for the same hour don't all begin at once. Or give it a window and lpm picks a different time inside it each day. Intervals can be as short as 5 minutes.

The Week view: when every job fires, colored by project. Past slots show how the run went; random times show as expected slots.
Ideas to steal

Jobs worth putting on a schedule

Real setups you can build in the editor today. Copy a prompt, pick a schedule, and read the result with your coffee.

  • Nightly dependency update

    AI prompt

    Update outdated dependencies to their latest compatible versions. Fix anything the upgrade breaks, run the tests, and summarize what changed.

    Agent
    Claude Code ยท Full access
    Works on
    A fresh copy
    When
    Every day at 02:00
    Check after
    npm test
  • Morning test triage

    AI prompt

    Install dependencies and run the test suite. For each failure, find the cause and fix it if the fix is small. List anything you left alone and why.

    Agent
    Claude Code ยท Full access
    Works on
    A Git worktree
    When
    Weekdays at 08:30
    Check after
    npm test
  • Upstream watch

    AI prompt

    Summarize the new upstream commits and flag anything that touches the API or database migrations.

    Agent
    Codex ยท Read only
    Works on
    The project itself
    When
    Every 2 hours
    Only if
    git fetch && git log HEAD..@{u} --oneline | grep .
  • Weekly TODO sweep

    AI prompt

    List every TODO and FIXME, group them by area, and flag the ones that look risky. Don't change any files.

    Agent
    Claude Code ยท Read only
    Runs in
    3 projects
    When
    Fridays at 16:00
  • Morning brief

    AI prompt

    Read the notes in ~/Notes/inbox and turn them into a short, prioritized plan for today.

    Agent
    Claude Code ยท Read only
    Runs in
    No project (home folder)
    When
    Every day between 07:30 and 08:30
  • Flaky test hunt

    Command

    npx playwright test --repeat-each=3

    Runs in
    web
    When
    Every 4โ€“8 hours
    Result
    Output and outcome in the job's history
Guardrails

Run only when there's work. Check the work after.

Two optional commands keep scheduled agents from burning tokens on nothing and from calling a broken build done.

A check before the run

Give the job a cheap command, such as โ€œare there new upstream commits?โ€. The job runs only when it succeeds. Otherwise the run is logged as Nothing to do and no notification goes out. Press Test to see straight away whether the job would run.

A check after the run

Add your test suite as a follow-up to a prompt or command job. It runs where the job ran, and the run is marked checks passed or checks failed in its history and in the notification, so โ€œdoneโ€ means the tests agree.

Results

Read the answer. Reply to keep it going.

Every run leaves a record. Open one to read the agent's full answer, then send a follow-up like you would in a chat.

A job's page: every run with its outcome, duration and cost.
A run opened as a conversation, with a reply already answered.
  • Runs are listed newest first, with outcome, duration and, for Claude Code, what the run cost.
  • Replies run in the same folder or copy the run used. Claude Code picks up the same session; other agents get the conversation so far.
  • Keep the same agent, model and effort for a reply, or switch to a different one.
  • While a job runs, its page streams live output with an elapsed timer and a Stop button.
Stay in the loop

Hear back on your Mac, your iPhone, or in a terminal

You don't have to keep the Automations screen open to know how the night went.

On your Mac

The sidebar counts unread results until you open them. When lpm isn't in front, macOS banners follow each run, and a finished run's banner carries the first line of the answer, what a Claude Code run cost and how the check went.

On your iPhone

The free lpm link app lists your automations with their unread messages. Run or stop one, pause its schedule, create or edit a job, open any run's transcript and answer it. Push notifications can tell you when a job starts, finishes, or fails or times out, and you pick which ones you get.

More about lpm link

From the lpm CLI

List, run, stop, pause and resume automations, read their history or live output, and reply to an AI job, from any terminal or from another agent. Add --json for output scripts can parse. The desktop app needs to be running, and jobs are created in the app or on the phone.

lpm automations
# Every automation across your projects
lpm automations list --all

# Run one now, then read how it went (-p picks another project)
lpm automations run nightly-dependency-update
lpm automations history nightly-dependency-update

# Pause the schedule, or keep the conversation going
lpm automations pause nightly-dependency-update
lpm automations reply nightly-dependency-update "Try eslint 10 too"

Know the rules before you walk away.

Automations run inside the desktop app on your Mac, using the agent CLIs you already have installed and signed in. That comes with a few limits worth knowing up front.

Your Mac has to be awake
Jobs run while lpm is open and the Mac is awake. A run missed while it slept or lpm was closed runs once when it's back; missed runs aren't replayed one by one.
Full access means no approval prompts
AI prompts default to Full access, which starts the agent without asking before it edits files or runs commands. Use Read only for jobs that should only report. OpenCode always runs with full access.
One run of a job at a time
If a job is due while its last run is still going, the new run is skipped, not queued. A run that goes past 60 minutes is stopped.
Copies wait for your review
A job that works in a fresh copy or worktree won't start the next run until you've looked at the last copy and removed it.
A few at once, the rest wait
Up to three automations run at the same time by default. Others due at that moment wait for a free slot.
Local projects only
Automations aren't available for SSH projects. Claude Code runs use your default Claude login, not an account pinned to the project.
FAQ

Scheduling Claude Code and Codex

How the scheduler works, what it needs, and what it won't do.

  • How do I schedule Claude Code tasks on a Mac?

    Open Automations in lpm and create a job. Write the prompt, pick Claude Code and a model, and choose when it runs: every day, on certain days, on an interval, or only when you start it. Each run happens in the background with no terminal tab to keep open, and the answer lands in the job's history, ready to read and reply to. lpm is free and open source.

  • Is this a cron job for Claude Code? Do I need crontab?

    No crontab and no cron syntax. lpm has its own scheduler inside the app, and you set the schedule in a form rather than a cron expression. A job set for a fixed time starts within a few minutes of it, so jobs set for the same hour don't all begin at once. Intervals can be as short as 5 minutes.

  • Will a job run overnight or while my Mac is asleep?

    Jobs run while lpm is open and your Mac is awake, so an overnight job needs both. If a run was due while the Mac slept or lpm was closed, it runs once when they're back; missed runs aren't replayed one by one. If a job is still running when it's due again, the new run is skipped.

  • Will a scheduled agent change the folder I'm working in?

    Only if you let it. Set Works on to the project itself, a fresh copy of it, or a new Git worktree. A fresh copy is a full copy of the project folder, including files like .env and installed dependencies; a worktree is a linked Git checkout without them. Each copy shows up as its own project, so you can open it, review the changes and remove it, and the next run waits until you have.

  • What's the difference between Full access and Read only?

    Full access starts the agent without approval prompts: Claude Code with --dangerously-skip-permissions, Codex with --dangerously-bypass-approvals-and-sandbox, Gemini CLI with --yolo. The agent can then edit files and run commands unattended. It's the default for AI prompt jobs. Read only leaves those flags off, for jobs that should look and report. OpenCode always runs with full access.

  • Which agents and models can I schedule?

    Claude Code, Codex, Gemini CLI and OpenCode, or whichever agent lpm uses by default. For Claude Code and Codex you can also pick the model and a reasoning effort level. A job can run a shell command or one of the project's saved actions instead of a prompt. Run cost is shown for Claude Code runs.

  • Can I get notified on my iPhone when a job finishes?

    Yes, with the free lpm link app. A paired iPhone can get a push notification when a job starts, finishes, or fails or times out, and you choose which ones. Pushes arrive while the app isn't open on the phone, and jobs with no project aren't pushed. On the Mac, lpm raises a macOS notification for the same moments whenever it isn't the app in front.

  • Can a script or another agent trigger an automation?

    Yes. The lpm CLI can list automations, run or stop one, pause or resume it, print its history or live output, and reply to an AI job's conversation, with --json for output scripts can parse. The desktop app must be running, and the CLI doesn't create or edit jobs.

Put your agents on a schedule.

Download lpm for macOS, open Automations, and give Claude Code or Codex its first night shift. Free and open source.