upload-skills/
Skills are Markdown files with YAML frontmatter that tell the agent how to do something. Normally you commit them to a repo’s .openhands/ directory. This example shows a programmatic alternative: start a sandbox, upload your skills directory into it, then attach a conversation that inherits them.
How It Works
/api/files/upload_file endpoint accepts a multipart POST with the file content and a destination path. Skills are uploaded to ~/.openhands/skills/ by default (the location OpenHands checks at conversation start).
Quickstart
Configuration Options
Skill Format
Each skill is a directory containing aSKILL.md with YAML frontmatter:
triggers list activates the skill automatically when matching keywords appear in a user message.
Reusing the Sandbox
Once skills are uploaded, you can reuse that sandbox for subsequent conversations so they all inherit the skills automatically. Control this with the Sandbox Grouping Strategy in Settings → Application:- No Grouping (default): each new conversation gets a fresh sandbox — skills won’t be present
- Any grouping strategy (e.g., Group by Newest): new conversations join the existing, skills-loaded sandbox
A sandbox must still be running for new conversations to join it. If the seeded sandbox has gone inactive, start a new one with
--sandbox-id to wake it up.See Also
- Clone and Attach — Another way to prepare a sandbox before attaching a conversation
- Skills — Full documentation on creating and using skills

