Short answer: First, ask Claude to write the session down as a reusable Markdown prompt or skill. Then pick where it runs. Locally, use /loop or ask Claude to schedule it as a cron task, which only works while Claude Code is open. Remotely, paste the prompt into a Claude cloud scheduled task with /schedule, then check that the MCP tools, skills, and files it relied on actually exist in the cloud. If you want the session's tools, skills, and browser state to come along automatically, fl0w turns a session into a cloud workflow with one /generate command.
The best automations come from sessions you've already done
ChatGPT and Claude both put scheduled tasks front and center. Most menu items hide behind the three dots, but "Routines" or "Scheduled" always gets its own tab. And it's powerful: agents can browse, call APIs through MCP, and run code.
But when I click "new scheduled task," I freeze. What do I put in there? It's a blank canvas.
What I've found is that you don't have to invent automations. You notice them. If you catch yourself typing the same prompt for the third time this week (pull the repo and summarize what changed, search Linear for tickets about X, pick the interesting posts off Hacker News, run this string of bash commands after that kind of code change), that session is your automation. You've already debugged it by hand.
The repetition isn't wasted, either. Doing a task manually a few times teaches you what "right" looks like, the same way someone folding pizza boxes all day eventually works out how to build a box-folding machine. Automate what you understand, on purpose.
So the question isn't "what should I schedule?" It's "how do I take this session and make it run without me?"
Step 1: Ask Claude to turn the session into a Markdown file
Before you schedule anything, capture what worked. At the end of a good session, ask:
Write this session up as a reusable prompt in .claude/commands/changelog.md.
Include the exact steps, tools and commands you used, the inputs that change
each time, and what a good result looks like.
That gives you a custom slash command (/changelog) you can run on demand, or a skill if you put it in .claude/skills/. Read it over. This is the point where you decide what's fixed and what's an input.
Step 2a: For local, use /loop or cron
With the prompt saved, scheduling it locally is one line:
/loop 1d /changelog
Or say it in plain language and Claude creates the cron task:
every Monday at 9am, run /changelog
Limitations
- Claude Code has to be running on your laptop. Session-scoped tasks stop when the terminal closes or the laptop sleeps, and missed runs aren't replayed.
- Recurring tasks expire after seven days. Fine for "watch this PR this week," not for "every Monday, indefinitely."
You can move to claude -p "/changelog" from crontab on an always-on machine, but then you're running a server. See running Claude Code on a schedule for that route.
Step 2b: For remote, copy and paste into Claude scheduled tasks
To run it with your laptop closed, the built-in route is Claude's cloud scheduled tasks (formerly routines). Run /schedule in Claude Code, or open claude.ai/code/routines, paste your prompt in, pick the repos and connectors, and set a schedule.
Limitations
In practice this is a copy-and-paste port, and things get lost along the way:
- MCP tools may not come with it. Servers you added locally with
claude mcp addaren't claude.ai connectors, so the cloud run doesn't have them unless you re-add them or commit a.mcp.json. - Skills and commands only come if they're in the repo. Anything in your personal
~/.claudeisn't in the cloud session. - Browser state doesn't carry over. If your session used a logged-in browser, the cloud run starts signed out.
- No persistent environment. Each run clones fresh and then disappears. Suppose the session worked because of your local layout: two repos side by side, an
analysis/folder and ascreenshots/folder that grow every day, a directory of prompt templates. That layout doesn't exist in a short-lived sandbox.
When the task doesn't depend on an environment, like "digest my unread Slack" or "check this price," this works well. When the session depended on your setup, it often doesn't survive the move.
Step 3: fl0w workflows, one slash command from session to cloud
I built fl0w for that second case: a session that works because of how your computer is set up.
- Run the session in fl0w, locally or on your cloud computer, until it does the job end to end.
- Type
/generateand pick the session. fl0w turns it into a workflow and asks what should vary between runs, such as a date range, a repo, or a search term. - Add a trigger: an hourly, daily, weekly, or monthly schedule; a webhook; or a hosted form you can share with a teammate.
Here's what's different from copying and pasting:
- MCP tools, skills, and browser state sync automatically. Your local config, OAuth tokens, secrets, and browser sessions are encrypted and synced to your personal cloud computer. The workflow runs with the same capabilities and models the session used. See MCP servers in the cloud.
- Your environment persists. Every account gets its own cloud computer with a filesystem that sticks around between runs. Your
screenshots/folder is still there tomorrow. - Runs behave like the session. Workflow runs skip straight to execution with the saved setup, and since nobody is around to answer questions, the agent states its assumptions and keeps going. Every run's steps and logs show up in the Automate tab.
You can also trigger a workflow from your own CI or cron:
fl0w workflow <workflow-id> --input "focus on breaking changes"
Create automations with intention
One thing I care about: not everything should be automated. fl0w is built for workflows that do work, like searching tickets, pulling commits, running scripts, and filing research. It isn't built to talk to people on your behalf, so tools that send email and Slack messages are opt-in. Automate the tasks you've done enough times to understand, and keep doing the ones that still teach you something.
The full walkthrough is in Automating sessions.
FAQ
How do I turn a Claude Code session into an automation?
Ask Claude to save the session as a reusable prompt in .claude/commands/ or as a skill. Then schedule it locally with /loop or a natural-language cron request, or remotely by creating a cloud scheduled task with /schedule. Check that any MCP servers and skills it needs are available in the cloud.
Can I schedule a Claude Code slash command?
Yes. /loop 1h /your-command re-runs a custom command or skill on an interval, as long as Claude is allowed to invoke it on its own. It only runs while the session is open.
Why does my automation work locally but fail in Claude's cloud?
Usually because it depended on something local: an MCP server added with claude mcp add, a skill in ~/.claude, a logged-in browser, or files outside the repo. Cloud scheduled tasks start from a fresh clone with only your claude.ai connectors.
What should I automate?
Anything you've prompted by hand three or more times with roughly the same steps. Repetition shows you that the task is stable and that you know what a good result looks like.