Agent adapters for SkillKit - supports 32 AI coding agents
npm install @skillkit/agents

Agent adapters for SkillKit - configuration and detection for 32 AI coding agents.
``bash`
npm install @skillkit/agents
| Agent | Config Format | Project Skills | Global Skills |
|-------|--------------|----------------|---------------|
| Claude Code | SKILL.md | .claude/skills/ | ~/.claude/skills/ |.cursor/skills/
| Cursor | MDC (.mdc) | | ~/.cursor/skills/ |.codex/skills/
| Codex | SKILL.md | | ~/.codex/skills/ |.gemini/skills/
| Gemini CLI | SKILL.md | | ~/.gemini/skills/ |.opencode/skills/
| OpenCode | SKILL.md | | ~/.config/opencode/skills/ |.antigravity/skills/
| Antigravity | SKILL.md | | - |.amp/skills/
| Amp | SKILL.md | | - |.clawdbot/skills/
| Clawdbot | SKILL.md | | - |.cline/skills/
| Cline | SKILL.md | | - |.codebuddy/skills/
| CodeBuddy | SKILL.md | | - |.commandcode/skills/
| CommandCode | SKILL.md | | - |.continue/skills/
| Continue | SKILL.md | | ~/.continue/skills/ |.crush/skills/
| Crush | SKILL.md | | - |.factory/skills/
| Droid (Factory) | SKILL.md | | - |.factory/skills/
| Factory | SKILL.md | | - |.github/skills/
| GitHub Copilot | Markdown | | - |.goose/skills/
| Goose | SKILL.md | | ~/.goose/skills/ |.kilocode/skills/
| Kilo Code | SKILL.md | | ~/.kilocode/skills/ |.kiro/skills/
| Kiro CLI | SKILL.md | | ~/.kiro/skills/ |.mcpjam/skills/
| MCPJam | SKILL.md | | - |.mux/skills/
| Mux | SKILL.md | | - |.neovate/skills/
| Neovate | SKILL.md | | - |.openhands/skills/
| OpenHands | SKILL.md | | - |.pi/skills/
| Pi | SKILL.md | | - |.qoder/skills/
| Qoder | SKILL.md | | - |.qwen/skills/
| Qwen | SKILL.md | | - |.roo/skills/
| Roo Code | SKILL.md | | ~/.roo/skills/ |.trae/skills/
| Trae | SKILL.md | | - |.vercel/skills/
| Vercel | SKILL.md | | - |.windsurf/skills/
| Windsurf | Markdown | | ~/.codeium/windsurf/skills/ |.zencoder/skills/
| Zencoder | SKILL.md | | - |skills/
| Universal | SKILL.md | | - |
`typescript
import { getAdapter, AgentType } from '@skillkit/agents';
// Get adapter for specific agent
const adapter = getAdapter('claude-code');
console.log(adapter.name); // 'claude-code'
console.log(adapter.skillsDir); // '.claude/skills/'
console.log(adapter.globalSkillsDir); // '~/.claude/skills/'
console.log(adapter.configFile); // 'AGENTS.md'
console.log(adapter.format); // 'skill-md'
`
`typescript
import { detectAgent, detectAllAgents } from '@skillkit/agents';
// Detect primary agent in current directory
const primary = await detectAgent();
console.log(primary); // 'claude-code'
// Detect all installed agents
const all = await detectAllAgents();
console.log(all); // ['claude-code', 'cursor', 'windsurf']
// Detect in specific directory
const agents = await detectAllAgents('./my-project');
`
`typescript
import { listAdapters, getAdapterNames } from '@skillkit/agents';
// Get all adapter configurations
const adapters = listAdapters();
adapters.forEach(adapter => {
console.log(${adapter.name}: ${adapter.skillsDir});
});
// Get just the names
const names = getAdapterNames();
console.log(names); // ['claude-code', 'cursor', 'codex', ...]
`
`typescript
import { getAdapter } from '@skillkit/agents';
import { findAllSkills } from '@skillkit/core';
const adapter = getAdapter('cursor');
const skills = findAllSkills([adapter.skillsDir]);
// Generate config file content
const config = adapter.generateConfig(skills);
console.log(config);
`
`typescript
import { getAdapter } from '@skillkit/agents';
import { homedir } from 'os';
const adapter = getAdapter('claude-code');
// Project-local skills directory
const projectDir = adapter.skillsDir; // '.claude/skills/'
// Global skills directory
const globalDir = adapter.globalSkillsDir.replace('~', homedir());
// '/Users/you/.claude/skills/'
`
`typescript
interface AgentAdapter {
// Agent identifier
name: AgentType;
// Display name
displayName: string;
// Skill file format
format: 'skill-md' | 'mdc' | 'markdown';
// Project skills directory (relative)
skillsDir: string;
// Global skills directory (with ~)
globalSkillsDir: string;
// Config file name
configFile: string;
// Generate config from skills
generateConfig(skills: Skill[]): string;
// Parse existing config
parseConfig(content: string): Skill[];
}
`
`typescript`
type AgentType =
| 'claude-code'
| 'cursor'
| 'codex'
| 'gemini-cli'
| 'opencode'
| 'antigravity'
| 'amp'
| 'clawdbot'
| 'cline'
| 'codebuddy'
| 'commandcode'
| 'continue'
| 'crush'
| 'droid'
| 'factory'
| 'github-copilot'
| 'goose'
| 'kilo'
| 'kiro-cli'
| 'mcpjam'
| 'mux'
| 'neovate'
| 'openhands'
| 'pi'
| 'qoder'
| 'qwen'
| 'roo'
| 'trae'
| 'vercel'
| 'windsurf'
| 'zencoder'
| 'universal';
markdown
---
name: my-skill
description: What this skill does
---
My Skill
Instructions...
`$3
Cursor-specific format with globs and alwaysApply:
`
---
description: What this skill does
globs: ["*/.tsx"]
alwaysApply: false
---
Instructions...
`$3
Plain markdown used by Windsurf and Copilot:
`markdown
Skill Name
Instructions for the agent...
``Full documentation: https://github.com/rohitg00/skillkit
Apache-2.0