bitter-advantage-99421
12/07/2025, 3:21 PM---
triggers:
- /xyz
- xyz
---
The user has said the trigger word. Respond with "it is working!"
Also tried to rename the folder from "skills" to "microagents" but same resultlimited-student-10747
12/07/2025, 4:53 PMnutritious-balloon-65098
12/07/2025, 4:53 PMnutritious-balloon-65098
12/07/2025, 5:01 PMcli-mode.mdx) had zero mention of skills
2. The skills overview showed conflicting information about file locations
3. No troubleshooting guidance existed for skill issues
4. The "microagents" vs "skills" naming change wasn't clearly documented
Changes Made
I've updated 4 documentation files to completely address these gaps:
1. cli-mode.mdx - Added "Using Skills with CLI" Section
• ✅ Explains both skill locations:
◦ ~/.openhands/skills/ for user-level skills (all conversations)
◦ .openhands/skills/ for repository-level skills (current directory)
• ✅ Examples of general and keyword-triggered skills with proper syntax
• ✅ Verification steps for checking if skills are working
• ✅ Clear note: Use folder name skills NOT microagents
2. cli-settings.mdx - Added Skills Configuration Section
• ✅ Default skill locations documented
• ✅ Environment variables: AGENT_ENABLE_PROMPT_EXTENSIONS and AGENT_DISABLED_MICROAGENTS
• ✅ Link to troubleshooting guide
3. overview/skills.mdx - Updated Support Matrix
• ✅ CLI row now shows both user-level and repo-level locations explicitly
• ✅ Links to the new CLI skills documentation section
4. overview/skills/keyword.mdx - Added Comprehensive Troubleshooting
• ✅ 7-step troubleshooting guide covering:
◦ File location verification
◦ Frontmatter format validation (with correct/incorrect examples)
◦ Skills enablement checks
◦ Trigger keyword best practices
◦ Common mistakes including the microagents folder issue
◦ Step-by-step testing procedure with minimal test skill
Answer to Your Question
Why your skills weren't working:
Your file format was correct! The issues were likely:
1. ✅ File location: ~/.openhands/skills/ is the correct location for user-level skills
2. ✅ Folder name: Should be skills not microagents (you tried the old name)
3. ⚠️ Possible trigger matching: The triggers might not have matched your input exactly (case-sensitive)
4. ⚠️ Version compatibility: Ensure your CLI version 1.0.7 supports skills (it should)
The documentation now provides clear guidance that would have prevented this confusion.
-------------------------
Next Steps - What would you like me to do?
The changes are committed locally. Would you like me to:
1. Push these changes to a new branch and create a pull request for the OpenHands/docs repository?
2. Keep the changes local for now so you can review them further?
3. Something else?
All changes are ready to go - just let me know how you'd like to proceed!
<sub>View full conversation</sub>limited-student-10747
12/07/2025, 5:06 PMnutritious-balloon-65098
12/07/2025, 5:06 PMnutritious-balloon-65098
12/07/2025, 5:20 PM~/.openhands/skills/xyz.md
---
triggers:
- /xyz
- xyz
---
The user has said the trigger word. Respond with "it is working!"
Evidence of Successful Skill Activation
When I ran openhands --always-approve and typed "xyz", the CLI output showed:
Activated Skills: xyz
Prompt Extension based on Agent Context:
<EXTRA_INFO>
The following information has been included based on a keyword match for "xyz".
It may or may not be relevant to the user's request.
The user has said the trigger word. Respond with "it is working!"
</EXTRA_INFO>
This proves the skill system is fully functional:
• ✅ Skill file loaded from ~/.openhands/skills/
• ✅ Keyword "xyz" detected and matched
• ✅ Skill content injected into the LLM prompt
• ✅ System correctly identifies both /xyz and xyz triggers
-------------------------
🤔 Why You Might Not Have Seen Expected Behavior
Based on my testing, here are the likely reasons:
1. LLM Model Capability (Most Likely)
You mentioned using "GPT-OSS-20B" via OpenRouter. Smaller open-source models (< 20B parameters) may not consistently follow instructions, even when the skill is properly activated. The skill system injects the instruction into the prompt, but whether the LLM actually follows it depends on the model's capabilities.
The skill system can only inject instructions—it cannot force the LLM to follow them.
2. No Visible Confirmation
The CLI doesn't show users that a skill was activated. Without checking debug logs or conversation history, you'd only know if the LLM's response followed the skill instructions.
3. Skills Are "Soft Prompts"
Skills aren't hard-coded responses—they're guidance injected into the LLM's context. The LLM still generates responses naturally and might:
• Acknowledge but not exactly follow the instruction
• Interpret it differently based on other context
• Combine the skill guidance with its own reasoning
-------------------------
📋 Recommendations
For You to Try:
1. Test with a more capable LLM (GPT-4, Claude Sonnet, Gemini Pro) to verify the skill is being used
2. Enable debug logging: export DEBUG=true before running openhands
3. Check conversation history: Look in ~/.openhands/conversations/ to see the full prompt with skill injection
4. Make instructions more explicit in your skill file:
You MUST respond with EXACTLY this text and nothing else: "it is working!"
-------------------------
📄 Detailed Report
I've created a comprehensive findings report at /workspace/SKILL_REPRODUCTION_FINDINGS.md that includes:
• Complete test environment details
• Step-by-step reproduction process
• Technical verification through code analysis
• Recommendations for the OpenHands development team
• Test artifacts and logs
-------------------------
💡 Previous Documentation Updates
In the earlier session, I already updated the CLI documentation to add a comprehensive "Using Skills with CLI" section that clarifies how skills work. These changes were committed to branch openhands-workspace-rb86hg75.
No new code changes were made in this session - this was purely an investigation and reproduction effort.
-------------------------
✨ Bottom Line
Skills are working as designed in CLI 1.4.1. The core issue is likely that your LLM model (GPT-OSS-20B) didn't follow the skill's instructions, not that the skill wasn't loaded or triggered. Try testing with a more capable model like GPT-4 or Claude to confirm the skill system is working for you.
Would you like me to push the previous documentation updates to GitHub and create a pull request?
<sub>View full conversation</sub>limited-student-10747
12/07/2025, 5:26 PMnutritious-balloon-65098
12/07/2025, 5:26 PMnutritious-balloon-65098
12/07/2025, 5:33 PMca220e2 (6 days later)
• Nov 17, 2025+: CLI v1.2.0+ released - Skills working
Technical Details:
In v1.0.7, the AgentStore.load() method created an AgentContext but didn't load any skills - neither from ~/.openhands/skills/ nor .openhands/skills/. The feature was added 6 days after your version was released.
Solution: Upgrade to CLI v1.2.0 or later:
uv tool upgrade openhands --python 3.12
openhands --version # Should show 1.4.1 or later
I tested with CLI v1.4.1 and confirmed skills work correctly - trigger-based skills are loaded and activated as expected.
Documentation Changes
Simplified CLI skills section in `cli-mode.mdx`:
• ✅ Reduced from 65 lines to 11 lines (removed 54 lines of redundant content)
• ✅ Kept essential information about user/repo skill locations
• ✅ Added links to comprehensive skills documentation
• ✅ No version warning (as requested)
Changes:
• Removed verbose examples (already covered in /overview/skills/)
• Removed troubleshooting steps (covered in comprehensive docs)
• Replaced with concise summary and navigation links
Pull Request
Draft PR created: https://github.com/OpenHands/docs/pull/156
The PR includes:
• Documentation simplification
• Full root cause analysis of the v1.0.7 issue
• Git history investigation details
-------------------------
Bottom line: This wasn't a configuration error - skills genuinely didn't work in your version. Upgrading to the current CLI version will resolve the issue.
<sub>View full conversation</sub>limited-student-10747
12/07/2025, 5:34 PMbitter-advantage-99421
12/07/2025, 9:46 PM