Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ The JS and Python versions are kept in lock-step by `release-please` and guarded
## Extensions Catalog

<!-- BEGIN AUTO-GENERATED CATALOG -->
This repository contains **2 marketplace(s)** with **62 extensions** (52 skills, 10 plugins).
This repository contains **2 marketplace(s)** with **63 extensions** (53 skills, 10 plugins).

### large-codebase

Expand All @@ -106,7 +106,7 @@ OpenHands skills for interacting, improving, and refactoring large codebases

Official skills and plugins for OpenHands — the open-source AI software engineer.

**58 extensions** (50 skills, 8 plugins)
**59 extensions** (51 skills, 8 plugins)

| Name | Type | Description | Commands |
|------|------|-------------|----------|
Expand All @@ -126,6 +126,7 @@ Official skills and plugins for OpenHands — the open-source AI software engine
| deno | skill | Common project operations using Deno (tasks, run/test/lint/fmt, and dependency management). | — |
| discord | skill | Build and automate Discord integrations (bots, webhooks, slash commands, and REST API workflows). Use when the user m... | — |
| docker | skill | Run Docker commands within a container environment, including starting the Docker daemon and managing containers. Use... | — |
| dreaming | skill | Create an automation that periodically distills your local OpenHands Agent Canvas coding sessions into a target repos... | `/dreaming:setup` |
| evidence-based-citations | skill | Back factual claims and field values with official, verifiable sources. Use when the user asks to fill fields, answer... | — |
| flarglebargle | skill | A test skill that responds to the magic word 'flarglebargle' with a compliment. Use for testing skill activation and ... | — |
| frontend-design | skill | Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks ... | — |
Expand Down
13 changes: 13 additions & 0 deletions automations/catalog/dreaming.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"id": "dreaming",
"name": "Letta dreaming agent",
"category": "Agent memory",
"description": "Give your coding agents a memory that compounds: Letta reflects over a chosen OpenHands conversation on a schedule, learning your codebase, conventions, and preferences over time.",
"requiredIntegrationIds": [
"github"
],
"popularityRank": 84,
"estimatedSetupMinutes": 5,
"prompt": "/dreaming:setup",
"exampleImplementation": "Trigger: cron, daily by default (configurable)\nRequired secrets: GITHUB_TOKEN (repo write) and the model provider API key\n\n1. At setup, the user names a conversation; the skill resolves it to a conversation id from local conversation metadata.\n2. On each cron run, feed whatever is new in that conversation to a persistent Letta dreamer agent; letta dream reflects it into AGENTS.md in a temporary shallow checkout of the target repo. Already-reflected messages are deduplicated, so quiet runs are cheap no-ops.\n3. If the doc changed, commit as the token owner with a Letta Code co-author trailer and push the dream branch.\n4. Open or update the pull request with a summary of the doc changes.\n5. To dream over several conversations, set up one automation per conversation; automations targeting the same repo share a lock and never overlap."
}
2 changes: 1 addition & 1 deletion automations/catalog/research-brief-writer.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"tavily",
"notion"
],
"popularityRank": 84,
"popularityRank": 83,
"estimatedSetupMinutes": 7,
"prompt": "/research-brief:setup",
"exampleImplementation": "Trigger: cron, weekly or daily\nRequired MCPs: Tavily, Notion\n\n1. Run focused Tavily searches for configured topics and competitors.\n2. Deduplicate sources and rank them by freshness and authority.\n3. TODO: confirm citation format and destination Notion database schema.\n4. Write an executive summary, implications, and recommended actions.\n5. Create or update a Notion page with citations and source links."
Expand Down
2 changes: 2 additions & 0 deletions automations/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import linear_triage_assistant from "./catalog/linear-triage-assistant.json" wit
import research_brief_writer from "./catalog/research-brief-writer.json" with { type: "json" };
import incident_retrospective_drafter from "./catalog/incident-retrospective-drafter.json" with { type: "json" };
import jira_issue_to_pr from "./catalog/jira-issue-to-pr.json" with { type: "json" };
import dreaming from "./catalog/dreaming.json" with { type: "json" };

export const AUTOMATION_CATALOG = [
github_pr_reviewer,
Expand All @@ -16,5 +17,6 @@ export const AUTOMATION_CATALOG = [
research_brief_writer,
incident_retrospective_drafter,
jira_issue_to_pr,
dreaming,
];
export default AUTOMATION_CATALOG;
26 changes: 20 additions & 6 deletions marketplaces/openhands-extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@
"email": "contact@all-hands.dev"
},
"metadata": {
"description": "Official skills and plugins for OpenHands \u2014 the open-source AI software engineer.",
"description": "Official skills and plugins for OpenHands the open-source AI software engineer.",
"maintainer": "OpenHands",
"homepage": "https://github.com/OpenHands/extensions"
},
"plugins": [
{
"name": "agent-creator",
"source": "./skills/agent-creator",
"description": "Create file-based sub-agents as Markdown files \u2014 no Python code required. Guides the user through a structured interview and generates a ready-to-deploy .md agent file following the OpenHands SDK specification.",
"description": "Create file-based sub-agents as Markdown files no Python code required. Guides the user through a structured interview and generates a ready-to-deploy .md agent file following the OpenHands SDK specification.",
"category": "development",
"keywords": [
"agent",
Expand Down Expand Up @@ -429,7 +429,7 @@
{
"name": "openhands",
"source": "./plugins/openhands",
"description": "Unified OpenHands plugin \u2014 bundles Cloud CLI, REST API (openhands-api), and Automations (openhands-automation) into a single plugin.",
"description": "Unified OpenHands plugin bundles Cloud CLI, REST API (openhands-api), and Automations (openhands-automation) into a single plugin.",
"category": "openhands",
"keywords": [
"openhands",
Expand Down Expand Up @@ -470,7 +470,7 @@
{
"name": "pr-review",
"source": "./plugins/pr-review",
"description": "Automated PR code review \u2014 analyzes diffs and posts inline review comments via the GitHub API.",
"description": "Automated PR code review analyzes diffs and posts inline review comments via the GitHub API.",
"category": "code-quality",
"keywords": [
"pr-review",
Expand All @@ -482,7 +482,7 @@
{
"name": "qa-changes",
"source": "./plugins/qa-changes",
"description": "Validate pull request changes by actually running the code \u2014 setting up the environment, exercising changed behavior, and posting a structured QA report.",
"description": "Validate pull request changes by actually running the code setting up the environment, exercising changed behavior, and posting a structured QA report.",
"category": "quality-assurance",
"keywords": [
"qa",
Expand Down Expand Up @@ -631,7 +631,7 @@
{
"name": "iterate",
"source": "./skills/iterate",
"description": "Iterate on a GitHub pull request \u2014 drive it through CI, code review, and QA until merge-ready. Monitors state, fixes failures, addresses review feedback, retries flaky checks, and pushes fixes in one continuous loop.",
"description": "Iterate on a GitHub pull request drive it through CI, code review, and QA until merge-ready. Monitors state, fixes failures, addresses review feedback, retries flaky checks, and pushes fixes in one continuous loop.",
"category": "productivity",
"keywords": [
"github",
Expand Down Expand Up @@ -747,6 +747,20 @@
"jira",
"atlassian"
]
},
{
"name": "dreaming",
"source": "./skills/dreaming",
"description": "Create an automation that periodically distills your local OpenHands Agent Canvas coding sessions into a target repository's AGENTS.md via Letta memory reflection and opens or updates a pull request with the result.",
"category": "productivity",
"keywords": [
"letta",
"memory",
"reflection",
"agents-md",
"dreaming",
"automation"
]
}
]
}
1 change: 1 addition & 0 deletions skills/dreaming/.claude-plugin
1 change: 1 addition & 0 deletions skills/dreaming/.codex-plugin
20 changes: 20 additions & 0 deletions skills/dreaming/.plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "dreaming",
"version": "1.0.0",
"description": "Create an automation that periodically distills a chosen local OpenHands conversation into a target repository's AGENTS.md via Letta memory reflection and opens or updates a pull request with the result.",
"author": {
"name": "OpenHands",
"email": "contact@all-hands.dev"
},
"homepage": "https://github.com/OpenHands/extensions",
"repository": "https://github.com/OpenHands/extensions",
"license": "MIT",
"keywords": [
"letta",
"memory",
"reflection",
"agents-md",
"dreaming",
"automation"
]
}
44 changes: 44 additions & 0 deletions skills/dreaming/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Dreaming

Create an automation that periodically distills a chosen local OpenHands
conversation into a target repository's `AGENTS.md` via Letta memory
reflection, opening or updating a pull request with what it learned.

## Trigger

This skill is activated by:

- `/dreaming:setup`

## How it works

- At setup you name a conversation; the skill resolves it to a conversation
id from local conversation metadata.
- On each cron run, a persistent Letta "dreamer" agent reflects on whatever
is new in that conversation and updates the doc in a temporary checkout of
the target repo (already-reflected messages are deduplicated).
- If the doc changed, the automation commits and opens (or updates) a PR.
- The automation tarball is a thin wrapper (two small scripts); all logic
lives in the pinned npm package `@letta-ai/openhands-dreaming`.

MVP scope: **local Agent Canvas conversations only** (the automation polls on
your laptop). Cloud conversation sources are not supported yet.

## Prerequisites

Set these in OpenHands Settings -> Secrets:

- `GITHUB_TOKEN` with write access to the target repo
- The API key for the chosen model's provider (e.g. `ANTHROPIC_API_KEY`) -
note this is separate from OpenHands' own LLM configuration

## Quick Start

Ask OpenHands:

> "Set up Dreaming over my 'payment refactor' conversation for the
> `myorg/backend` repo using `anthropic/opus-4.8`."

## See Also

- [SKILL.md](SKILL.md) - Full setup workflow reference
Loading
Loading