984 lines
29 KiB
Markdown
984 lines
29 KiB
Markdown
---
|
||
title: Cursor, Aider, Windsurf, Hermes, Mistral Vibe & 8 More AI Coding Tools
|
||
description: "Install Claude Code skills and agent plugins in Hermes Agent, Mistral Vibe, Cursor, Aider, Kilo Code, Windsurf, OpenCode, Augment, and Antigravity. One-command conversion for 13 AI coding agents."
|
||
---
|
||
|
||
# Multi-Tool Integrations
|
||
|
||
All 345 skills in this repository work with **9 AI coding tools** beyond Claude Code, Codex, Gemini CLI, and OpenClaw. Hermes Agent and Mistral Vibe both use the same agentskills.io SKILL.md standard — no conversion needed. For the other 7 tools, a conversion script adapts the format each tool expects while preserving skill instructions, workflows, and supporting files.
|
||
|
||
<div class="grid cards" markdown>
|
||
|
||
- :material-cursor-default-click:{ .lg .middle } **Cursor**
|
||
|
||
---
|
||
|
||
`.mdc` rule files in `.cursor/rules/`
|
||
|
||
[:octicons-arrow-right-24: Jump to Cursor](#cursor)
|
||
|
||
- :material-code-braces:{ .lg .middle } **Aider**
|
||
|
||
---
|
||
|
||
Single `CONVENTIONS.md` file
|
||
|
||
[:octicons-arrow-right-24: Jump to Aider](#aider)
|
||
|
||
- :material-alpha-k-box:{ .lg .middle } **Kilo Code**
|
||
|
||
---
|
||
|
||
Markdown rules in `.kilocode/rules/`
|
||
|
||
[:octicons-arrow-right-24: Jump to Kilo Code](#kilo-code)
|
||
|
||
- :material-surfing:{ .lg .middle } **Windsurf**
|
||
|
||
---
|
||
|
||
`SKILL.md` bundles in `.windsurf/skills/`
|
||
|
||
[:octicons-arrow-right-24: Jump to Windsurf](#windsurf)
|
||
|
||
- :material-console:{ .lg .middle } **OpenCode**
|
||
|
||
---
|
||
|
||
`SKILL.md` bundles in `.opencode/skills/`
|
||
|
||
[:octicons-arrow-right-24: Jump to OpenCode](#opencode)
|
||
|
||
- :material-auto-fix:{ .lg .middle } **Augment**
|
||
|
||
---
|
||
|
||
Rule files in `.augment/rules/`
|
||
|
||
[:octicons-arrow-right-24: Jump to Augment](#augment)
|
||
|
||
- :material-google:{ .lg .middle } **Antigravity**
|
||
|
||
---
|
||
|
||
`SKILL.md` bundles in `~/.gemini/antigravity/skills/`
|
||
|
||
[:octicons-arrow-right-24: Jump to Antigravity](#antigravity)
|
||
|
||
- :material-medical-bag:{ .lg .middle } **Hermes Agent**
|
||
|
||
---
|
||
|
||
Native `SKILL.md` in `~/.hermes/skills/` — no conversion needed
|
||
|
||
[:octicons-arrow-right-24: Jump to Hermes Agent](#hermes-agent)
|
||
|
||
- :material-wave:{ .lg .middle } **Mistral Vibe**
|
||
|
||
---
|
||
|
||
Native `SKILL.md` in `~/.vibe/skills/` — no conversion needed
|
||
|
||
[:octicons-arrow-right-24: Jump to Mistral Vibe](#mistral-vibe)
|
||
|
||
</div>
|
||
|
||
<hr class="section-divider">
|
||
|
||
## Quick Start
|
||
|
||
### 1. Convert
|
||
|
||
```bash
|
||
git clone https://github.com/alirezarezvani/claude-skills.git
|
||
cd claude-skills
|
||
|
||
# Convert all skills for all tools (~15 seconds)
|
||
./scripts/convert.sh --tool all
|
||
|
||
# Or convert for a specific tool only
|
||
./scripts/convert.sh --tool cursor
|
||
```
|
||
|
||
### 2. Install
|
||
|
||
```bash
|
||
# Install into your project directory
|
||
./scripts/install.sh --tool cursor --target /path/to/project
|
||
|
||
# Or install globally (Antigravity)
|
||
./scripts/install.sh --tool antigravity
|
||
|
||
# Skip confirmation prompts
|
||
./scripts/install.sh --tool aider --target . --force
|
||
```
|
||
|
||
### 3. Verify
|
||
|
||
Each tool section below includes a verification step to confirm skills are loaded.
|
||
|
||
!!! tip "Regenerate after updates"
|
||
When you pull new skills from the repository, re-run `./scripts/convert.sh` and `./scripts/install.sh` to update your local installation.
|
||
|
||
<hr class="section-divider">
|
||
|
||
## How Conversion Works
|
||
|
||
The converter reads each skill's `SKILL.md` frontmatter (`name` and `description`) and markdown body, then outputs the format each tool expects:
|
||
|
||
| Source | Target | What Changes |
|
||
|--------|--------|--------------|
|
||
| YAML frontmatter | Tool-specific frontmatter | Field names/values adapted per tool |
|
||
| Markdown body | Passed through | Instructions preserved as-is |
|
||
| `scripts/` dir | Copied (where supported) | Antigravity, Windsurf, OpenCode |
|
||
| `references/` dir | Copied (where supported) | Antigravity, Windsurf, OpenCode |
|
||
| `templates/` dir | Copied (where supported) | Antigravity, Windsurf, OpenCode |
|
||
|
||
Tools that use flat files (Cursor, Aider, Kilo Code, Augment) get the SKILL.md body only — supporting directories are not copied since those tools don't support subdirectories per rule.
|
||
|
||
<hr class="section-divider">
|
||
|
||
## Cursor
|
||
|
||
[Cursor](https://cursor.com) uses `.mdc` rule files in `.cursor/rules/` with frontmatter for description, glob patterns, and auto-apply settings.
|
||
|
||
### Format
|
||
|
||
Each skill becomes a single `.mdc` file:
|
||
|
||
```yaml
|
||
---
|
||
description: "What this skill does and when to activate it"
|
||
globs:
|
||
alwaysApply: false
|
||
---
|
||
|
||
# Skill instructions here...
|
||
```
|
||
|
||
- **`alwaysApply: false`** — skills are available on-demand, not always loaded
|
||
- **`globs:`** — empty by default; add file patterns to auto-activate for specific files (e.g., `*.test.ts`)
|
||
|
||
### Install
|
||
|
||
=== "Script"
|
||
|
||
```bash
|
||
./scripts/convert.sh --tool cursor
|
||
./scripts/install.sh --tool cursor --target /path/to/project
|
||
```
|
||
|
||
=== "Manual"
|
||
|
||
```bash
|
||
mkdir -p /path/to/project/.cursor/rules
|
||
cp integrations/cursor/rules/*.mdc /path/to/project/.cursor/rules/
|
||
```
|
||
|
||
### Verify
|
||
|
||
```bash
|
||
find .cursor/rules -name "*.mdc" | wc -l
|
||
# Expected: 156
|
||
```
|
||
|
||
Open the Cursor rules panel to see all available skills listed.
|
||
|
||
### Customization
|
||
|
||
After installation, you can:
|
||
|
||
- Set `alwaysApply: true` on skills you want active in every conversation
|
||
- Add `globs: "*.py"` to auto-activate Python-related skills for `.py` files
|
||
- Remove skills you don't need to keep your rules panel clean
|
||
|
||
<hr class="section-divider">
|
||
|
||
## Aider
|
||
|
||
[Aider](https://aider.chat) reads a `CONVENTIONS.md` file from your project root. All skills are concatenated into this single file with section headers.
|
||
|
||
### Format
|
||
|
||
```markdown
|
||
# Claude Skills — Aider Conventions
|
||
> Auto-generated from claude-skills. Do not edit manually.
|
||
> Generated: 2026-03-11
|
||
|
||
---
|
||
|
||
## copywriting
|
||
> When the user wants to write, rewrite, or improve marketing copy...
|
||
|
||
# Copywriting
|
||
|
||
You are an expert conversion copywriter...
|
||
|
||
---
|
||
|
||
## senior-architect
|
||
> Deep expertise in system architecture...
|
||
|
||
# Senior Architect
|
||
...
|
||
```
|
||
|
||
### Install
|
||
|
||
=== "Script"
|
||
|
||
```bash
|
||
./scripts/convert.sh --tool aider
|
||
./scripts/install.sh --tool aider --target /path/to/project
|
||
```
|
||
|
||
=== "Manual"
|
||
|
||
```bash
|
||
cp integrations/aider/CONVENTIONS.md /path/to/project/
|
||
```
|
||
|
||
### Usage
|
||
|
||
```bash
|
||
# Aider automatically reads CONVENTIONS.md from the project root
|
||
aider
|
||
|
||
# Or explicitly point to it
|
||
aider --read CONVENTIONS.md
|
||
```
|
||
|
||
### Verify
|
||
|
||
```bash
|
||
wc -l CONVENTIONS.md
|
||
# Expected: ~41,000 lines (all 156 skills)
|
||
|
||
grep -c "^## " CONVENTIONS.md
|
||
# Expected: 156 (one section per skill)
|
||
```
|
||
|
||
!!! note "Large file"
|
||
The combined `CONVENTIONS.md` is ~41K lines. Aider handles this well, but if you prefer a smaller file, you can edit it to keep only the skills relevant to your project.
|
||
|
||
<hr class="section-divider">
|
||
|
||
## Kilo Code
|
||
|
||
[Kilo Code](https://kilo.ai) reads plain markdown rules from `.kilocode/rules/`. No special frontmatter required.
|
||
|
||
### Format
|
||
|
||
Each skill becomes a clean markdown file:
|
||
|
||
```markdown
|
||
# copywriting
|
||
> When the user wants to write, rewrite, or improve marketing copy...
|
||
|
||
# Copywriting
|
||
|
||
You are an expert conversion copywriter...
|
||
```
|
||
|
||
### Install
|
||
|
||
=== "Script"
|
||
|
||
```bash
|
||
./scripts/convert.sh --tool kilocode
|
||
./scripts/install.sh --tool kilocode --target /path/to/project
|
||
```
|
||
|
||
=== "Manual"
|
||
|
||
```bash
|
||
mkdir -p /path/to/project/.kilocode/rules
|
||
cp integrations/kilocode/rules/*.md /path/to/project/.kilocode/rules/
|
||
```
|
||
|
||
### Verify
|
||
|
||
```bash
|
||
find .kilocode/rules -name "*.md" | wc -l
|
||
# Expected: 156
|
||
```
|
||
|
||
Open Kilo Code's rules panel (click the ⚖ icon) to see all rules loaded.
|
||
|
||
### Mode-Specific Rules
|
||
|
||
Kilo Code supports mode-specific rules. To assign skills to specific modes:
|
||
|
||
```bash
|
||
# Move architecture skills to "architect" mode
|
||
mkdir -p .kilocode/rules-architect/
|
||
mv .kilocode/rules/senior-architect.md .kilocode/rules-architect/
|
||
mv .kilocode/rules/database-designer.md .kilocode/rules-architect/
|
||
```
|
||
|
||
<hr class="section-divider">
|
||
|
||
## Windsurf
|
||
|
||
[Windsurf](https://windsurf.com) uses the same `SKILL.md` format as Claude Code — skills convert with minimal changes.
|
||
|
||
### Format
|
||
|
||
Each skill becomes a directory with `SKILL.md` plus optional supporting files:
|
||
|
||
```
|
||
.windsurf/skills/copywriting/
|
||
├── SKILL.md # Instructions with name/description frontmatter
|
||
├── scripts/ # Python tools (if present in source)
|
||
├── references/ # Domain knowledge (if present)
|
||
└── templates/ # Code templates (if present)
|
||
```
|
||
|
||
```yaml
|
||
---
|
||
name: "copywriting"
|
||
description: "When the user wants to write, rewrite, or improve marketing copy..."
|
||
---
|
||
|
||
# Copywriting
|
||
...
|
||
```
|
||
|
||
### Install
|
||
|
||
=== "Script"
|
||
|
||
```bash
|
||
./scripts/convert.sh --tool windsurf
|
||
./scripts/install.sh --tool windsurf --target /path/to/project
|
||
```
|
||
|
||
=== "Manual"
|
||
|
||
```bash
|
||
cp -R integrations/windsurf/skills/* /path/to/project/.windsurf/skills/
|
||
```
|
||
|
||
### Verify
|
||
|
||
```bash
|
||
find .windsurf/skills -name "SKILL.md" | wc -l
|
||
# Expected: 156
|
||
```
|
||
|
||
Skills appear automatically in Windsurf's skill list. You can also invoke them with `@skill-name`.
|
||
|
||
### Progressive Disclosure
|
||
|
||
Windsurf uses progressive disclosure — only the skill name and description are shown by default. The full `SKILL.md` content loads only when Windsurf decides the skill is relevant to your request, keeping your context window lean.
|
||
|
||
<hr class="section-divider">
|
||
|
||
## OpenCode
|
||
|
||
[OpenCode](https://opencode.ai) supports skills in `.opencode/skills/` with `SKILL.md` files. It also reads Claude Code's `.claude/skills/` as a fallback.
|
||
|
||
### Format
|
||
|
||
Each skill becomes a directory with `SKILL.md`:
|
||
|
||
```yaml
|
||
---
|
||
name: "copywriting"
|
||
description: "When the user wants to write, rewrite, or improve marketing copy..."
|
||
compatibility: opencode
|
||
---
|
||
|
||
# Copywriting
|
||
...
|
||
```
|
||
|
||
The `compatibility: opencode` field is added to help OpenCode identify these as native skills.
|
||
|
||
### Install
|
||
|
||
=== "Script"
|
||
|
||
```bash
|
||
./scripts/convert.sh --tool opencode
|
||
./scripts/install.sh --tool opencode --target /path/to/project
|
||
```
|
||
|
||
=== "Manual"
|
||
|
||
```bash
|
||
cp -R integrations/opencode/skills/* /path/to/project/.opencode/skills/
|
||
```
|
||
|
||
=== "Global"
|
||
|
||
```bash
|
||
# Install globally for all projects
|
||
cp -R integrations/opencode/skills/* ~/.config/opencode/skills/
|
||
```
|
||
|
||
### Verify
|
||
|
||
```bash
|
||
find .opencode/skills -name "SKILL.md" | wc -l
|
||
# Expected: 156
|
||
```
|
||
|
||
### Claude Code Compatibility
|
||
|
||
OpenCode also reads `.claude/skills/` directories. If you already have skills installed for Claude Code, OpenCode will discover them automatically — no conversion needed.
|
||
|
||
To disable this fallback:
|
||
|
||
```bash
|
||
export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1
|
||
```
|
||
|
||
<hr class="section-divider">
|
||
|
||
## Augment
|
||
|
||
[Augment](https://augmentcode.com) reads rule files from `.augment/rules/` with frontmatter specifying activation type.
|
||
|
||
### Format
|
||
|
||
Each skill becomes a markdown rule file:
|
||
|
||
```yaml
|
||
---
|
||
type: auto
|
||
description: "When the user wants to write, rewrite, or improve marketing copy..."
|
||
---
|
||
|
||
# Copywriting
|
||
...
|
||
```
|
||
|
||
- **`type: auto`** — Augment automatically activates the rule when it matches your request
|
||
- Other types: `always` (always loaded), `manual` (user-invoked only)
|
||
|
||
### Install
|
||
|
||
=== "Script"
|
||
|
||
```bash
|
||
./scripts/convert.sh --tool augment
|
||
./scripts/install.sh --tool augment --target /path/to/project
|
||
```
|
||
|
||
=== "Manual"
|
||
|
||
```bash
|
||
mkdir -p /path/to/project/.augment/rules
|
||
cp integrations/augment/rules/*.md /path/to/project/.augment/rules/
|
||
```
|
||
|
||
### Verify
|
||
|
||
```bash
|
||
find .augment/rules -name "*.md" | wc -l
|
||
# Expected: 156
|
||
```
|
||
|
||
### Customization
|
||
|
||
Change `type: auto` to `type: always` for skills you want loaded in every conversation:
|
||
|
||
```bash
|
||
# Make coding standards always active
|
||
sed -i 's/type: auto/type: always/' .augment/rules/senior-architect.md
|
||
```
|
||
|
||
<hr class="section-divider">
|
||
|
||
## Antigravity
|
||
|
||
[Antigravity](https://idx.google.com/) (Google) uses `SKILL.md` files in `~/.gemini/antigravity/skills/` with additional metadata fields.
|
||
|
||
### Format
|
||
|
||
```yaml
|
||
---
|
||
name: "copywriting"
|
||
description: "When the user wants to write, rewrite, or improve marketing copy..."
|
||
risk: low
|
||
source: community
|
||
date_added: '2026-03-11'
|
||
---
|
||
|
||
# Copywriting
|
||
...
|
||
```
|
||
|
||
Additional fields:
|
||
|
||
- **`risk: low`** — all skills are instruction-only, no dangerous operations
|
||
- **`source: community`** — identifies these as community-contributed skills
|
||
- **`date_added`** — conversion date for tracking freshness
|
||
|
||
### Install
|
||
|
||
=== "Script"
|
||
|
||
```bash
|
||
./scripts/convert.sh --tool antigravity
|
||
./scripts/install.sh --tool antigravity
|
||
# Installs to ~/.gemini/antigravity/skills/ by default
|
||
```
|
||
|
||
=== "Manual"
|
||
|
||
```bash
|
||
cp -R integrations/antigravity/* ~/.gemini/antigravity/skills/
|
||
```
|
||
|
||
### Verify
|
||
|
||
```bash
|
||
find ~/.gemini/antigravity/skills -name "SKILL.md" | wc -l
|
||
# Expected: 156
|
||
```
|
||
|
||
<hr class="section-divider">
|
||
|
||
## Hermes Agent
|
||
|
||
[Hermes Agent](https://github.com/NousResearch/hermes-agent) by Nous Research is a self-improving AI agent with a built-in learning loop. It uses the [agentskills.io](https://agentskills.io) standard — **the same SKILL.md format our repo uses** — so no conversion is needed.
|
||
|
||
!!! tip "Tier: BYO-sync (pre-generated tree available since v2.7.2)"
|
||
Starting in v2.7.2, the repo ships a pre-generated `.hermes/skills/claude-skills/` tree with **303 symlinks** across **12 domains** (including the v2.7.0 productivity/marketing/research domains). You still need to copy/symlink that tree into `~/.hermes/skills/` on your machine — that's the BYO-sync step. The `sync-hermes-skills.py` script handles this in one command.
|
||
|
||
### Why Hermes is different
|
||
|
||
Unlike other tools that need format conversion, Hermes reads `SKILL.md` files natively with the exact same YAML frontmatter (`name`, `description`, `version`, `license`), the same directory layout (`references/`, `templates/`, `assets/`), and the same `AGENTS.md` project context. Our skills are plug-and-play.
|
||
|
||
### Step 1 — Install Hermes Agent itself
|
||
|
||
If you don't have Hermes Agent installed yet, set it up first:
|
||
|
||
=== "macOS / Linux"
|
||
|
||
```bash
|
||
# 1. Clone the official repo
|
||
git clone https://github.com/NousResearch/hermes-agent.git
|
||
cd hermes-agent
|
||
|
||
# 2. Install dependencies (Python 3.10+)
|
||
python3 -m venv .venv
|
||
source .venv/bin/activate
|
||
pip install -r requirements.txt
|
||
|
||
# 3. Configure your model provider (Nous, OpenAI, Anthropic — pick one)
|
||
cp .env.example .env
|
||
# Edit .env and set: NOUS_API_KEY=... OR OPENAI_API_KEY=... OR ANTHROPIC_API_KEY=...
|
||
|
||
# 4. First run to create ~/.hermes/ config dir
|
||
python hermes.py --version
|
||
|
||
# 5. Verify the skills directory exists
|
||
ls ~/.hermes/skills/ # → empty by default, ready for our claude-skills tree
|
||
```
|
||
|
||
=== "Windows (WSL2 recommended)"
|
||
|
||
Hermes Agent's official support targets macOS and Linux. On Windows, use WSL2 (Ubuntu 22.04+) and follow the macOS/Linux steps above. Native Windows is community-supported only.
|
||
|
||
=== "Docker"
|
||
|
||
```bash
|
||
docker run -it --rm \
|
||
-v $HOME/.hermes:/root/.hermes \
|
||
-e NOUS_API_KEY=$NOUS_API_KEY \
|
||
ghcr.io/nousresearch/hermes-agent:latest
|
||
```
|
||
|
||
The `-v` flag mounts your local `~/.hermes/` so skills + history persist across runs. Replace `NOUS_API_KEY` with whichever provider you configured.
|
||
|
||
!!! info "Don't have a Nous account?"
|
||
Hermes Agent supports multiple LLM providers — Nous (default), OpenAI, Anthropic, and any OpenAI-compatible endpoint. You don't need a Nous account if you already have OpenAI or Anthropic credentials. See [Hermes Agent README](https://github.com/NousResearch/hermes-agent#configuration) for the full provider matrix.
|
||
|
||
### Step 2 — Install our skills into Hermes
|
||
|
||
=== "Sync script (recommended)"
|
||
|
||
```bash
|
||
git clone https://github.com/alirezarezvani/claude-skills.git
|
||
cd claude-skills
|
||
python scripts/sync-hermes-skills.py --verbose
|
||
```
|
||
|
||
This symlinks all 303 skills into `~/.hermes/skills/claude-skills/` where Hermes discovers them automatically. Covers all 12 domains including the v2.7.0 additions (productivity, marketing, research).
|
||
|
||
=== "Single domain"
|
||
|
||
```bash
|
||
python scripts/sync-hermes-skills.py --domain engineering --verbose
|
||
```
|
||
|
||
=== "Copy mode (portable)"
|
||
|
||
```bash
|
||
python scripts/sync-hermes-skills.py --copy --verbose
|
||
```
|
||
|
||
Creates full copies instead of symlinks. Use this on systems where symlinks across filesystems don't work, or to share with Docker containers.
|
||
|
||
=== "Manual (any single skill)"
|
||
|
||
```bash
|
||
# Symlink
|
||
ln -s /path/to/claude-skills/engineering/karpathy-coder ~/.hermes/skills/karpathy-coder
|
||
|
||
# Or copy
|
||
cp -r /path/to/claude-skills/engineering/llm-wiki ~/.hermes/skills/llm-wiki
|
||
```
|
||
|
||
### Using skills in Hermes
|
||
|
||
Once installed, skills are available through Hermes's standard discovery:
|
||
|
||
```
|
||
/skills # Browse all installed skills (ours show up under claude-skills/)
|
||
/<skill-name> # Invoke any skill directly as a slash command
|
||
/skills search karpathy # Search by keyword
|
||
```
|
||
|
||
Hermes's skill_view tool loads the SKILL.md content into the conversation context, just like Claude Code does. Python scripts in `scripts/` subdirectories run natively since Hermes has a full Python runtime.
|
||
|
||
### What works
|
||
|
||
| Feature | Status | Notes |
|
||
|---------|--------|-------|
|
||
| SKILL.md loading | ✅ | Identical frontmatter format (agentskills.io) |
|
||
| Python scripts (`scripts/`) | ✅ | All stdlib-only, Hermes has Python runtime |
|
||
| References / templates / assets | ✅ | Same directory convention |
|
||
| `AGENTS.md` project context | ✅ | Hermes reads AGENTS.md natively |
|
||
| Slash commands (`/<name>`) | ✅ | Auto-discovered from SKILL.md |
|
||
| Sub-agents | ⚠️ | Hermes uses its own `delegate_tool`, not Claude Code's Agent tool — agent .md files load as context but dispatch mechanism differs |
|
||
| Claude Code plugin.json | ➖ | Hermes ignores this — not needed, it scans SKILL.md directly |
|
||
| Hooks (settings.json) | ⚠️ | Different hook system — manual wiring for Hermes's config.yaml |
|
||
|
||
### Verify
|
||
|
||
```bash
|
||
# Check how many skills Hermes can see
|
||
find ~/.hermes/skills/claude-skills -name "SKILL.md" | wc -l
|
||
# Expected: 303 (v2.7.2+)
|
||
|
||
# Or in Hermes CLI
|
||
hermes
|
||
> /skills search claude-skills
|
||
```
|
||
|
||
### Updating
|
||
|
||
```bash
|
||
cd claude-skills
|
||
git pull origin main
|
||
python scripts/sync-hermes-skills.py --verbose
|
||
# Existing symlinks are preserved, new skills are added
|
||
```
|
||
|
||
### Step 3 — First-run walkthrough
|
||
|
||
A complete dry-run from cold install to running your first skill:
|
||
|
||
```bash
|
||
# 1. After Steps 1 + 2 above (Hermes installed, skills synced)
|
||
hermes
|
||
|
||
# 2. Check what skills are loaded
|
||
> /skills
|
||
# → claude-skills/engineering/karpathy-coder
|
||
# → claude-skills/research/research
|
||
# → claude-skills/productivity/capture
|
||
# ... (303 total)
|
||
|
||
# 3. Invoke a skill — research orchestrator example
|
||
> /research What's the state of post-quantum cryptography in 2026?
|
||
# → Hermes loads research/research/SKILL.md, runs Q1+Q2 intake,
|
||
# classifies via SIGNALS map, routes to research-pack specialist
|
||
# (litreview here) or runs fallback workflow
|
||
|
||
# 4. Or browse a skill's docs without running it
|
||
> /skill_view claude-skills/engineering/karpathy-coder
|
||
# → loads SKILL.md content as context; you can ask questions about it
|
||
|
||
# 5. Search for a topic
|
||
> /skills search "test generation"
|
||
# → ranks claude-skills entries by description match
|
||
```
|
||
|
||
### Configuration tips
|
||
|
||
Edit `~/.hermes/config.yaml` (created on first run) to customize how Hermes uses our skills:
|
||
|
||
```yaml
|
||
# Recommended config for working with the claude-skills tree
|
||
skills:
|
||
search_paths:
|
||
- ~/.hermes/skills/ # Default location (our sync script lands here)
|
||
auto_load:
|
||
- claude-skills/engineering/karpathy-coder # Always-loaded skills (high-impact, low-token)
|
||
- claude-skills/engineering/grill-me # Use sparingly — adds intake friction
|
||
display:
|
||
show_category: true # Group results by claude-skills/<domain>/
|
||
show_description: true
|
||
```
|
||
|
||
### Troubleshooting
|
||
|
||
??? question "`/skills` shows 0 results after running the sync script"
|
||
The sync target may be wrong. Check what the script actually did:
|
||
```bash
|
||
python scripts/sync-hermes-skills.py --target ~/.hermes/skills --verbose --dry-run
|
||
# Should show 303 skills queued for sync. If 0, your DOMAIN_DIRS list is wrong (regression — file an issue).
|
||
ls -la ~/.hermes/skills/claude-skills/
|
||
# If empty, the sync didn't actually write — check for permission errors above.
|
||
```
|
||
|
||
??? question "Symlinks point to a path on someone else's machine"
|
||
You probably cloned a fork that committed absolute-path symlinks. Re-run the sync from your own clone — v2.7.2+ generates relative symlinks (`../../../../<domain>/...`) which work across machines:
|
||
```bash
|
||
rm -rf ~/.hermes/skills/claude-skills/
|
||
python scripts/sync-hermes-skills.py --verbose
|
||
```
|
||
|
||
??? question "Slash commands like `/research` collide with Hermes's built-ins"
|
||
Hermes resolves user-defined skills first, so `/research` from claude-skills wins. If you want the built-in instead, use the fully qualified path: `/skill_view hermes/research`. To avoid collisions entirely, rename via symlink: `ln -s ~/.hermes/skills/claude-skills/research/research ~/.hermes/skills/cs-research`.
|
||
|
||
??? question "Python tools fail with ModuleNotFoundError"
|
||
Our scripts are stdlib-only by policy — `ModuleNotFoundError` means either (a) you're running an old Python (we require 3.10+) or (b) the script itself violated the policy (file a bug). Confirm:
|
||
```bash
|
||
python3 --version # Must be ≥ 3.10
|
||
python3 ~/.hermes/skills/claude-skills/engineering/karpathy-coder/scripts/karpathy_lint.py --help
|
||
# Should print help text without errors
|
||
```
|
||
|
||
??? question "Hermes can't find SKILL.md but the file exists"
|
||
Hermes expects SKILL.md at the **top of the skill directory**. Our nested-plugin layout (`<domain>/<plugin>/skills/<skill>/SKILL.md`) is flattened by the sync script — the symlink at `~/.hermes/skills/claude-skills/<domain>/<skill>/` points directly at the inner `skills/<skill>/` folder, so `SKILL.md` is at the top level after the symlink jump. If a specific skill is missing, check:
|
||
```bash
|
||
ls -la ~/.hermes/skills/claude-skills/<domain>/<skill>/SKILL.md
|
||
# If "No such file", the symlink target is broken — re-run the sync script
|
||
```
|
||
|
||
??? question "How do I unsync (remove our skills from Hermes)?"
|
||
```bash
|
||
rm -rf ~/.hermes/skills/claude-skills/
|
||
# Hermes's own built-in skills are unaffected (they live elsewhere in ~/.hermes/skills/)
|
||
```
|
||
|
||
<hr class="section-divider">
|
||
|
||
## Mistral Vibe
|
||
|
||
[Mistral Vibe](https://github.com/mistralai/mistral-vibe) is Mistral AI's open-source Apache-2.0 CLI coding agent (v2.0, released January 2026). It uses the [Agent Skills standard](https://docs.mistral.ai/mistral-vibe/agents-skills) — the same `SKILL.md` + YAML frontmatter format Claude Code and Hermes Agent use — so **no conversion is needed**.
|
||
|
||
!!! tip "Tier: BYO-sync (pre-generated tree available)"
|
||
The repo ships a pre-generated `.vibe/skills/claude-skills/` tree with **306 symlinks** across **14 domains**. You still need to copy/symlink that tree into `~/.vibe/skills/` on your machine — that's the BYO-sync step. The `sync-vibe-skills.py` script handles this in one command.
|
||
|
||
### Discovery paths
|
||
|
||
Per the [official docs](https://docs.mistral.ai/mistral-vibe/agents-skills), Vibe scans three locations for skills:
|
||
|
||
| Path | Scope |
|
||
|------|-------|
|
||
| `~/.vibe/skills/` | User-global (what our sync script writes to) |
|
||
| `.vibe/skills/` | Project-local |
|
||
| `.agents/skills/` | Agent Skills standard path |
|
||
|
||
### Step 1 — Install Mistral Vibe itself
|
||
|
||
If you don't have Vibe installed yet, follow the [Vibe quickstart](https://docs.mistral.ai/mistral-vibe/introduction/quickstart):
|
||
|
||
```bash
|
||
pip install mistral-vibe
|
||
vibe --version # Verify install
|
||
```
|
||
|
||
Vibe supports both Mistral's hosted models (via `MISTRAL_API_KEY`) and self-hosted endpoints. See the [Vibe CLI docs](https://docs.mistral.ai/mistral-vibe/terminal) for provider configuration.
|
||
|
||
### Step 2 — Install our skills into Vibe
|
||
|
||
=== "Sync script (recommended)"
|
||
|
||
```bash
|
||
git clone https://github.com/alirezarezvani/claude-skills.git
|
||
cd claude-skills
|
||
./scripts/vibe-install.sh
|
||
```
|
||
|
||
This symlinks all 306 skills into `~/.vibe/skills/claude-skills/` where Vibe discovers them automatically. Covers all 14 domains.
|
||
|
||
=== "Single domain"
|
||
|
||
```bash
|
||
python scripts/sync-vibe-skills.py --domain engineering --verbose
|
||
```
|
||
|
||
=== "Copy mode (portable)"
|
||
|
||
```bash
|
||
python scripts/sync-vibe-skills.py --copy --verbose
|
||
```
|
||
|
||
Creates full copies instead of symlinks — useful for Docker containers or shared filesystems where symlinks don't traverse cleanly.
|
||
|
||
=== "Custom target"
|
||
|
||
```bash
|
||
python scripts/sync-vibe-skills.py --target /opt/team-vibe/skills/
|
||
```
|
||
|
||
Useful for team-wide installs or sandboxed environments.
|
||
|
||
### Using skills in Vibe
|
||
|
||
Once installed, skills are available through Vibe's standard discovery (per the [Vibe Agents & Skills docs](https://docs.mistral.ai/mistral-vibe/agents-skills)):
|
||
|
||
```
|
||
/skills # List all installed skills
|
||
/<skill-name> # Invoke a skill by slug as a slash command
|
||
```
|
||
|
||
Vibe can also auto-load skills when your prompt matches a skill's `description` field — same trigger mechanism Claude Code uses.
|
||
|
||
### What works
|
||
|
||
| Feature | Status | Notes |
|
||
|---------|--------|-------|
|
||
| SKILL.md loading | ✅ | Identical YAML frontmatter (agentskills.io) |
|
||
| Python scripts (`scripts/`) | ✅ | All stdlib-only; Vibe shell tool runs them |
|
||
| References / templates / assets | ✅ | Same directory convention |
|
||
| Slash commands (`/<name>`) | ✅ | Auto-discovered from SKILL.md |
|
||
| Sub-agents | ⚠️ | Vibe uses its own subagent system with TOML configs (`~/.vibe/agents/`) — Claude Code agent `.md` files load as context but dispatch differs |
|
||
| Claude Code plugin.json | ➖ | Vibe ignores this — scans SKILL.md directly |
|
||
| Hooks (settings.json) | ➖ | Vibe has its own hook system; manual wiring required |
|
||
|
||
### Verify
|
||
|
||
```bash
|
||
# Count installed skills
|
||
find ~/.vibe/skills/claude-skills -mindepth 2 -maxdepth 2 -name "SKILL.md" -o -type l | wc -l
|
||
# Expected: 306
|
||
|
||
# Inspect the manifest
|
||
cat ~/.vibe/skills/claude-skills/skills-index.json | python3 -m json.tool | head -20
|
||
|
||
# Or in the Vibe CLI
|
||
vibe
|
||
> /skills
|
||
```
|
||
|
||
### Updating
|
||
|
||
```bash
|
||
cd claude-skills
|
||
git pull origin main
|
||
python scripts/sync-vibe-skills.py --verbose
|
||
# Existing symlinks are preserved, new skills are added
|
||
```
|
||
|
||
### Troubleshooting
|
||
|
||
??? question "Vibe doesn't see the synced skills"
|
||
Make sure the sync ran and the symlinks resolve:
|
||
```bash
|
||
ls -la ~/.vibe/skills/claude-skills/engineering/agent-designer/SKILL.md
|
||
# Should print a valid SKILL.md, not "No such file"
|
||
```
|
||
If symlinks are broken (the source repo was moved), re-run `python scripts/sync-vibe-skills.py --verbose`.
|
||
|
||
??? question "How do I unsync (remove our skills from Vibe)?"
|
||
```bash
|
||
rm -rf ~/.vibe/skills/claude-skills/
|
||
# Vibe's own built-in skills are unaffected (they live elsewhere in ~/.vibe/skills/)
|
||
```
|
||
|
||
<hr class="section-divider">
|
||
|
||
## Script Reference
|
||
|
||
### convert.sh
|
||
|
||
```
|
||
Usage:
|
||
./scripts/convert.sh [--tool <name>] [--out <dir>] [--help]
|
||
|
||
Tools:
|
||
antigravity, cursor, aider, kilocode, windsurf, opencode, augment, all
|
||
|
||
Options:
|
||
--tool <name> Convert for a specific tool (default: all)
|
||
--out <dir> Output directory (default: integrations/)
|
||
--help Show usage
|
||
```
|
||
|
||
**Examples:**
|
||
|
||
```bash
|
||
# Convert all skills for all tools
|
||
./scripts/convert.sh
|
||
|
||
# Convert only for Cursor
|
||
./scripts/convert.sh --tool cursor
|
||
|
||
# Custom output directory
|
||
./scripts/convert.sh --tool windsurf --out /tmp/my-skills
|
||
```
|
||
|
||
### install.sh
|
||
|
||
```
|
||
Usage:
|
||
./scripts/install.sh --tool <name> [--target <dir>] [--force] [--help]
|
||
|
||
Options:
|
||
--tool <name> Required. Which tool to install for.
|
||
--target <dir> Project directory (default: current dir, except antigravity)
|
||
--force Skip overwrite confirmation
|
||
--help Show usage
|
||
```
|
||
|
||
**Default install locations:**
|
||
|
||
| Tool | Default Target |
|
||
|------|---------------|
|
||
| Hermes Agent | `~/.hermes/skills/claude-skills/` |
|
||
| Antigravity | `~/.gemini/antigravity/skills/` |
|
||
| Cursor | `<target>/.cursor/rules/` |
|
||
| Aider | `<target>/CONVENTIONS.md` |
|
||
| Kilo Code | `<target>/.kilocode/rules/` |
|
||
| Windsurf | `<target>/.windsurf/skills/` |
|
||
| OpenCode | `<target>/.opencode/skills/` |
|
||
| Augment | `<target>/.augment/rules/` |
|
||
|
||
<hr class="section-divider">
|
||
|
||
## Troubleshooting
|
||
|
||
??? question "I get 'No skills found' when running convert.sh"
|
||
Make sure you're running the script from the repository root where the skill directories are located.
|
||
|
||
??? question "Some skills show garbled descriptions"
|
||
This can happen with skills using complex YAML multi-line descriptions. Re-run `convert.sh` — the parser handles folded (`>`) and literal (`|`) YAML scalars.
|
||
|
||
??? question "Can I use skills from multiple tools at once?"
|
||
Yes! You can install skills for Cursor and Windsurf in the same project — they use different directories and won't conflict.
|
||
|
||
??? question "How do I update when new skills are added?"
|
||
```bash
|
||
git pull origin main
|
||
./scripts/convert.sh --tool all
|
||
./scripts/install.sh --tool <your-tool> --target . --force
|
||
```
|
||
|
||
??? question "Can I convert only specific skills?"
|
||
Not yet via CLI flags, but you can run `convert.sh` and then copy only the skills you want from `integrations/<tool>/`.
|
||
|
||
??? question "Do supporting files (scripts, references) work in all tools?"
|
||
Only tools that support subdirectories per skill (Hermes Agent, Antigravity, Windsurf, OpenCode) get the full bundle. Flat-file tools (Cursor, Aider, Kilo Code, Augment) get the SKILL.md content only.
|
||
|
||
??? question "Does Hermes Agent need format conversion?"
|
||
No. Hermes uses the same agentskills.io SKILL.md format as our repo. Just run `python scripts/sync-hermes-skills.py --verbose` to symlink skills into `~/.hermes/skills/`. No conversion step needed.
|