Cosmo Docs

Routines

Describe a task once, pick a schedule, and Cosmo runs it for you — even when the app is closed.

A routine is a task you describe once in plain English, paired with a schedule. Cosmo runs it automatically at the scheduled time and keeps the result for you to read later.

Routines run on Cosmo's servers, not on your machine. Your computer can be asleep, closed, or switched off — the routine still runs.

What a routine can do

A routine can do anything you can ask Cosmo to do in a normal chat. It uses the same connectors and the same tools, so it can:

  • Summarize last week's email
  • Create an artifact in one of your workspaces
  • Draft a reply for you to review
  • Pull data from a connected tool and write up what it found

A single routine can also do several things in sequence — "fetch last week's support tickets, group them by theme, and save it as a report" is one routine, not three.

What a routine can reach

A routine runs with the same tools you have in chat, using your connected integrations:

Your integrationsRead files and mail, draft email — whatever you have connected
ArtifactsCreate, read, update, and organise documents in a workspace
TasksCreate, update, and complete tasks
WorkspacesCreate and organise workspaces, and read or write workspace memory
TeamsList teams and members

Long documents are written in sections rather than all at once, so a large report is built up progressively instead of arriving as one oversized block.

A routine cannot ask you anything mid-run, and there's no way to reply to a run, so it never waits for input. Everything it needs is worked out once, when you save it — see Before saving: what Cosmo needs. When something is still open at run time, it makes a reasonable assumption and says which one it made.

If an integration the routine needs isn't available when it runs, the run does not fail. It does every part of the task it can with what is connected, gives you a real result, and ends with a short note on what it left out. The run is marked Completed with gaps, and its timeline shows exactly which connector was missing.

Routines run on Cosmo's servers and use the sign-in saved there, not the one on your computer. That's why an integration can look connected in the app and still be unavailable to a routine — reconnecting it fixes that, and the readiness screen offers Reconnect for exactly this case.

Creating a routine

Open Routines in the Hub sidebar and click New. The form walks you through four numbered steps. Fields marked with a red * are required.

  1. What should it do? * — describe the task in plain English, the way you'd ask in chat. Cosmo runs it on its own, so include everything it needs: which tool to use, what to look at, and what to produce. The field grows as you type, and you can drag its bottom edge to make it taller or scroll it to review a long description. Enter starts a new line; Ctrl + Enter (Cmd + Enter on a Mac) saves.
  2. Name — optional. Leave it blank and Cosmo names the routine from its instructions; you can rename it later.
  3. When should it run? * — choose Daily, Weekly, or Hourly. For Weekly, pick at least one day. For Daily and Weekly, choose a start date and a time (see below).
  4. Where should results go? — the workspace that anything the routine creates is saved to. Defaults to Personal.

Under the schedule, a one-line summary reads back exactly what you're about to save — for example "Runs every day at 10:00 AM, starting Mon, Oct 5, 2026 (Asia/Kolkata)."

Click Save routine at the bottom of the form. It stays disabled until everything required is filled in, and the text beside it tells you what's still missing — for example "To save, pick at least one day." You can also click Test Routine first (see below) to preview what the routine will do.

Clicking Save routine opens the readiness screen (below). The routine is saved from there; Cosmo then confirms it and opens the new routine so you can check its schedule and next run.

Before saving: what Cosmo needs

Before anything is saved, Cosmo looks at your connected tools — read-only, it never creates or changes anything at this point — and shows you everything the routine will need:

  • Connectors this routine uses — each with its logo, why it's needed, and its status: Connected, Needs reconnect, or Not connected.
    • Connect opens the connector's sign-in in your browser, right from this screen. Once you've signed in, its status changes to Connected — you never leave the screen. (A connector that needs an API key is the exception: Connect takes you to Integrations to enter it, then brings you straight back here with everything you'd filled in still there. A Back to routine setup bar at the top of Integrations takes you back at any time.)
    • Reconnect appears only when a connector's sign-in has expired or isn't usable by routines. It signs the connector in again, also without leaving the screen, and the status changes to Connected.
    • Check again refreshes every status.
  • What Cosmo found — details it looked up in your tools. If you have exactly one Jira project, for example, it fills that in for you. Change anything that isn't right.
  • What Cosmo needs from you — details it couldn't decide on its own, such as which of your several projects to use. Pick one of your real options, or type your own with Other. Leave one empty and Cosmo chooses sensibly each run.
  • What each run will do — one or two sentences naming the specifics.

When everything is connected and filled in, the screen turns green: "Everything this routine needs is ready." Nothing on this screen blocks saving — you can save at any point, and anything not connected or filled in is simply skipped when the routine runs.

What you confirm here is saved with the routine and used by every run. Editing a routine later shows the same screen again with what you confirmed last time and fresh connector statuses; Cosmo only works it out again from scratch if you've changed the instructions. If the check can't run — for example, you're offline — the screen says so and you can still save.

Starting on a later date

Daily and Weekly routines have a Starts on date. It's set to today when you create a routine, which means the first run is simply the next scheduled time. If you save a routine during the very minute it's set for (the time starts out at the current time), that counts as today, and it runs within a minute. Pick a later date to hold the routine until then: a routine created on a Wednesday with a start date of next Monday runs for the first time on Monday at the time you chose. Click Today to go back to starting straight away.

The start date is read in the routine's timezone. Once it has passed, it has no further effect; you'll see it as Started on in the routine's details. Hourly routines start as soon as you save, so they have no start date.

Setting the time

Scroll the hour and minute wheel, or type a time into the box next to it — whichever is quicker. The box accepts things like 9, 9:30, 9.30 pm, 21:30 or 0930, and updates the wheel when you press Enter or click away. If Cosmo can't read what you typed, it keeps the previous time and shows an example of the format it expects.

About the time you pick

The time is stored together with your timezone, shown next to the time picker. "9:00 AM" means 9:00 AM where you were when you created the routine, and it stays at 9:00 AM local time across daylight-saving changes.

Hourly routines

Choosing Hourly hides the time picker — there's no single time for a routine that runs every hour. Instead:

  • The minute it repeats on is whatever minute it was when you clicked Save — a routine created at 5:47 PM runs at :47 past every hour after that.
  • The very first run fires immediately, not on the next hour boundary — you don't wait up to 60 minutes to see it work.
  • An optional end date stops it after the last hourly run on that date. Leave it blank and the routine runs every hour, every day, until you pause or delete it.

Test Routine

Once you've written a prompt, a Test Routine button appears next to Save routine at the bottom of the form. It shows a step-by-step preview of what a real run would likely do — which connector it would use, what it would look up, and what it would summarize — clearly marked as a preview. Nothing is saved and nothing runs for real; it's a sanity check on the form before you commit to it.

From the preview you can go Edit (back to the form) or Save & Run, which goes through the same readiness screen and then creates the routine and runs it immediately for real, the same as the Run button below.

The routines list

Every routine in the list shows its name, its status (Active, Paused, or Ended), its schedule and, for an active routine, when it runs next. Each row also has Pause/Resume, Edit, and Delete buttons, so you can act on a routine without opening it first. Click anywhere else on the row to open it.

Reading results

Open a routine to see its details and run history. The details card at the top shows:

ScheduleHow often and at what time it runs
Starts onIts start date, if it hasn't started yet (or Started on, once it has)
Next runWhen it runs next — or why it won't (paused, or its schedule has finished)
TimezoneThe zone its time is read in
Results go toThe workspace it saves to
Set up onThe connectors and details you confirmed on the readiness screen
InstructionsWhat you asked it to do

Below that is the run history, newest first. Each run shows when it was scheduled and how it went:

StatusMeaning
QueuedClaimed and waiting its turn to run
RunningIn progress right now
CompletedFinished successfully
Completed with gapsFinished and gave a result, but part of it is missing: a connector it was set up with wasn't available, or one connector's lookups failed (a wrong repository, say) while the rest came back. The run's timeline names which
FailedSomething stopped it — the reason is shown
MissedCosmo was not running when this was due

A run's connector timeline

Every run re-checks its connectors before it starts, and shows what it found as a short timeline:

  • Routine saved — when you saved it, and which connectors were connected then.
  • Checked before this run — each connector's state now: Connected, Disconnected since this routine was saved, Connected since this routine was saved, or Still not connected — with a Connect link beside anything missing.
  • What the run had to leave out, if anything.

The times shown are when Cosmo checked — at save and at the start of the run — not the exact moment a connector was disconnected.

Run history is kept indefinitely, the same as your chat history.

Pausing, editing, running, and deleting

A routine's detail view has these actions next to its name. Pause/Resume, Edit, and Delete are also on each row of the routines list.

  • Run runs the routine right now, for real — useful for checking a routine works without waiting for its next scheduled slot. Its schedule doesn't change. Clicking it again while that run is still going does not start a second one.
  • Pause stops future runs without deleting anything. Resume whenever you like; resuming within a minute of a scheduled time still runs that slot.
  • Edit reopens the same form you created it with. Every field can be changed: the instructions, name, schedule, start date, time, timezone, and workspace. Changes apply from the next run.
  • Delete removes the routine and its run history. Cosmo asks you to confirm first, because this can't be undone. To stop a routine without losing anything, pause it instead.

You can also rename a routine by clicking its name.

A few things editing doesn't do:

  • Past runs and their results can't be changed.
  • Editing a paused routine does not resume it — it stays paused until you resume it explicitly.
  • Saving an Hourly routine re-anchors it to the minute you save, the same way creating one does.

After you create, edit, rename, pause, resume, or delete a routine, a short confirmation appears in the top-right corner and the list updates straight away. If an action fails, the message says what went wrong.

When a run is missed

If Cosmo was not running when a routine was due — during maintenance, for example — the run is marked Missed rather than run late. A summary that was meant for 9:00 AM is usually not useful at 4:00 PM, so nothing is retried behind your back.

A missed run gives you two choices:

  • Run with same settings — queue it now, exactly as it was scheduled. A paused routine has to be resumed first.
  • Edit schedule — change when it runs in future.

Short interruptions are absorbed automatically: a routine that runs within about fifteen minutes of its slot just runs, and is never flagged as missed. A run that was claimed on time but waited in the queue is late, not missed — it still runs.

Failures and quota

Routine runs use your normal token allowance and are metered like any other chat. If your quota runs out, the run stops and the routine detail view tells you why.

A connector that has been disconnected, or needs reconnecting, doesn't fail a run: the run works around it and is marked Completed with gaps. Use the Connect link in that run's timeline, and the next run will include it again.

A single lookup going wrong doesn't fail a run either. For example, a saved repository name might not exist anymore. If Cosmo then finds the right value using the same integration, the run completes and says which value it used instead. If it can't, but your other integrations came back, the run is Completed with gaps, and its timeline says which integration didn't return results. For example: "GitHub didn't return results — search_pull_requests failed, so that part is missing from this result."

A run is marked Failed when:

  • something the routine was supposed to change fails (creating a ticket, say), even if a later lookup worked;
  • none of its integrations returned anything;
  • Cosmo couldn't save its own result.

When a setup question asks for a GitHub repository, you can paste its link: https://github.com/owner/repo is read as owner/repo.

When a step fails, the run says what it could not do in plain words, for example "it was unable to read a document" or "it was unable to save the result". A single file that can't be read, such as a scanned PDF, does not fail the run: the routine carries on with everything else, and the end of its result says "Document reading failed" and names each file it could not read, so the summary can't pass for having used it. See Reading documents and attachments.

Integrations that sign in through their own provider

Connectors like Read.ai, Jira, Slack, Pylon, GitHub and custom MCP servers that use OAuth sign in with the provider directly. Their sign-in lasts a limited time and is renewed automatically, so a routine keeps working on a schedule without you being in the app. A routine renews it the same way the app does, and the two always keep the newest sign-in, so a routine running overnight doesn't log the app out — or the other way round.

If an integration you have connected can't be reached during a run, the run says which one, and why, rather than asking you to connect something that is already connected:

  • "its sign-in has expired" — the provider no longer accepts the sign-in (it was revoked, or it lapsed). Reconnect it from Integrations.
  • "it could not be reached" — the integration didn't respond during that run. Check it in Integrations; the next run will try again.

If you connected one of these integrations before this was fixed, open the Cosmo app once after updating. The app hands routines what they need to renew that integration's sign-in on their own.

If a run's response is unusually long — a very detailed report, or a task that called many tools in sequence — it can occasionally be cut off before finishing. The run is marked Failed and says so, rather than silently handing you a partial result. If you see this often for one routine, breaking a very broad request into two smaller, more specific routines usually helps.

Limits in this version

  • Schedules are daily, weekly, or hourly. Monthly is not available yet.
  • Routines are personal — you cannot share a routine or its results with a teammate yet.
  • Routines are managed from the desktop app.
  • Routines cannot trigger other routines.
  • A routine's instructions can be up to 20,000 characters. A running counter under the field shows how much room is left, and the field won't accept more than that once you reach it.

If you cannot see Routines

Routines are scheduled by the Cosmo server, so the server has to have them switched on. When it does not, the Routines entry is hidden rather than shown as something that would accept a schedule and never honour it.

On Cosmo Cloud this is managed for you. If you self-host, set ROUTINES_ENABLED=true in your server environment and restart it. The other ROUTINES_* settings — run timeout, concurrency, and how late a slot may start before it counts as missed — are documented in infra/.env.example.

Routines you already created are never lost while the setting is off: they stay listed and you can pause or delete them. Only creating, resuming, and re-running are refused, because none of those could actually happen.