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
Set it up once. Check in when it's done.
Automations live in the desktop app, next to the projects they run in.
- 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.
- 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.
- 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.
- 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.
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.
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.
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 promptUpdate 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 promptInstall 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 promptSummarize 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 promptList 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 promptRead 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
Commandnpx playwright test --repeat-each=3
- Runs in
- web
- When
- Every 4โ8 hours
- Result
- Output and outcome in the job's history
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.
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.
- 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.
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 linkFrom 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.
# 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.
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.
Keep reading
Run Claude Code in parallel
When one scheduled run is not enough, fan the same prompt out across project copies and compare the results.
Git worktrees for AI agents
When to give an agent a linked worktree and when a full copy of the project works better.
lpm link for iPhone
Check on agents and automations, get push notifications, and reply from your phone.
Claude Code & Codex token usage
See where the tokens went, by project, model and session, on your Mac.
Connect agents to lpm
Give Claude Code and Codex the lpm CLI and skills to start services and read logs.
Everything lpm does
Projects, services, terminals, agents, review and automations, all in one Mac app.
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.