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, 插件扩展, 暗色界面, 网络调试, 自动化, 逆向工具, 防御加固