Configure once, generate for all AI coding tools.
ai-dot reads a single .ai/ config directory and emits native configuration files for Claude Code, Cursor, Codex, OpenCode, GitHub Copilot, and Antigravity.
Alpha — this tool is under active development. Expect breaking changes.
npm install -g ai-dot# Scaffold a new .ai/ directory
ai-dot init
# Generate config files for all targets
ai-dot sync
# Generate for specific targets
ai-dot sync --target claude cursor
# Check config validity
ai-dot check
# See what's changed since last sync
ai-dot statusYou define your AI coding config once in .ai/:
.ai/
config.yaml # MCP servers, permissions, hooks, ignore patterns
directives/ # Markdown instruction files
code-style.md
testing.md
skills/ # Reusable skill definitions
commit/SKILL.md
agents/ # Agent definitions
reviewer.md
Then ai-dot sync generates the native config files each tool expects:
| Target | Output |
|---|---|
| Claude Code | CLAUDE.md, .claude/, .mcp.json |
| Cursor | .cursor/, .cursorrules |
| Codex | AGENTS.md, .codex/ |
| OpenCode | AGENTS.md, opencode.json |
| GitHub Copilot | .github/copilot-instructions.md, .copilot/ |
| Antigravity | ANTIGRAVITY.md |
Already have config files for one tool? Import them:
# Import from existing Claude Code config
ai-dot import --source claude
# Import from Cursor
ai-dot import --source cursor| Command | Description |
|---|---|
ai-dot init |
Scaffold a .ai/ directory with guided setup |
ai-dot sync |
Generate config files for target tools |
ai-dot check |
Validate config and report compatibility |
ai-dot status |
Show sync state and detect manual edits |
ai-dot import |
Import config from an existing tool |
ai-dot add |
Add a directive, skill, or agent |
import { loadConfig, emitAll } from "ai-dot";
const config = await loadConfig({ scope: "project" });
const files = emitAll(config);MIT