Four tools. One config.
$ npm i @nullbrain/dotai // The reality
They all want the same thing — how to behave in your repo.
They just can't agree on where to put it.
// How It Works
Write your config once in .ai/. YAML + markdown.
One command. Every tool gets its native files.
Commit the output. Your whole team stays in sync.
// Supported Tools
Each tool gets exactly the files it expects. Generated from one .ai/ directory.
// Features
.ai/ │ ┌─┼─┐ ▼ ▼ ▼
dotai sync generates the right files for every tool. One command, all targets.
CLAUDE.md ↓ scanner ↓
Already configured Claude Code or Cursor? dotai import converts it to .ai/ format. No starting over.
┌──┐ ┌──┐ │░░│≠│▓▓│ └──┘ └──┘ ⚠ diff
Manually tweaked a generated file? dotai detects it and won't overwrite without asking.
┌────────┐ │ ◉ .ai/ │ │ ◉ yaml │ └────────┘
Rules, skills, agents, MCP servers, permissions — one .ai/ directory for everything.
[✓] yaml [✓] refs [✓] paths [✓] valid
dotai check validates your config before syncing. Typos don't make it to your tools.
+ skill/ + agent + hook = config
Markdown rules, skill folders, agent configs, hooks. Use what's relevant, skip what's not.
// For Developers
Runs locally. Commits to git. Fits the workflow you already have.
One install. One sync. See what comes out.
npx dotai init