How to Integrate Claude Skills into AI Coding Agents with OpenSkills
This guide walks through installing the OpenSkills CLI, syncing Claude Skills to AI coding agents such as Qoder, Cursor, Trae, and Windsurf, explains the underlying skill system, compares Claude Code and OpenSkills implementations, and details command‑line options and loading priorities for seamless integration.
Installation and Usage
Requirements
Node.js version 20.6+
Git (for cloning repositories)
Install the OpenSkills CLI globally: npm i -g openskills Install a skill from the Anthropic marketplace (project‑level, stored in ./.claude/skills): openskills install anthropics/skills Install a skill globally (stored in ~/.claude/skills): openskills install anthropics/skills --global Install a skill from another GitHub repository or a local directory:
# From another GitHub repo
openskills install your-org/custom-skills
# From a local path
openskills install /path/to/my-skillSynchronise installed skills to an AI‑coding agent’s rule file (default AGENTS.md in the current directory):
# Default location
openskills sync
# Custom location (the file is created if it does not exist)
openskills sync --output .ruler/AGENTS.md
openskills sync -o custom-rules.mdIntegrating Claude Skills with Other AI Coding Agents (e.g., Qoder)
Step 1 – Place the skill in the agent’s skill directory ( ~/.agent/skills/) or let openskills perform the placement using the --global or --universal flags.
Step 2 – Generate the rule file that the agent reads: openskills sync --output .qoder/rules/AGENTS.md After synchronisation the skill is permanently available. For example, asking Qoder to “convert the current project’s README.md to PDF using the pdf skill” triggers the rule in AGENTS.md, which invokes the pdf skill and writes the PDF file to the project directory. The same workflow works for agents such as Cursor, Trae, and Windsurf.
Skill Mechanism
Claude built‑in skill system
Claude embeds a system prompt that lists available skills in XML. The prompt contains two sections: skills_instructions (how to invoke a skill) and available_skills (metadata for each skill).
<skills_instructions>
When users ask you to perform tasks, check if any of the available skills below can help complete the task more effectively.
How to use skills:
- Invoke a skill by name only (no arguments)
- When a skill is invoked, a message "{name} skill is loading" is shown
- The skill’s prompt expands with detailed instructions
Important:
- Only use skills listed in <available_skills>
- Do not invoke a skill that is already running
</skills_instructions>
<available_skills>
<skill>
<name>pdf</name>
<description>Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms...</description>
<location>plugin</location>
</skill>
<skill>
<name>xlsx</name>
<description>Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis...</description>
<location>plugin</location>
</skill>
</available_skills>When a user requests “extract data from PDF”, Claude follows these steps:
Detect the request.
Scan <available_skills> and find the pdf entry.
Invoke Skill("pdf") as a tool call.
Load the corresponding SKILL.md content into the agent context.
Execute the task according to the skill description.
OpenSkills implementation
OpenSkills stores the same XML structure in an AGENT.md file. The CLI reads, installs, and synchronises these definitions.
<skills_system priority="1">
## Available Skills
<usage>
When users ask you to perform tasks, check if any of the available skills below can help complete the task more effectively.
How to use skills:
- Invoke: Bash("openskills read <skill-name>")
- The skill content will load with detailed instructions
- Base directory is provided for resolving bundled resources
Usage notes:
- Only use skills listed in <available_skills>
- Do not invoke a skill that is already loaded in your context
</usage>
<available_skills>
<skill>
<name>pdf</name>
<description>Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms...</description>
<location>project</location>
</skill>
<skill>
<name>xlsx</name>
<description>Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis...</description>
<location>project</location>
</skill>
</available_skills>
</skills_system>For an agent the workflow is identical, except the invocation command is: openskills read pdf Execution steps:
User asks “extract data from PDF”.
Claude scans <available_skills> and finds the pdf entry.
The agent runs openskills read pdf via a Bash tool call. SKILL.md is loaded into the agent’s context.
The agent carries out the task as described in the skill.
Comparison of Claude Code vs OpenSkills
System‑prompt location : Claude embeds it internally; OpenSkills stores it in AGENTS.md.
Invocation syntax : Claude uses Skill("pdf") (tool call); OpenSkills uses the CLI command openskills read pdf.
Prompt format : Both use XML tags such as <available_skills>.
Directory structure : Both default to .claude/skills/ for project‑level storage.
SKILL.md format : YAML + Markdown in both implementations.
Progressive loading : Supported by both.
Resource binding : Both bind references/, scripts/, and assets/ directories.
Marketplace source : Claude pulls from the Anthropic marketplace; OpenSkills pulls from GitHub (e.g., anthropics/skills).
OpenSkills Advanced Features
Loading priority
./.agent/skills/– project‑level, generic (highest priority when --universal is used). ~/.agent/skills/ – global, generic. ./.claude/skills/ – project‑level. ~/.claude/skills/ – global.
CLI commands
openskills install <source> [options] # Install a skill from GitHub, a local path, or a private repo
openskills sync [-y] [-o <path>] # Update AGENTS.md (or a custom output file)
openskills list # List installed skills
openskills read <name> # Load a skill for an agent
openskills manage # Interactive removal of skills
openskills remove <name> # Remove a specific skillKey parameters
--global– Install to ~/.claude/skills (default is project‑level). --universal – Install to .agent/skills instead of .claude/skills; this location has higher loading priority. -y, --yes – Overwrite existing files without prompting (useful for CI scripts). -o, --output <path> – Customise the sync output file (default AGENTS.md).
Repository: https://github.com/numman-ali/openskills
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
