Custom Automations
A Domain Custom Automation runs a selected skill or command as an Intent under your Domain, once immediately or on a recurring schedule. It lives on the Domain's Automations tab in the Domains workspace. (A platform automation instead runs a free-text prompt you write, belongs to no Domain, and lives only in User Settings → Automations — see Platform automations.) Bundled system jobs are managed from Org settings → Maintenance jobs, not from a Domain's panel.
Upgrade note: a Custom Automation created before this skill/command picker existed pointed at a fixed file path in your repository instead. That older kind of automation, and its complete run history, was permanently removed when Vibedata upgraded to this version — there is no export or recovery step. If you relied on one, recreate it here by picking the equivalent skill or command.
Your automations in User Settings
Vibedata also lists your own Custom Automations in one place: open User Settings → Automations. This is a personal inventory — every Custom Automation you own (as its bound owner): your Domain automations across the Domains you can currently read, plus your platform automations, which belong to no Domain — not a second place to manage them.
Each row shows:
- the automation's name, marked Custom,
- the Domain it belongs to — or Platform for a platform automation, which belongs to no Domain,
- its schedule line — the cadence in words with its timezone (for example Every day at 08:00 (UTC)) when a schedule exists, or Run-now only when there is no schedule,
- on a Platform row only, a Run button that submits an immediate run.
A Domain row is a link that opens that automation on its Domain's Automations page (/domains/{id}/automations?job={id}). Edit, delete, schedule, and run history stay on that Domain page; the User Settings list is read-only for Domain rows. A Platform row has no Domain page to open, so it is not a link: it carries its own Run button and an inline run-history expander with a detail drawer per run.
The inventory is paginated with Rows per page (25, 50, or 100), Previous page and Next page, a Page x of y readout, and a Showing a–b of n automations footer. It reflects your current access: if you lose access to a Domain, its automations leave the list; if you regain it, they return. Your platform automations are always listed — they belong to no Domain, so Domain access never affects them, and nobody else can see them.
Platform automations
A platform automation is a Custom Automation that belongs to no Domain. It runs a free-text prompt you write (up to 8000 characters) as a one-shot agent session — no Agent choice, no skill or command picker, no linked Intent — once immediately or on a recurring schedule. It always runs as you, under the same access check as a Domain automation: if your account is removed, its runs are Blocked.
Platform automations live only in User Settings → Automations, marked Platform. They never appear on a Domain's Automations page or in Org settings → Maintenance jobs. Run one with its Run button; expand its history inline and open any run for Run details in the same drawer a Domain run uses — minus the Linked intent, which a platform run never has. Only you can see and manage your platform automations.
Availability note: the User Settings list shows platform automations you own today, including running them and viewing their history. Creating and editing a platform automation from the UI arrives separately — until then, platform automations are created through the API.
What's on this screen
The Automations page shows a queue status badge (Queue healthy or Queue unavailable) and a New custom automation button. Below that is one list, drawn the same way as Org settings → Maintenance jobs:
- Your Custom Automations — every Custom Automation in this Domain. Each row shows its description when it has one, then its schedule in words with the timezone (for example Every day at 08:00 (UTC)), or Run-now only. Select one to open its own page, which holds Run now (when supported), its Schedules, the result of a run started there, and its Runs. Delete stays on the list, in the automation's … menu.
- On demand — the Domain's own operations, Domain bundle export and Domain bundle import, shown when you can change the Domain. Each opens its run history.
A job's Runs history can be filtered by status (All statuses, Queued, Running, Succeeded, Failed, Cancelled, Skipped, Blocked) and is newest first by default. Clicking a run opens Run details.
How to create a Custom Automation
- Click New custom automation.
- Enter a Name, and optionally a Description (up to 500 characters) that the list shows beside the schedule.
- Choose an Agent, then a Resources choice: Create an ephemeral workspace or Run without resources. Every Agent offers this choice.
- Choose a Skill or command. Type into the search field to filter the list by name or description, then click an entry to select it. The list reflects your Domain's installed and bundled plugins for the selected Agent, plus your Domain repository's skills and commands, and updates if you change the Agent.
- Choose an LLM profile. Only profiles you can use are shown.
- Set Timeout (seconds) to a whole number from 1 to 3600. The default is 3600 seconds (one hour).
- Under Trigger, choose Run once (runs immediately, no schedule is created) or Set schedule.
- If you chose Set schedule, fill in Cron expression and Timezone.
- Click Create.
Use the filters in Agent and LLM profile to find a listed value by any case-insensitive part of its visible name. Filtering does not change a stored choice, and a no-match result is different from a source list that is empty, loading, or unavailable.
Every Custom Automation runs as its creator (Self); there is no separate identity to choose. A skill runs by name; a command's current body is re-fetched from your Domain's repository, installed plugin, or bundled plugin on every run, so edits you push take effect on the next run without recreating the automation. Vibedata checks the creator's access when each run starts: if that user was removed or no longer has access to the Custom Automation and Domain, the run is Blocked instead of running with another identity.
The selected LLM Profile is stored with the automation. If an owner later changes that profile's model or credentials, later runs use the updated configuration. If the profile is deleted, the automation remains available to edit but cannot run until you select another profile.
How to change the automation definition
- On the Automations page, select the Custom Automation to open its page, then click Edit.
- Change the Name, Description, Agent, Skill or command, LLM profile, Timeout (seconds), or Resources choice.
- Click Save.
Changing the LLM Profile updates both future Run now executions and existing scheduled executions. It does not change completed runs.
Changing Timeout (seconds) affects future runs, including future scheduled runs. Runs already queued retain their selected timeout. Time spent queued or waiting for capacity does not count against the execution timeout.
If the automation changes after you open an edit form, saving can report a conflict. Changes to displayed profile or identity details can also cause this, even if nobody edited the automation itself. Your draft remains available; choose Reload and review, review the latest values, and apply your changes again. Vibedata does not automatically resubmit a conflicting draft. Schedule edits and removals follow the same review-before-retry rule.
How to run a Custom Automation again
On the Automations page, select the automation to open its page, then click Run now. The page's Latest run reports that a new run has been queued and offers View run, which opens that run's detail.
How to change or remove a schedule
On the Automations page, each automation's own page lists its Schedules. An automation with no schedule shows "This automation is run-now only — it has no schedule template." For a schedule you can manage:
- Click the pencil icon to open Edit schedule — [automation name], change Cron expression or Timezone, then click Save. The form replaces the automation's page while it is open; Back to [automation name] returns to the page without saving.
- Click the trash icon to Remove schedule. Removing a schedule stops future scheduled runs but does not delete the automation or its run history. Adding a schedule later (through the Add schedule control, which offers each of the automation's schedule templates that is not already scheduled) re-creates it with the next cron you set.
Schedule edits and removals protect the individual schedule you reviewed. A change to another schedule does not invalidate your edit. If someone creates the same schedule while you are adding it, Vibedata refuses to overwrite their schedule: use Reload and review before deciding what to change.
How to delete a Custom Automation
- On the Automations page, open the Custom Automation's … menu and click Delete.
- In the Delete this automation? confirmation, review the automation's name and its schedule count, then click Delete.
Deleting an automation cannot be undone and also removes its schedule(s).
How to view a run and cancel it
Select an automation to open its page; its Runs section lists its retained history. Optionally choose a status filter. Click Requested to switch between newest-first and oldest-first history. Choose Rows per page, then use Previous page and Next page to move through every retained matching run. The footer shows the visible range, retained total, and page position.
Click a row to open Run details. The drawer shows Status, Automation, Trigger, a Summary and Output once the run finishes, a Linked intent once one exists, and an Error if the run failed. The error includes the original message and code plus the error type and stack when they were captured, so the failure can be diagnosed from the run result. While a run is still queued or running, click Cancel run and confirm to stop it at the next safe point.
A Domain Custom Automation stays Running until its submitted turn finishes. Succeeded means that turn finished with a final response, available in Output; it does not mean the linked Intent's entire lifecycle is complete. If the timeout is reached, Vibedata pauses the Linked intent and marks the run Failed. (A platform automation has no turn and no linked Intent: it stays Running until its one-shot session finishes, and a timeout aborts the session before the run is marked Failed.) Error retains the original OpenHands or API diagnosis and any Pause cleanup failure, with credentials redacted.
What you'll see (states)
- Loading — placeholder rows on the User Settings inventory, in a Platform automation's run history, while the Domain automations list loads and in the details drawer, "Loading runs…" after opening an automation's page, "Loading agents…" and "Loading catalogue…" in the creation/edit dialog.
- Empty — "No automations" (with "You haven’t defined any automations yet.") on the User Settings inventory, or "No custom automations" (with "This Domain has no custom automations yet.") when a Domain has none; "No runs match the current filters" when a status filter excludes everything.
- Error — "Unable to load automations." on the User Settings inventory; "Unable to load automations", "Unable to load runs", or "Unable to load this run" if a Domain-surface request fails; "Couldn't load agents. Try again later." or "Couldn't load the catalogue. Try again later." in the creation/edit dialog if the Agent or skill/command list fails to load; "Couldn't load LLM profiles. Try again later." if the LLM profile list fails to load.
- In progress — a queued or running run shows only its status; Summary and Output appear once the run reaches a terminal state. Linked intent and Error can appear at any point, including while the run is still queued or running.
- Terminal status — Succeeded, Failed, Cancelled, Skipped, Blocked, or Warning. Warning means the submitted Turn ended paused, errored, or stuck; open the run to inspect its safe terminal detail.
- Converging — an Automation created or updated by a Domain import shows a Converging tag while Vibedata finishes registering its schedule. Run now (or Run on a Platform row in User Settings → Automations), edit, and delete are unavailable, and changing or removing its schedule is refused, until it finishes; try again in a moment. See Domains.
- Retained history — the Runs footer reports which rows are visible and the total number of matching runs retained by Vibedata's queue.
Quick reference
| Control | What it does |
|---|---|
| New custom automation | Opens the dialog to create a Custom Automation. |
| Agent | Chooses the agent identity the run executes under; every Agent also offers a Resources choice. |
| Skill or command | Searches and selects the skill or command artifact the run dispatches. |
| LLM profile | Chooses the model and credentials used by future runs. |
| Timeout (seconds) | Limits execution to 1–3600 seconds; reaching the limit pauses the Intent and fails the run (a platform automation aborts its session instead — it has no Intent to pause). |
| Run once / Set schedule | Submits one immediate run, or creates a recurring schedule (Cron expression + Timezone). |
| Run now | On a Domain automation's own page, submits an immediate run and reports the queued result there. |
| Run | On a Platform row in User Settings → Automations, submits an immediate run, recorded in the row's run history as Run now. |
| Edit | On an automation's own page, opens it for editing. |
| Delete (in the … menu) | On the Jobs list, opens the delete confirmation for the automation. |
| Edit schedule (pencil icon) | On an automation's own page, opens a form to change its cron or timezone. |
| Remove schedule (trash icon) | Deletes the schedule; the automation and its run history remain. A new schedule can be added again later. |
| Cancel run | Stops a queued or running run at the next safe point. |
| Requested | Switches the complete filtered history between newest-first and oldest-first order. |
| Rows per page | Chooses how many retained runs appear on each page. |
| Previous page / Next page | Moves through the retained runs that match the selected automation and status. |

