<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-to-port-an-existing-skill-from-hermes-agent-to-opencode-mqpxkiaey" -->

---
title: How to Port an Existing Skill from Hermes Agent to OpenCode
description: A practical walkthrough for porting an existing agent skill from Hermes Agent to OpenCode, since both use the same SKILL.md format with frontmatter plus...
canonical: https://daily.dev/posts/how-to-port-an-existing-skill-from-hermes-agent-to-opencode-mqpxkiaey
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How to Port an Existing Skill from Hermes Agent to OpenCode | daily.dev
og:description: A practical walkthrough for porting an existing agent skill from Hermes Agent to OpenCode, since both use the same SKILL.md format with frontmatter plus...
og:url: https://daily.dev/posts/how-to-port-an-existing-skill-from-hermes-agent-to-opencode-mqpxkiaey
og:image: https://api.daily.dev/og/posts/mqPxkiaeY.png
og:image:alt: How to Port an Existing Skill from Hermes Agent to OpenCode
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Port an Existing Skill from Hermes Agent to OpenCode

**[Dev Genius](https://daily.dev/sources/devgenius)** · 4 min read · 1 upvotes · 0 comments

## Summary

A practical walkthrough for porting an existing agent skill from Hermes Agent to OpenCode, since both use the same SKILL.md format with frontmatter plus optional references/ and scripts/ folders. It covers copying the skill folder, rewriting frontmatter fields (name, description, license, optional metadata and compatibility), fixing hard-coded paths and dependencies (since OpenCode only loads skills from within the project worktree), and testing the ported skill by starting a new OpenCode session and checking trigger words. It also touches on licensing etiquette when republishing a ported skill to ClawHub.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.devgenius.io/how-to-port-an-existing-skill-from-hermes-agent-to-opencode-f25ac520b7e5>

## Questions this post answers

### How do I port a skill from Hermes Agent to OpenCode?

Copy the skill folder into .opencode/skills/ or ~/.config/opencode/skills/, rename it to avoid confusion with the original, and keep the description and license fields. Add an optional compatibility: opencode field and a metadata block crediting the original author, then rewrite the description with trigger keywords so OpenCode's skill router picks it up, since the router matches the description text rather than the filename.

_Developers building agent skill libraries can track opencode workflow guides like this on daily.dev._

### Why does my ported OpenCode skill fail to load its referenced files?

OpenCode only loads skills from inside the project worktree, so any hard-coded paths pointing outside the repo, like a Hermes Agent skill's ~/.hermes/... references, will break after porting. Relative references such as references/layouts/bento-grid.md keep working as long as the whole folder is copied, not just the SKILL.md file, so hard-coded paths should be replaced with relative paths or environment variables.

_Anyone debugging agent skill path errors can find porting fixes like this on daily.dev._

### Why isn't my custom skill triggering in OpenCode?

The skill router matches against the text in the description frontmatter field, not the filename or folder name, so a vague description means the skill never gets picked up. Fix this by tightening the description to include the exact action verbs and keywords a user would type, in multiple languages if relevant, then start a new OpenCode session since skills load at session start and are not hot-reloaded.

_Developers tuning agent skill triggers can find troubleshooting tips like this on daily.dev._

## Similar posts on daily.dev

- [Introducing Skills Registry](https://daily.dev/posts/introducing-skills-registry-spriko7os) · portkey · 1 upvotes · 0 comments
- [How to Build a Production-Ready Claude Code Skill](https://daily.dev/posts/how-to-build-a-production-ready-claude-code-skill-lpjaqohp3) · Towards Data Science · 3 upvotes · 1 comments
- [Write a Claude Code Skill: 2026 Developer Guide](https://daily.dev/posts/write-a-claude-code-skill-2026-developer-guide-bl6gfoqoj) · Alex CloudStar · 0 upvotes · 0 comments
- [How to Build Your Own Claude Code Skill](https://daily.dev/posts/how-to-build-your-own-claude-code-skill-xk4dwhksx) · freeCodeCamp · 12 upvotes · 0 comments
- [Packaging skills in a plugin, this time for GitHub Copilot CLI](https://daily.dev/posts/packaging-skills-in-a-plugin-this-time-for-github-copilot-cli-hjfsfk4hg) · The Art of Simplicity · 0 upvotes · 0 comments

---

Tags: [#ai-agents](https://daily.dev/tags/ai-agents), [#opencode](https://daily.dev/tags/opencode)

[View this post on daily.dev](https://daily.dev/posts/how-to-port-an-existing-skill-from-hermes-agent-to-opencode-mqpxkiaey)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How to Port an Existing Skill from Hermes Agent to OpenCode","url":"https://daily.dev/posts/how-to-port-an-existing-skill-from-hermes-agent-to-opencode-mqpxkiaey","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-to-port-an-existing-skill-from-hermes-agent-to-opencode-mqpxkiaey"},"datePublished":"2026-08-24T09:49:52.234Z","dateModified":"2026-08-24T09:50:20.111Z","description":"A practical walkthrough for porting an existing agent skill from Hermes Agent to OpenCode, since both use the same SKILL.md format with frontmatter plus...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/62e7420c74cf2ea47b898107e8743c4d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/62e7420c74cf2ea47b898107e8743c4d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Dev Genius","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Dev Genius","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/a79144d7517043e7803ed562e45a99df","url":"https://daily.dev/sources/devgenius"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/how-to-port-an-existing-skill-from-hermes-agent-to-opencode-mqpxkiaey","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ai-agents,opencode","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Dev Genius","item":"https://daily.dev/sources/devgenius"},{"@type":"ListItem","position":3,"name":"How to Port an Existing Skill from Hermes Agent to OpenCode"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/how-to-port-an-existing-skill-from-hermes-agent-to-opencode-mqpxkiaey#faq","mainEntity":[{"@type":"Question","name":"How do I port a skill from Hermes Agent to OpenCode?","acceptedAnswer":{"@type":"Answer","text":"Copy the skill folder into .opencode/skills/ or ~/.config/opencode/skills/, rename it to avoid confusion with the original, and keep the description and license fields. Add an optional compatibility: opencode field and a metadata block crediting the original author, then rewrite the description with trigger keywords so OpenCode's skill router picks it up, since the router matches the description text rather than the filename. Developers building agent skill libraries can track opencode workflow guides like this on daily.dev."}},{"@type":"Question","name":"Why does my ported OpenCode skill fail to load its referenced files?","acceptedAnswer":{"@type":"Answer","text":"OpenCode only loads skills from inside the project worktree, so any hard-coded paths pointing outside the repo, like a Hermes Agent skill's ~/.hermes/... references, will break after porting. Relative references such as references/layouts/bento-grid.md keep working as long as the whole folder is copied, not just the SKILL.md file, so hard-coded paths should be replaced with relative paths or environment variables. Anyone debugging agent skill path errors can find porting fixes like this on daily.dev."}},{"@type":"Question","name":"Why isn't my custom skill triggering in OpenCode?","acceptedAnswer":{"@type":"Answer","text":"The skill router matches against the text in the description frontmatter field, not the filename or folder name, so a vague description means the skill never gets picked up. Fix this by tightening the description to include the exact action verbs and keywords a user would type, in multiple languages if relevant, then start a new OpenCode session since skills load at session start and are not hot-reloaded. Developers tuning agent skill triggers can find troubleshooting tips like this on daily.dev."}}]}
```

