OpenHands supports the Agent Skills specification and adds optional features such as keyword triggers and path-triggered rules. Other Agent Skills clients may ignore these OpenHands extensions.
Choose the Right Mechanism
Use
AGENTS.md for short, repository-wide conventions. Use SKILL.md for focused knowledge that is needed only for some tasks. A legacy .md skill without a trigger is always loaded in full; prefer AGENTS.md for that use case so its purpose is clear.
OpenHands also recognizes CLAUDE.md and GEMINI.md as model-specific repository context.
How Progressive Disclosure Works
Agent Skills use three levels of context:- Discovery: OpenHands loads each skill’s
nameanddescriptioninto the available-skills catalog. - Invocation: When a task matches the description, the agent invokes the skill by name and receives the full
SKILL.mdinstructions. - Resources: The agent reads referenced files from
scripts/,references/, orassets/only when needed.
triggersinjects the skill when a keyword or command appears in a user message. The skill is still available for model invocation.pathsturns the file into a path-triggered rule. The rule is not advertised to the model and is injected once per conversation when a matching file is read, edited, or created. If a file declares bothpathsandtriggers,pathstakes precedence.
Always-on content occupies the conversation context from the beginning. Keep
AGENTS.md concise and move lengthy or specialized instructions into on-demand skills and references.Official Skill Registry
The official global skill registry is maintained at github.com/OpenHands/extensions. This repository contains community-shared skills that can be used by all OpenHands agents. You can browse available skills, contribute your own, and learn from examples created by the community.Five-Minute Setup
Add concise repository guidance and one on-demand skill:AGENTS.md
.agents/skills/release-checklist/SKILL.md
name and description are required. The name must match the parent directory and use lowercase letters, numbers, and hyphens. See Creating Skills for the complete format and authoring guidance.
Start a new conversation after changing skill files so OpenHands rebuilds the available-skills catalog.
Skill Locations and Precedence
OpenHands can combine skills from several scopes:
Both the legacy
.openhands/skills/ and .openhands/microagents/ directories remain supported, but use .agents/skills/ for new skills. This location follows the Agent Skills standard and makes skills portable across compatible agent tools.
Name conflicts are resolved by precedence rather than by merging skill bodies. For automatically loaded sources, project skills override user skills, and user skills override public skills. Within a project or user scope, .agents/skills/ takes precedence over the legacy directories.
In the SDK, explicitly supplied skills override automatically loaded user and public skills. Project skills are resolved from the conversation workspace and override a same-named skill from another source. See the SDK Skills Guide for loader configuration.
OpenHands-Specific Skill Types
- Repository Context provides always-on project instructions.
- Keyword-Triggered Skills activate when a user message contains configured terms.
- Path-Triggered Rules apply deterministic instructions to matching files.
- Organization and User Skills share guidance across repositories.
- Global Skills are reusable skills published through the OpenHands extensions registry.
Using Skills Across OpenHands
See Customize and Settings for Agent Canvas and Plugin Launcher for loading a Git-hosted skill into an OpenHands Cloud conversation.
Next Steps
- Add an Existing Skill
- Create a Skill
- Browse the OpenHands Skills Registry
- Bundle Skills in a Plugin
- Monitor and Improve Skills
Learn More
- For SDK integration: See SDK Skills Guide
- For architecture details: See Skills Architecture
- For specific skill types: See Repository Skills, Keyword Skills, Path-Triggered Rules, Organization Skills, and Global Skills

