一键导入
automation
Create and manage OpenHands automations - scheduled tasks that run in sandboxes. Use for cron-scheduled automations.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create and manage OpenHands automations - scheduled tasks that run in sandboxes. Use for cron-scheduled automations.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Parse email newsletters into individual stories. Use when structural/heuristic parsing fails and LLM extraction is needed.
Deduplication strategy for identifying when multiple newsletters cover the same story. Use when reviewing or improving dedup logic.
Run the DailyMe newsletter processing pipeline. Handles email ingestion, parsing, dedup, ranking, and optional digest delivery.
| name | automation |
| description | Create and manage OpenHands automations - scheduled tasks that run in sandboxes. Use for cron-scheduled automations. |
| triggers | ["automation","automations","scheduled task","cron job","cron schedule"] |
This skill provides documentation for creating and managing OpenHands automations - scheduled tasks that run in sandboxes on a cron schedule.
Quick Start: Use the prompt endpoint to create automations with a simple natural language prompt.
All automation endpoints use the OpenHands Cloud API. Replace {host} with your API host (e.g., staging.all-hands.dev or app.all-hands.dev).
| Endpoint | Method | Description |
|---|---|---|
{host}/api/automation/v1/preset/prompt | POST | Create automation from a prompt (recommended) |
{host}/api/automation/v1 | POST | Create custom automation |
{host}/api/automation/v1 | GET | List automations |
{host}/api/automation/v1/{id} | GET | Get automation details |
{host}/api/automation/v1/{id} | PATCH | Update automation |
{host}/api/automation/v1/{id} | DELETE | Delete automation |
{host}/api/automation/v1/{id}/dispatch | POST | Trigger a run manually |
{host}/api/automation/v1/{id}/runs | GET | List automation runs |
{host}/api/automation/v1/uploads | POST | Upload a tarball |
All requests require Bearer authentication with your OpenHands API key:
-H "Authorization: Bearer ${OPENHANDS_API_KEY}"
The OPENHANDS_API_KEY environment variable should be available in your session.
Use the preset/prompt endpoint to create automations with a simple natural language prompt. This is the recommended approach for most use cases.
curl -X POST "https://{host}/api/automation/v1/preset/prompt" \
-H "Authorization: Bearer ${OPENHANDS_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"name": "My Automation Name",
"prompt": "What you want the automation to do",
"trigger": {
"type": "cron",
"schedule": "0 9 * * *",
"timezone": "UTC"
}
}'
| Field | Required | Description |
|---|---|---|
name | Yes | Name of the automation (1-500 characters) |
prompt | Yes | Natural language instructions for what the automation should do |
trigger.schedule | Yes | Cron expression (5 fields: min hour day month weekday) |
trigger.timezone | No | IANA timezone (default: "UTC") |
| Field | Values | Description |
|---|---|---|
| Minute | 0-59 | Minute of the hour |
| Hour | 0-23 | Hour of the day (24-hour) |
| Day | 1-31 | Day of the month |
| Month | 1-12 | Month of the year |
| Weekday | 0-6 | Day of week (0=Sun, 6=Sat) |
| Schedule | Description |
|---|---|
0 9 * * * | Every day at 9:00 AM |
0 9 * * 1-5 | Weekdays at 9:00 AM |
0 9 * * 1 | Every Monday at 9:00 AM |
0 0 1 * * | First day of month at midnight |
*/15 * * * * | Every 15 minutes |
0 */6 * * * | Every 6 hours |
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "My Automation Name",
"trigger": {
"type": "cron",
"schedule": "0 9 * * *",
"timezone": "UTC"
},
"enabled": true,
"created_at": "2025-03-25T10:00:00Z"
}
curl -X POST "https://staging.all-hands.dev/api/automation/v1/preset/prompt" \
-H "Authorization: Bearer ${OPENHANDS_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"name": "Daily Report",
"prompt": "generate a daily status report and save it to a file in the workspace",
"trigger": {
"type": "cron",
"schedule": "0 9 * * 1",
"timezone": "UTC"
}
}'
curl "https://{host}/api/automation/v1?limit=20" \
-H "Authorization: Bearer ${OPENHANDS_API_KEY}"
curl "https://{host}/api/automation/v1/{automation_id}" \
-H "Authorization: Bearer ${OPENHANDS_API_KEY}"
curl -X PATCH "https://{host}/api/automation/v1/{automation_id}" \
-H "Authorization: Bearer ${OPENHANDS_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"enabled": false}'
curl -X DELETE "https://{host}/api/automation/v1/{automation_id}" \
-H "Authorization: Bearer ${OPENHANDS_API_KEY}"
curl -X POST "https://{host}/api/automation/v1/{automation_id}/dispatch" \
-H "Authorization: Bearer ${OPENHANDS_API_KEY}"
curl "https://{host}/api/automation/v1/{automation_id}/runs?limit=20" \
-H "Authorization: Bearer ${OPENHANDS_API_KEY}"
Run Status Values:
| Status | Description |
|---|---|
PENDING | Run scheduled, waiting for dispatch |
RUNNING | Execution in progress |
COMPLETED | Run finished successfully |
FAILED | Run failed, check error_detail |
For advanced use cases where you need full control over your automation code, you may need to create a custom automation with your own tarball and entrypoint.
When to use custom automation:
See CUSTOM.md for:
Automation code uses the OpenHands Software Agent SDK. See https://docs.openhands.dev/sdk for complete API reference.
pip install openhands-sdk openhands-workspace openhands-tools