calm-artist-7206
02/21/2026, 4:15 AMuv
Assume that the user has installed the CLI with uv tool packagename or so.
Goal: figure out and write a complete skill for how to modify yourself in response to user’s desire. Understand: openhands agents run in the sdk, via the cli, and the skill will tell them what they need to know in order to modify themselves, and then at the next restart they would load the modified versions.
Think deeply in how many important ways this can happen, and list them, then write the skill sections / files accordingly. Note that it might be that they need to modify code from the sdk or from the cli, but it’s also very important to detect and decide if they maybe don’t need code modifications in response to user’s query, and instead write a skill or write a hook (our main extensibility mechanisms) or write a plugin (also an extensibility mechanism)
Open PR to extensions/ with this skill proposal.
Take your time. Be throughout. Investigate each, you have time.nutritious-balloon-65098
02/21/2026, 4:16 AMnutritious-balloon-65098
02/21/2026, 4:26 AMOpenHands-CLI, software-agent-sdk, and extensions locally.
- [x] Reviewed the AgentSkills spec at <http://agentskills.io|agentskills.io> and followed its SKILL.md + directory-structure requirements.
- [x] Investigated the uv build/install model in CLI + SDK (including the uv tool install scenario).
- [x] Wrote a complete skill in OpenHands/extensions describing how to “modify yourself” by selecting the right extensibility mechanism (skill vs hook vs plugin vs MCP vs code change), including restart/reload behavior and uv workflows.
- [x] Registered the skill in .plugin/marketplace.json.
- [x] Kept changes concise (only new skill directory + marketplace registration).
- [x] Pushed the branch and opened a PR to extensions.
### Already pushed / PR
The changes were pushed to skill/modify-openhands and the PR is open: https://github.com/OpenHands/extensions/pull/66nutritious-balloon-65098
02/21/2026, 5:43 AMskills/modify-openhands/SKILL.md
- Reduced the uv section to a high-level decision guide and pointed detailed content to references/INSTALLATION_MODES.md (keeps progressive disclosure tighter).
- Made MCP config locations explicit:
- OpenHands-CLI: ~/.openhands/mcp.json (or $OPENHANDS_PERSISTENCE_DIR/mcp.json)
- SDK skills/plugins: per-skill/per-plugin .mcp.json inside the skill/plugin directory
- Reworded the “clarify” section to avoid unnecessary “one at a time” ceremony (“skip questions already answered”).
- skills/modify-openhands/references/TEMPLATES.md
- Replaced the unsafe “grep raw JSON” hook template with a jq-based example that parses .tool_input.command and outputs a proper {decision: allow|deny} response consistent with the SDK hook executor.
### Checklist (requested)
- [x] Read all PR feedback (review + all inline comments)
- [x] Addressed each inline thread with a direct reply
- [x] Posted an overall review response after pushing changes
- [x] Changes are concise: only touched the two files raised in review; no unrelated edits
- [x] Pushed updates to the remote PR branch
PR: https://github.com/OpenHands/extensions/pull/66calm-artist-7206
02/21/2026, 6:01 AMnutritious-balloon-65098
02/21/2026, 6:01 AMnutritious-balloon-65098
02/21/2026, 6:02 AMskills/modify-openhands/ → skills/adapt-yourself/ (no duplicates left behind).
- [x] Updated the skill’s SKILL.md frontmatter name: to adapt-yourself and adjusted the description accordingly.
- [x] Updated .plugin/marketplace.json to register adapt-yourself (updated name, source, and description).
- [x] Validated .plugin/marketplace.json parses (python -m json.tool ...).
- [x] Updated the PR title/body to reflect the new skill name.
- [x] Pushed changes to the existing PR branch (skill/modify-openhands) so the PR stays the same.
Conciseness check:
- Only touched files required for the rename: the moved skill files + marketplace entry + PR metadata. No unrelated edits.
Code state:
- Rename commit pushed: 3631d98 (“skills: rename modify-openhands to adapt-yourself”).calm-artist-7206
02/21/2026, 6:26 AMnutritious-balloon-65098
02/21/2026, 6:26 AMnutritious-balloon-65098
02/21/2026, 6:28 AMgit pull --rebase on the PR branch) to make sure my edits were applied on top of your latest changes.
- Removed all references to the legacy skill location (.openhands/skills) and renumbered the “Where to put it” list in:
- skills/adapt-yourself/SKILL.md (now only .agents/skills + ~/.agents/skills)
- skills/adapt-yourself/references/ARCHITECTURE.md (removed legacy path mentions there too)
### Checklist against your request
- [x] Legacy path removed (it’s legacy)
- [x] Renumbering fixed (no missing/incorrect numbering)
- [x] No other unrelated edits introduced
- [x] Changes pushed to the PR branch
### Where it landed
- Pushed in commit: 3c3536c
- PR remains: https://github.com/OpenHands/extensions/pull/66 (I also left a comment on the PR describing the cleanup)nutritious-balloon-65098
02/21/2026, 6:45 AMskills/modify-openhands/ → skills/adapt-yourself/
- Frontmatter: name: adapt-yourself
- Registry: updated .plugin/marketplace.json entry (name, source, description)
- PR title/body updated accordingly
- [x] Removed legacy paths (because they’re legacy) and renumbered:
- In `skills/adapt-yourself/SKILL.md`: removed .openhands/skills/..., renumbered list to only .agents/skills and ~/.agents/skills
- In `skills/adapt-yourself/references/ARCHITECTURE.md`: removed legacy .openhands/skills and ~/.openhands/skills mentions
- [x] Made MCP guidance more restrictive/explicit, per your guidance:
- In skills/adapt-yourself/SKILL.md section “Add tools via MCP (.mcp.json)”: now recommends MCP only when the user explicitly asks for an MCP server or when we can point to an existing MCP server in docs/official repos; otherwise it directs toward a skill or building/installing an MCP server (or code/tool change).
### Conciseness / no extraneous changes
- Changes were confined to the skill docs and marketplace entry only; no unrelated refactors.
- I also did the requested git pull --rebase mid-stream to incorporate your tweaks before pushing.
### Pushed changes (remote branch updated)
All updates are already pushed to the PR branch and reflected in PR #66:
https://github.com/OpenHands/extensions/pull/66nutritious-balloon-65098
02/21/2026, 6:53 AMgit pull --rebase), then applied the requested fix to the Verification checklist in skills/adapt-yourself/SKILL.md.
- Adjusted wording so the agent doesn’t claim it can restart itself:
- It now instructs the agent to ask the user to start a fresh conversation / restart only if needed.
- Clarified /skills is a user command in the OpenHands CLI TUI (so the user runs it).
- Clarified the “test prompt” is something the user sends.
Checklist against your request:
- [x] Removed “agent restarts OpenHands” implication; replaced with “ask the user”.
- [x] Clarified /skills is for the user (CLI TUI).
- [x] Clarified test prompt is user-driven.
- [x] Kept changes minimal: only touched the verification/restart wording block in skills/adapt-yourself/SKILL.md.
Pushed to the existing PR branch:
- Commit: 682ba1e (“skills: fix verification checklist wording”)
- PR: https://github.com/OpenHands/extensions/pull/66nutritious-balloon-65098
02/21/2026, 6:58 AMgit pull --rebase and then updated the adapt-yourself skill to replace “product(s)” → “project(s)” everywhere it appeared.
- skills/adapt-yourself/SKILL.md
- “that project’s docs …”
- “MCP server configuration is project-specific …”
- skills/adapt-yourself/references/ARCHITECTURE.md
- “depending on project / SDK config …”
- “location depends on host project …”
### Checklist against your request
- [x] Did a git pull --rebase before editing.
- [x] Replaced “products” with “projects” (and also removed remaining singular “product” to keep the wording consistent).
- [x] Changes are concise (only text substitutions in the relevant skill + reference file).
- [x] Pushed the changes to the existing PR branch.
### Pushed commit
- 4e5e8ca — skills: prefer projects over products wording
PR remains: https://github.com/OpenHands/extensions/pull/66