Awesome-omni-skill converter
Cross-platform skill converter. Parse AgentOps skills into a universal bundle format, then convert to target platforms (Codex, Cursor). Triggers: convert, converter, convert skill, export skill, cross-platform.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ai-agents/converter" ~/.claude/skills/diegosouzapw-awesome-omni-skill-converter-3c4995 && rm -rf "$T"
skills/ai-agents/converter/SKILL.md/converter -- Cross-Platform Skill Converter
Parse AgentOps skills into a universal SkillBundle format, then convert to target agent platforms.
Quick Start
/converter skills/council codex # Convert council skill to Codex format /converter skills/vibe cursor # Convert vibe skill to Cursor format /converter --all codex # Convert all skills to Codex
Pipeline
The converter runs a three-stage pipeline:
parse --> convert --> write
Stage 1: Parse
Read the source skill directory and produce a SkillBundle:
- Extract YAML frontmatter from SKILL.md (between
markers)--- - Collect the markdown body (everything after the closing
)--- - Enumerate all files in
andreferences/scripts/ - Assemble into a SkillBundle (see
)references/skill-bundle-schema.md
Stage 2: Convert
Transform the SkillBundle into the target platform's format:
| Target | Output Format | Status |
|---|---|---|
| Codex SKILL.md + prompt.md | Implemented |
| Cursor .mdc rule + optional mcp.json | Implemented |
The Codex adapter produces a
SKILL.md with YAML frontmatter (name, description) plus rewritten body content and a prompt.md (Codex prompt referencing the skill). Default mode is modular: references/scripts/resources are copied as files and SKILL.md includes a local resource index instead of inlining everything. Optional inline mode preserves the older behavior by appending inlined references and script code blocks. Codex output rewrites known slash-skill references (for example /plan) to dollar-skill syntax ($plan), replaces Claude-specific paths/labels (including ~/.claude/, $HOME/.claude/, and /.claude/ path variants), normalizes common mixed-runtime terms (for example Claude Native Teams, claude-native-teams, and Claude session/runtime) to Codex-native phrasing, rewrites Claude-only primitive labels to runtime-neutral wording, and rewrites flat ao command references to namespace-qualified forms expected by Codex-native lint. It also deduplicates repeated "In Codex" runtime headings after rewrite while preserving section content. It preserves non-generated resource files/directories from the source skill (for example templates/, assets/, schemas/, examples/, agents/) and enforces passthrough parity (missing copied resources fail conversion). Descriptions are truncated to 1024 chars at a word boundary if needed.
The Cursor adapter produces a
<name>.mdc rule file with YAML frontmatter (description, globs, alwaysApply: false) and body content. References are inlined into the body, scripts are included as code blocks. Output is budget-fitted to 100KB max -- references are omitted largest-first if the total exceeds the limit. If the skill references MCP servers, a mcp.json stub is also generated.
Stage 3: Write
Write the converted output to disk.
- Default output directory:
.agents/converter/<target>/<skill-name>/ - Write semantics: Clean-write. The target directory is deleted before writing. No merge with existing content.
CLI Usage
# Convert a single skill bash skills/converter/scripts/convert.sh <skill-dir> <target> [output-dir] bash skills/converter/scripts/convert.sh --codex-layout inline <skill-dir> codex [output-dir] # Convert all skills bash skills/converter/scripts/convert.sh --all <target> [output-dir]
Arguments
| Argument | Required | Description |
|---|---|---|
| Yes (or ) | Path to skill directory (e.g. ) |
| Yes | Target platform: , , or |
| No | Override output location. Default: |
| No | Convert all skills in directory |
| No | Codex-only layout mode: (default) or (legacy inlined refs/scripts) |
Supported Targets
- codex -- Convert to OpenAI Codex format (
+SKILL.md
) with codex-native rewrites (slash-to-dollar skills,prompt.md
path variants to.claude
, mixed-runtime term normalization to Codex phrasing, Claude primitive label neutralization, duplicate runtime-heading cleanup, and namespace-qualified.codex
command references). Default is modular output with copied resources and aao
local-resource index; passSKILL.md
for legacy inlined refs/scripts. Converter enforces passthrough parity so missing copied resources fail fast. Output:--codex-layout inline
,<dir>/SKILL.md
, and copied resources.<dir>/prompt.md - cursor -- Convert to Cursor rules format (
rule file + optional.mdc
). Output:mcp.json
and optionally<dir>/<name>.mdc
.<dir>/mcp.json - test -- Emit the raw SkillBundle as structured markdown. Useful for debugging the parse stage.
Extending
To add a new target platform:
- Add a conversion function to
(pattern:scripts/convert.sh
)convert_<target> - Update the target table above
- Add reference docs to
if the target format needs documentationreferences/
Examples
Converting a single skill to Codex format
User says:
/converter skills/council codex
What happens:
- The converter parses
frontmatter, markdown body, and anyskills/council/SKILL.md
andreferences/
files into a SkillBundle.scripts/ - The Codex adapter transforms the bundle into a
(body + inlined references + scripts as code blocks) and aSKILL.md
(Codex prompt referencing the skill).prompt.md - Output is written to
..agents/converter/codex/council/
Result: A Codex-compatible skill package ready to use with OpenAI Codex CLI.
Batch-converting all skills to Cursor rules
User says:
/converter --all cursor
What happens:
- The converter scans every directory under
and parses each into a SkillBundle.skills/ - The Cursor adapter transforms each bundle into a
rule file with YAML frontmatter and body content, budget-fitted to 100KB max. Skills referencing MCP servers also get a.mdc
stub.mcp.json - Each skill's output is written to
..agents/converter/cursor/<skill-name>/
Result: All skills are available as Cursor rules, ready to drop into a
.cursor/rules/ directory.
Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
| SKILL.md is missing the delimited YAML frontmatter block | Add frontmatter with at least and fields, or run on the skill first |
Cursor output is missing references | Total bundle size exceeded the 100KB budget limit | The converter omits references largest-first to fit the budget. Split large reference files or move non-essential content to external docs |
| Output directory already has old files | Previous conversion artifacts remain | This is expected -- the converter clean-writes by deleting the target directory before writing. If old files persist, manually delete |
skips a skill directory | The directory has no file | Ensure each skill directory contains a valid . Run to detect empty directories |
Codex description is truncated | The skill description exceeds 1024 characters | This is by design. The converter truncates at a word boundary to fit Codex limits. Shorten the description in SKILL.md frontmatter if the truncation point is awkward |
| Conversion fails with passthrough parity check | A resource entry from source skill wasn't copied to output | Ensure source entries are readable and copyable (including nested files). Re-run conversion; failure is intentional to prevent drift between and converted output |
References
-- SkillBundle interchange format specificationreferences/skill-bundle-schema.md