Skip to main content
Beta Feature: Automations is currently in beta and available for OpenHands Cloud and OpenHands Enterprise users only.
Automations let you schedule AI-powered tasks that run automatically—daily reports, health checks, data syncs, and more. Each automation runs a full OpenHands conversation on your chosen schedule, with access to your LLM settings, stored secrets, and integrations. Your git provider credentials are automatically available—if you logged into OpenHands Cloud with GitHub, GitLab, or Bitbucket, that access is included by default.

What Can Automations Do?

  • Generate reports: Daily standups, weekly summaries, or monthly metrics
  • Monitor systems: Check API health, SSL certificates, or uptime
  • Sync data: Pull from external APIs, update spreadsheets, or refresh dashboards
  • Maintain code: Run dependency checks, security scans, or cleanup tasks
  • Send notifications: Post updates to Slack, create GitHub issues, or send alerts
Automations can only interact with services you’ve configured access to. For example, posting to Slack requires the Slack MCP integration. Git providers you logged in with (GitHub, GitLab, Bitbucket) are automatically available.

Two Types of Automations

When you ask OpenHands to create an automation, you can choose between:
  • Prompt-based (most common): Describe what the automation should do in natural language. Great for reports, monitoring, data syncs, and most tasks.
  • Plugin-based: Include one or more plugins that provide additional skills or capabilities. Use this when you need specialized tools from the OpenHands extensions repository.
Both types are created the same way—just describe what you want and OpenHands will guide you through the setup.

Creating Your First Automation

Just ask OpenHands to create one:
Create an automation that runs every Monday at 9 AM and summarizes 
our open GitHub issues, then posts the summary to #engineering on Slack.
For plugin-based automations, mention the plugin:
Create an automation using the code-review plugin that runs daily 
and reviews any Python files changed in the last 24 hours.
The Automation Skill guides you through:
  1. Naming your automation
  2. Setting the schedule
  3. Choosing a timezone
  4. Confirming the task description (and plugins, if any)
That’s it—the system handles the rest.

How It Works

When your automation runs:
  1. A fresh sandbox is created
  2. The OpenHands agent executes your prompt
  3. The conversation is saved so you can review it later
  4. You can even continue the conversation if needed
Automations are user-scoped—each automation and its runs belong to you. Conversations created by your automations automatically appear in your conversations list, just like any other conversation you start. Your automation has access to everything a normal OpenHands conversation does: terminal, file editing, your configured LLM, stored secrets, and MCP integrations. Git provider tokens from your Cloud login (GitHub, GitLab, or Bitbucket) are automatically included.

Getting Started

Before creating automations, complete this one-time setup:

1. Create an OpenHands API Key

Go to Settings > API Keys and create a new API key.

2. Save the API Key as a Secret

Copy the API key value and go to Settings > Secrets. Create a new secret with:
  • Name: OPENHANDS_API_KEY
  • Value: Your API key from step 1
This allows the Automation Skill to create and manage automations on your behalf.

3. Start a Conversation

Open a new conversation in OpenHands and ask it to create an automation:
Create an automation that runs every Monday at 9 AM and summarizes 
our open GitHub issues, then posts to #engineering on Slack.
You can also list existing automations, enable/disable them, or trigger manual runs—all through conversation.

Prerequisites

  • OpenHands Cloud or Enterprise account (not available in open-source)
  • Configured LLM in your settings
  • Stored secrets (optional) for any additional API keys your automations need (e.g., Slack tokens)

Use Case Automations

Each use case has a ready-to-use automation prompt. Click a card to see the full instructions.

Automated Code Review

Review open PRs daily for bugs, style issues, and security concerns.

Dependency Upgrades

Check for outdated packages weekly and report available updates.

Incident Triage

Monitor API health, analyze errors, and alert your team automatically.

Vulnerability Remediation

Scan dependencies for known CVEs, find hardcoded secrets, and alert your team on a schedule.

General Automations

Ready-to-use templates for common operational tasks.

Daily GitHub Summary

Summarize PRs opened, merged, and reviewed daily.

Weekly Metrics Report

Generate weekly GitHub activity and issue reports.

SSL Certificate Monitor

Check SSL expiry dates and alert before they lapse.

Weekly Cleanup

Remove stale temporary files and report what was cleaned.

Backup Verification

Verify database backups exist and are recent.

Analytics Data Sync

Pull analytics data periodically and flag big changes.

Daily GitHub Summary

Create an automation called "Daily GitHub Summary" that runs every weekday at 9 AM Eastern.

It should:
1. Summarize PRs opened, merged, and reviewed in the last 24 hours
2. List any PRs that have been open for more than 3 days
3. Format as a clean markdown summary
4. Post to the #engineering Slack channel

Weekly Metrics Report

Create an automation called "Weekly Metrics" that runs every Monday at 9 AM.

It should generate a weekly report covering:
- GitHub activity (commits, PRs merged, issues closed)
- Open issues grouped by priority
- PRs awaiting review for more than 3 days

Save the report to weekly-reports/ with the current date in the filename.

SSL Certificate Monitor

Create an automation called "SSL Monitor" that runs daily at 8 AM.

It should check SSL certificate expiry for these domains:
- api.example.com
- app.example.com
- www.example.com

If any certificate expires within 30 days, alert #devops with the domain and days remaining.

Weekly Cleanup

Create an automation called "Weekly Cleanup" that runs every Sunday at 2 AM UTC.

It should:
1. Find and delete temporary files older than 7 days
2. Create a summary of what was removed (file paths and sizes)
3. Post the cleanup summary to #ops

Backup Verification

Create an automation called "Backup Check" that runs daily at 6 AM.

It should verify that database backups exist and were created within the last 24 hours.
List the most recent backup for each database with its timestamp and size.
If any backup is missing or stale, send an urgent alert to #alerts.

Analytics Data Sync

Create an automation called "Analytics Sync" that runs every 6 hours.

It should:
1. Pull the latest data from our analytics API
2. Update metrics.json with the new data
3. Calculate week-over-week changes for key metrics
4. If any metric changed by more than 20%, flag it in a summary message

Tips for Writing Good Prompts

Tell the automation exactly what to do:
  • “Check X and if Y, then Z”
  • “Generate a report and save it to…”
  • “Fetch data, compare with expected values, and report differences”
Specify what should happen when things go wrong:
  • “If the response is not 200…”
  • “If any backup is missing…”
  • “If the check fails, alert the team”
Be explicit about outputs:
  • “Post to the #channel Slack channel”
  • “Save to reports/ with the current date”
  • “Create a GitHub issue with the findings”

Next Steps