Skip to content

Supported agents

Every supported agent reads native Agent Skills folders: <name>/SKILL.md with name and description front matter, and optional reference/, scripts/ and templates/. Six of them read the same shared folder, .agents/skills, so one copy serves Codex, Cursor, Gemini CLI, OpenCode, Windsurf and GitHub Copilot. Claude Code reads only .claude/skills. Locations were checked against each vendor’s documentation on 29 October 2026.

Agent Target Project scope (copy) User scope (symlink) Invoke
Claude Code claude .claude/skills/<name>/ ~/.claude/skills/<name> /task 123
Codex CLI codex .agents/skills/<name>/ ~/.agents/skills/<name> $task 123, or pick from /skills
Cursor cursor .agents/skills/<name>/ ~/.agents/skills/<name> /task 123 in Agent chat
Gemini CLI gemini .agents/skills/<name>/ + .gemini/commands/<name>.toml ~/.agents/skills/<name> + ~/.gemini/commands/<name>.toml /task 123
OpenCode opencode .agents/skills/<name>/ + .opencode/commands/<name>.md ~/.agents/skills/<name> + ~/.config/opencode/commands/<name>.md /task 123
Windsurf windsurf .agents/skills/<name>/ + .windsurf/workflows/<name>.md ~/.agents/skills/<name> + ~/.codeium/windsurf/global_workflows/<name>.md /task 123 or @task
GitHub Copilot copilot .agents/skills/<name>/ ~/.agents/skills/<name> /task 123 in VS Code chat or Copilot CLI

Gemini CLI, OpenCode and Windsurf load skills through a tool or an @mention rather than a slash command, so the installer also writes a thin command of a few lines: “use the <name> skill with these arguments”. It never duplicates the skill text, so git pull and agent-skills sync are enough to update.

For older agent versions:

Target Written Notes
cursor .cursor/rules/<name>.mdc (“Agent Requested”) Project scope only
windsurf .windsurf/rules/<name>.md (trigger: model_decision) Project scope only; the 12,000-character limit per file is checked
copilot .github/instructions/<name>.instructions.md; user scope ~/.copilot/instructions/ No applyTo, so it is not attached to every request
gemini .gemini/commands/<name>.toml with the whole skill inlined @{ and !{ are neutralised so Gemini never injects files or runs commands from skill text
opencode .opencode/commands/<name>.md with the whole skill inlined
claude, codex Same as skills They have no other format
  • Cursor, OpenCode and Copilot also read .claude/skills at project scope. With Claude and one of those in the same project, a skill may show twice. Install Claude at user scope and the others at project scope, or the reverse.
  • Codex still loads the deprecated ~/.codex/skills. agent-skills never writes there, and agent-skills doctor warns when old copies shadow the new ones.
  • Windsurf now prefers .devin/{rules,workflows,skills} and reads .windsurf/* as a fallback. agent-skills writes .windsurf/*, which works in both the old and the renamed app, and the shared .agents/skills.
  • Gemini CLI restricts file tools to workspace folders. Skills linked at user scope are activated through activate_skill, which grants access to the skill folder.

Skribly Agent runs 13 agents, more than agent-skills supports. Aider, Amp, Factory Droid, Qwen Code, Goose, Crush and Kimi CLI run in Skribly but have no skill target. See Supported agents in Skribly Agent.