dxai — make your repo ready for every AI coding agent
One command detects your stack and writes the files every agent reads — AGENTS.md, CLAUDE.md, Cursor rules, project MCP configs — for Cursor, Claude Code, VS Code, Codex, Gemini, Windsurf, and Antigravity. Merged, never overwritten. Backed up, tracked, reversible.
$ npx dxai init $ dxai init › detected: react + node · npm · vitest · github-actions ├─▸ Cursor .cursor/rules · commands · mcp.json ├─▸ Claude Code CLAUDE.md ├─▸ VS Code .vscode/mcp.json ├─▸ Codex CLI AGENTS.md ├─▸ Gemini CLI GEMINI.md · .gemini/settings.json ├─▸ Windsurf AGENTS.md ├─▸ Antigravity AGENTS.md └─▸ shared .editorconfig · .gitattributes ✓ repo ready · nothing overwritten · manifest recorded
Commands
- dxai init
- Make the current repo AI-agent-ready: detects your stack and writes AGENTS.md, CLAUDE.md, Cursor rules, and project MCP configs. dxai system does the same for global configs across all seven tools; dxai both runs everything.
- dxai add <mcp…>
- Fast path, no wizard. Wires a server into every detected agent in one line; remove takes it out again. Both honour --project, --dry-run, and --json.
- dxai apply <profile>
- Team setups as data. Commit .dxai/profile.json and a teammate reproduces your whole environment with one command.
- dxai status / doctor
- Every write lands in a manifest, so drift is visible: what went missing, what was added behind dxai’s back. doctor --handshake spawns each MCP server and verifies it actually speaks JSON-RPC.
- dxai rollback
- Writes merge instead of overwriting, and every touched file is snapshotted first. Rollback restores the latest backup — after snapshotting the current state, so it’s undoable too.
- dxai update
- The MCP / skills catalog ships separately from the CLI and refreshes itself on a TTL. New servers arrive without an npm upgrade — or host your own registry with DXAI_REGISTRY_URL.
- dxai cleanup --yes
- The whole lifecycle is scriptable: set up, verify, and tear down under CI with JSON output — and partial failures exit non-zero instead of pretending everything worked.
Guarantees
- idempotent merges into existing configs; refuses to touch a file it can’t parse
- reversible every write backed up as <file>.bak.<ts>; capped and auto-pruned
- honest partial failures exit non-zero; --json output everywhere
- paranoid remote catalog data is allowlisted and shell-escaped before it can execute anything
Supported agents
- Cursor ~/.cursor/mcp.json
- Claude Code claude mcp add
- VS Code / Copilot …/Code/User/mcp.json
- Codex CLI ~/.codex/config.toml
- Gemini CLI ~/.gemini/settings.json
- Windsurf ~/.codeium/windsurf/mcp_config.json
- Antigravity ~/.gemini/config/mcp_config.json
See also
- guide/quick-start Zero to configured in two minutes
- guide/non-interactive Flags, JSON output, exit codes, CI recipes
- guide/profiles Reusable setups for you and your team
- guide/introspection list, status, doctor — drift detection
- reference/commands Every subcommand and flag, generated from the CLI itself
- registry/mcp-servers The bundled MCP catalog, per-agent support
- registry/custom-registry Host your own catalog fork
- internals/development Maintainer notes: dev loop, testing, releasing