OpenHands/extensions
GitHub: OpenHands/extensions
OpenHands 的公共扩展注册表,提供 64 个可复用的 Skills 和 Plugins 来自定义 AI agent 的行为和能力。
Stars: 134 | Forks: 64
# OpenHands 扩展
本仓库是 [OpenHands](https://github.com/OpenHands/OpenHands) 的**公共扩展注册表**。
它包含可重用、可共享的技能和插件,用于自定义 agent 行为。
- 技能概览文档:https://docs.openhands.dev/overview/skills
- SDK 技能指南:https://docs.openhands.dev/sdk/guides/skill
## 仓库布局
### 技能
Skills 是基于 Markdown 的指南,提供特定领域的知识和说明。
它们位于 `skills/` 目录下,**每个技能一个目录**:
- `skills//SKILL.md` — 技能定义(AgentSkills 风格的渐进式展开)
- `skills//README.md` — 可选的面向人类的说明/示例
在 [`skills/`](skills/) 中浏览目录。
### 插件
Plugins 是包含可执行代码组件(hooks、scripts)的扩展。
它们位于 `plugins/` 目录下,**每个插件一个目录**:
- `plugins//SKILL.md` — 插件定义
- `plugins//hooks/` — 生命周期 hooks
- `plugins//scripts/` — 实用 scripts
在 [`plugins/`](plugins/) 中浏览可用插件。
### NPM Package
本仓库还通过 `@openhands/extensions` package 发布目录数据。它要求 Node.js 18.20.0 或更高版本,因为目录入口点使用 import attributes 导入 JSON modules。
```
import { AUTOMATION_CATALOG, INTEGRATION_CATALOG } from "@openhands/extensions";
import { INTEGRATION_CATALOG as MCP_MARKETPLACE } from "@openhands/extensions/integrations";
import { AUTOMATION_CATALOG as RECOMMENDED_AUTOMATIONS } from "@openhands/extensions/automations";
```
React logo 组件被隔离在单独的导出中,因此仅使用数据的消费者不需要 React peer dependencies:
```
import { INTEGRATION_LOGOS } from "@openhands/extensions/integrations/logos";
```
该 package 包含了整个仓库,因此 `skills/`、`plugins/` 和 `marketplaces/` 目录树都可以从已安装的 package 中获取。将内容文件解析为路径,或直接导入 JSON manifests:
```
// .md / .py / etc.: resolve to a path, then read with fs
const skillPath = import.meta.resolve("@openhands/extensions/skills/code-review/SKILL.md");
// .json: import directly
import marketplace from "@openhands/extensions/marketplaces/openhands-extensions.json" with { type: "json" };
```
请参阅 [`integrations/README.md`](integrations/README.md)、[`automations/README.md`](automations/README.md) 和 [`MIGRATION.md`](MIGRATION.md) 以获取特定于目录的详细信息。
### Python Package
集成目录也作为 Python package (`openhands-extensions`) 发布,以便 Python 服务读取与 JS 消费者相同的目录数据。唯一的真相来源是手工编写的 JSON 目录 `integrations/catalog/.json`;没有单独的 provider 文件,也没有需要维护的聚合目录 JSON。JS package (`@openhands/extensions/integrations`) 和 Python package 都读取相同的按集成划分的 JSON 文件,并提供并行的读取功能。
每个目录条目都可以带有 oauth 和/或 mcp/http `connectionOptions`。`supportsOauth` / `supportsMcp` 标志在 runtime 派生。使用 `listIntegrationCatalog({ mcp, oauth })` (JS) 或 `list_integration_catalog_models(mcp=, oauth=)` (Python) 按 connector 类型进行过滤 - 例如仅支持 oauth connector 的集成。
```
from openhands_extensions import (
list_integration_catalog_models, # listIntegrationCatalog({ mcp, oauth })
get_integration_catalog_entry_model, # getIntegrationCatalogEntry(id)
INTEGRATION_CATALOG_SNAPSHOT, # { integrations }
)
all_integrations = list_integration_catalog_models()
oauth_integrations = list_integration_catalog_models(oauth=True) # only entries with an oauth connector
mcp_integrations = list_integration_catalog_models(mcp=True) # only entries with an mcp connector
sample = get_integration_catalog_entry_model(all_integrations[0].id)
```
Python 函数返回经过验证的 `IntegrationCatalogEntry` 模型。原始字典访问器 `list_integration_catalog` / `get_integration_catalog_entry` 已在 0.10.0 中被弃用,并在 0.12.0 中被移除;请参阅 [`MIGRATION.md`](MIGRATION.md)。
从 git 安装(hub 后端以这种方式使用它):
```
pip install git+https://github.com/OpenHands/extensions.git
```
JS 和 Python 版本由 `release-please` 保持同步,并由 `tests/test_version_alignment.py` 进行保护。
## 扩展目录
本仓库包含 **2 个 marketplace(s)**,共有 **64 个扩展**(54 个 skills,10 个 plugins)。
### large-codebase
用于交互、改进和重构大型代码库的 OpenHands skills
**4 个扩展**(2 个 skills,2 个 plugins)
| 名称 | 类型 | 描述 | 命令 |
|------|------|-------------|----------|
| add-javadoc | skill | 为 Java 类和方法添加全面的 JavaDoc 文档。在记录 Java 代码、添加 API 文档时使用…… | — |
| cobol-modernization | plugin | 端到端的 COBOL 到 Java 迁移工作流。处理构建设置、移除大型机依赖项以及代码迁移…… | — |
| migration-scoring | plugin | 通过覆盖率、正确性和风格评分评估代码迁移质量。生成带有行动指导的执行报告…… | — |
| spark-version-upgrade | skill | 在主要版本之间升级 Apache Spark 应用程序(2.x→3.x、3.x→4.x)。涵盖构建文件、已弃用的 API、配置…… | — |
### openhands-extensions
OpenHands 的官方 skills 和 plugins —— 开源 AI 软件工程师。
**60 个扩展**(52 个 skills,8 个 plugins)
| 名称 | 类型 | 描述 | 命令 |
|------|------|-------------|----------|
| add-skill | skill | 将 GitHub 仓库中的 OpenHands skill 添加(导入)到当前工作区。 | — |
| agent-canvas-environment | skill | 在本地 Agent Canvas 环境中高效工作,包括本地 agent-server 认证、安全的工作区卫生…… | — |
| agent-creator | skill | 将基于文件的 sub-agents 创建为 Markdown 文件 —— 不需要 Python 代码。引导用户通过结构化访谈…… | `/agent-creator` |
| agent-memory | skill | 使用 AGENTS.md 文件持久化和检索特定于仓库的知识。当您想保存重要信息时使用…… | `/remember` |
| agent-sdk-builder | skill | 使用 OpenHands Software Agent SDK 构建自定义 AI agents 的引导工作流。当您想创建一个新……时使用 | `/agent-builder` |
| azure-devops | skill | 使用 AZURE_DEVOPS_TOKEN 环境变量与 Azure DevOps 仓库、pull requests 和 API 进行交互。在……时使用 | — |
| bitbucket | skill | Bitbucket 集成中心。检测仓库是位于 Bitbucket Cloud 还是 Bitbucket Data Center,并引导…… | — |
| bitbucket-cloud | skill | Bitbucket Cloud (bitbucket.org) 细节 —— 使用 BITBUCKET_TOKEN 进行身份验证,使用 REST API v2,workspace/repo_sl…… | — |
| bitbucket-data-center | skill | Bitbucket Data Center(自托管 Bitbucket Server)细节 —— 使用 BITBUCKET_DATA_CENTER_TOKEN 进行身份验证,使用 t…… | — |
| city-weather | plugin | 使用免费的 Open-Meteo API 获取任何城市的当前天气、时间和降水预报。提供斜杠命令…… | — |
| code-review | skill | 严格审查代码,重点关注数据结构、简洁性、安全性、实用性以及风险/安全评估。提供…… | `/codereview`, `/codereview-roasted` |
| code-simplifier | skill | 在三个维度上简化和优化代码 —— 代码重用、代码质量和效率 —— 同时保留所有…… | `/simplify` |
| datadog | skill | 使用 Datadog API 查询和分析 Datadog 日志、指标、APM traces 和 monitors。在生产环境调试时使用…… | — |
| deno | skill | 使用 Deno 进行常见的项目操作(tasks、run/test/lint/fmt 以及依赖管理)。 | — |
| discord | skill | 构建和自动化 Discord 集成(bots、webhooks、slash commands 和 REST API 工作流)。在用户需要时使用…… | — |
| docker | skill | 在容器环境中运行 Docker 命令,包括启动 Docker daemon 和管理 containers。使用…… | — |
| evidence-based-citations | skill | 使用官方、可验证的来源支持事实陈述和字段值。当用户要求填写字段、回答问题时使用…… | — |
| flarglebargle | skill | 一个测试技能,当响应魔法词 'flarglebargle' 时会返回一句赞美。用于测试技能激活和…… | — |
| frontend-design | skill | 创建具有高设计质量的独特、生产级前端界面。当用户要求时使用此技能…… | — |
| github | skill | 使用 GITHUB_TOKEN 环境变量与 GitHub 仓库、pull requests、issues 和 workflows 进行交互…… | — |
| github-actions | skill | 创建、调试和测试 GitHub Actions workflows 和自定义 actions。在构建 CI/CD pipelines、自动化 wo……时使用 | — |
| github-pr-review | skill | 通过一次 API 调用将带有 inline comments/suggestions 的结构化 PR 审查发布到 GitHub。 | `/github-pr-review` |
| github-pr-reviewer | skill | 创建一个自动化程序,在 GitHub pull requests 被打开或更新时对其进行审查。检查 diff、changed files…… | `/pr-reviewer:setup` |
| github-repo-monitor | skill | 创建一个 cron 自动化程序,轮询 GitHub 仓库以获取包含可配置触发器的 issue 和 PR 评论…… | `/github-monitor:poll` |
| gitlab | skill | 使用 GITLAB_TOKEN 环境变量与 GitLab 仓库、merge requests 和 API 进行交互。工作时使用…… | — |
| incident-retrospective | skill | 创建一个自动化程序,通过从 Slack 收集 incident-channel 消息、收集信息来起草事故回顾…… | `/incident-retro:setup` |
| iterate | skill | 迭代 GitHub pull request —— 驱动它通过 CI、代码审查和 QA,直到达到可合并状态。监控状态,修复…… | `/iterate`, `/verify`, `/babysit` |
| jira-issue-to-pr | skill | 部署一个基于 cron 的 OpenHands 自动化程序,监视 Jira Cloud 项目中以可配置标签标记的 issues…… | — |
| jupyter | skill | 以编程方式读取、修改、执行和转换 Jupyter notebooks。在处理 .ipynb 文件用于 data science 时使用…… | — |
| kubernetes | skill | 使用 KIND (Kubernetes IN Docker) 设置和管理本地 Kubernetes clusters。在测试 Kubernetes 应用程序时使用…… | — |
| learn-from-code-review | skill | 将来自 GitHub PRs 的代码审查反馈提炼为可重用的 skills 和指南。当用户要求从代码审查中学习时使用…… | `/learn-from-reviews` |
| linear | skill | 与 Linear 项目管理工具交互 —— 使用 Linear GraphQL API 查询 issues、更新状态、创建 tickets。 | — |
| linear-triage | skill | 创建一个自动化程序,通过检查标题、描述、团队和最近的相关 issues 来 triage 新的 Linear issues…… | `/linear-triage:setup` |
| magic-test | plugin | 一个简单的测试 plugin,用于验证 plugin 加载。在魔法词(alakazam、abracadabra)上触发并返回一个特殊…… | — |
| notion | skill | 使用 Notion API 创建、搜索和更新 Notion 页面/数据库。用于记录工作、生成 runbooks…… | — |
| npm | skill | 通过管道传递确认信息,在非交互式环境中处理 npm package 安装。在安装 Node.js 时使用…… | — |
| onboarding | plugin | 评估仓库的 agent-ready 程度,涵盖五个支柱,提出高影响力的修复建议,并生成特定于仓库的 AGENTS.m…… | — |
| openhands | plugin | 统一的 OpenHands plugin —— 将 Cloud CLI、REST API (openhands-api) 和 Automations (openhands-automation) 打包成…… | `/openhands-cloud` |
| openhands-api | skill | 使用 OpenHands Cloud REST API (V1) 和 agent-server APIs 创建和管理 Cloud 或本地后端对话…… | — |
| openhands-automation | skill | 创建和管理 OpenHands automations —— 在 sandboxes 中运行的计划任务。使用 prompt 预设创建自动化…… | `/automation:create` |
| openhands-sdk | skill | OpenHands Software Agent SDK 的参考技能 —— 构建具有自定义 tools、LLM 配置、对话的 AI agents…… | `/sdk` |
| pdflatex | skill | 在 Linux 上安装并使用 pdflatex 将 LaTeX 文档编译为 PDFs。在生成学术论文、研究时使用…… | — |
| plain-english-content | skill | 以简明英语内容风格撰写和编辑清晰、易懂的散文:主动语态、前置内容、句子…… | — |
| pr-review | plugin | 自动化 PR 代码审查 —— 分析 diffs 并通过 GitHub API 发布 inline review comments。 | — |
| prd | skill | 通过交互式澄清问题工作流为新功能生成产品需求文档 (PRD)。…… | `/prd` |
| qa-changes | plugin | 通过实际运行代码来验证 pull request 更改 —— 设置环境、测试更改的行为…… | — |
| release-notes | plugin | 从 git 历史记录生成一致、结构良好的发布说明。生成包含重大更改的分类变更日志…… | `/release-notes` |
| research-brief | skill | 创建一个定期自动化程序,使用 Tavily 网络搜索研究主题,并将结构化摘要发布到 Not…… | `/research-brief:setup` |
| security | skill | 用于安全编码、身份验证、授权和数据保护的安全最佳实践。在开发前端时使用…… | — |
| skill-creator | skill | 创建有效 skills 的指南。当用户想要创建新 skill(或更新现有的……)时应使用此技能 | — |
| slack-channel-monitor | skill | 创建一个 cron 自动化程序,每分钟轮询多达 10 个 频道,并在出现……时启动 OpenHands 对话。 | `/slack-monitor:poll` |
| slack-standup-digest | skill | 创建一个自动化程序,从 Slack 生成异步 standup 摘要。搜索选定频道自……以来的消息。 | `/standup-digest:setup` |
| ssh | skill | 建立和管理与远程机器的 SSH 连接,包括密钥生成、配置和文件传输…… | — |
| swift-linux | skill | 在 Debian Linux 上安装和配置 Swift 编程语言以进行服务器端开发。在构建 Swift……时使用 | — |
| technical-writing | skill | 以流畅、直接、对话式的散文撰写和修改技术说明,保持简洁而不变得…… | — |
| theme-factory | skill | 使用主题对 artifacts 进行样式设置的工具包。这些 artifacts 可以是幻灯片、文档、报告、HTML 着陆页等…… | — |
| upstream-fork-sync | skill | 保持长期 fork 与其 upstream 同步。创建一个 cron 自动化程序,获取 upstream 更改、rebase 本地…… | `/upstream-fork-sync:setup` |
| uv | skill | 使用 uv 进行常见的项目、依赖和环境操作。 | — |
| vercel | skill | 在 Vercel 上部署和管理应用程序,包括预览部署和部署保护。 | — |
| vulnerability-remediation | plugin | 自动化安全漏洞扫描和 AI 驱动的修复。扫描仓库,当未发现问题时跳过…… | — |
## Agent 指南
请参阅 [`AGENTS.md`](AGENTS.md) 了解 agent 在编辑/添加 skills 和 plugins 时应遵循的规则。
### 感谢我们的贡献者
### 感谢我们的贡献者
标签:AI智能体, GNU通用公共许可证, Homebrew安装, MITM代理, Node.js, OpenHands, 插件扩展, 暗色界面, 网络调试, 自动化, 逆向工具, 防御加固