dxai-cli 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  `dxai` is an interactive CLI that configures **MCP servers**, **agent skills**, **Cursor rules and commands**, **project instruction files** (`CLAUDE.md`, `GEMINI.md`, `AGENTS.md`), and **AI-friendly project scaffolding** across **Cursor, Claude Code, VS Code / Copilot, OpenAI Codex, Gemini CLI, Google Antigravity, and Devin Desktop (formerly Windsurf)** — simultaneously and in the right format for each.
10
10
 
11
- 📚 **Full documentation:** <https://nandha-kumar-hajari.github.io/dxai/>
11
+ 📚 **Full documentation:** <https://dxai.dev/>
12
12
 
13
13
  ---
14
14
 
@@ -24,51 +24,51 @@ npx dxai-cli --help # full usage
24
24
 
25
25
  ## Headline features
26
26
 
27
- - **One config, every tool.** Pick an MCP server once and dxai writes the right format for every selected agent (JSON for Cursor / VS Code / Gemini / Antigravity / Devin, TOML for Codex, `claude mcp add` for Claude Code). The full per-agent map lives in [Supported Agents](https://nandha-kumar-hajari.github.io/dxai/reference/agents/).
28
- - **Profiles for teams.** `dxai save-profile --here` writes `./.dxai/profile.json`. Teammates run `dxai apply` to get the same setup.
29
- - **Drift-aware introspection.** `dxai list` / `status` / `doctor` read a manifest of installs, so cleanup is precise and PR review can spot config drift.
27
+ - **One config, every tool.** Pick an MCP server once and dxai writes the right format for every selected agent (JSON for Cursor / VS Code / Gemini / Antigravity / Devin, TOML for Codex, `claude mcp add` for Claude Code). The full per-agent map lives in [Supported Agents](https://dxai.dev/reference/agents/).
28
+ - **Profiles for teams.** `dxai-cli save-profile --here` writes `./.dxai/profile.json`. Teammates run `dxai-cli apply` to get the same setup.
29
+ - **Drift-aware introspection.** `dxai-cli list` / `status` / `doctor` read a manifest of installs, so cleanup is precise and PR review can spot config drift.
30
30
  - **CI-ready.** Set `CI=true` (or pass `--yes`) for unattended runs. JSON output mode pipes into the rest of your tooling.
31
- - **Backed by the official MCP Registry.** Catalog entries link to their record on [registry.modelcontextprotocol.io](https://registry.modelcontextprotocol.io); a weekly sync keeps the bundled catalog current and `dxai update` re-resolves live. Any registry server can be added by name: `dxai add io.github.owner/server`.
32
- - **Bundled + remote registry.** `dxai update` refreshes the MCP / skill catalog from a remote URL; bundled JSON is the offline fallback. Override the source with `DXAI_REGISTRY_URL`. Network calls (registry refresh, skill downloads) use native `fetch` with per-attempt timeouts and retry/backoff — no `curl` dependency.
33
- - **Reversible.** Every write is backed up as `<file>.bak.<ts>`; `dxai rollback` restores the most recent snapshot (and snapshots the current file first, so it's undoable).
31
+ - **Backed by the official MCP Registry.** Catalog entries link to their record on [registry.modelcontextprotocol.io](https://registry.modelcontextprotocol.io); a weekly sync keeps the bundled catalog current and `dxai-cli update` re-resolves live. Any registry server can be added by name: `dxai-cli add io.github.owner/server`.
32
+ - **Bundled + remote registry.** `dxai-cli update` refreshes the MCP / skill catalog from a remote URL; bundled JSON is the offline fallback. Override the source with `DXAI_REGISTRY_URL`. Network calls (registry refresh, skill downloads) use native `fetch` with per-attempt timeouts and retry/backoff — no `curl` dependency.
33
+ - **Reversible.** Every write is backed up as `<file>.bak.<ts>`; `dxai-cli rollback` restores the most recent snapshot (and snapshots the current file first, so it's undoable).
34
34
 
35
35
  ## Commands
36
36
 
37
37
  | Command | What it does |
38
38
  |---|---|
39
- | `dxai system` | Global IDE configs, MCP servers, agent skills |
40
- | `dxai project` | Repo-local AI scaffolding (rules, CLAUDE.md, AGENTS.md, etc.) |
41
- | `dxai both` | System + project setup in one go |
42
- | `dxai init` | Alias for `dxai project` (first-time project setup) |
43
- | `dxai add <mcp...>` | Add MCP server(s) to detected agents — fast path, no wizard |
44
- | `dxai remove <mcp...>` (alias `rm`) | Remove MCP server(s) from detected agents |
45
- | `dxai apply [name]` | Run setup using a saved profile |
46
- | `dxai save-profile [name]` | Save selections as a reusable profile |
47
- | `dxai profiles` | List discoverable profiles |
48
- | `dxai list` | Show what dxai installed (from manifest) |
49
- | `dxai status` | Compare manifest with live config (drift detection) |
50
- | `dxai doctor` | Validate dxai installation |
51
- | `dxai update` | Refresh registry cache from remote |
52
- | `dxai rollback` | Restore dxai-managed files from their most recent `.bak.<ts>` backup |
53
- | `dxai cleanup [scope]` (alias `reset`) | Remove dxai-managed configs and files (`system`/`project`/`both`; supports `-y`, `--json`, `--dry-run`, `--backups`) |
54
-
55
- Per-command pages with full options tables: [Reference / Commands](https://nandha-kumar-hajari.github.io/dxai/reference/commands/).
39
+ | `dxai-cli system` | Global IDE configs, MCP servers, agent skills |
40
+ | `dxai-cli project` | Repo-local AI scaffolding (rules, CLAUDE.md, AGENTS.md, etc.) |
41
+ | `dxai-cli both` | System + project setup in one go |
42
+ | `dxai-cli init` | Alias for `dxai-cli project` (first-time project setup) |
43
+ | `dxai-cli add <mcp...>` | Add MCP server(s) to detected agents — fast path, no wizard |
44
+ | `dxai-cli remove <mcp...>` (alias `rm`) | Remove MCP server(s) from detected agents |
45
+ | `dxai-cli apply [name]` | Run setup using a saved profile |
46
+ | `dxai-cli save-profile [name]` | Save selections as a reusable profile |
47
+ | `dxai-cli profiles` | List discoverable profiles |
48
+ | `dxai-cli list` | Show what dxai installed (from manifest) |
49
+ | `dxai-cli status` | Compare manifest with live config (drift detection) |
50
+ | `dxai-cli doctor` | Validate dxai installation |
51
+ | `dxai-cli update` | Refresh registry cache from remote |
52
+ | `dxai-cli rollback` | Restore dxai-managed files from their most recent `.bak.<ts>` backup |
53
+ | `dxai-cli cleanup [scope]` (alias `reset`) | Remove dxai-managed configs and files (`system`/`project`/`both`; supports `-y`, `--json`, `--dry-run`, `--backups`) |
54
+
55
+ Per-command pages with full options tables: [Reference / Commands](https://dxai.dev/reference/commands/).
56
56
 
57
57
  ## Non-interactive / CI
58
58
 
59
59
  ```bash
60
- dxai system --yes \
60
+ npx dxai-cli system --yes \
61
61
  --agents cursor,claude-code \
62
62
  --mcp github,playwright,context7
63
63
 
64
- dxai project --yes \
64
+ npx dxai-cli project --yes \
65
65
  --stack react,node \
66
66
  --features cursor-rules,agents-md,editorconfig
67
67
 
68
- CI=true dxai system --agents cursor --dry-run --json | jq .
68
+ CI=true npx dxai-cli system --agents cursor --dry-run --json | jq .
69
69
  ```
70
70
 
71
- Full flag table: [Reference / Flags](https://nandha-kumar-hajari.github.io/dxai/reference/flags/).
71
+ Full flag table: [Reference / Flags](https://dxai.dev/reference/flags/).
72
72
 
73
73
  ## Requirements
74
74
 
@@ -95,7 +95,7 @@ CI matrix runs on every push and PR across **Ubuntu, macOS, Windows × Node 18,
95
95
 
96
96
  1. `node --check` for every `.js` in `src/` and `bin/`
97
97
  2. `npm test`
98
- 3. Smoke run of `dxai --version` and `dxai --help`
98
+ 3. Smoke run of `dxai-cli --version` and `dxai-cli --help`
99
99
  4. `npm run docs:check` (drift guard — fails if `bin/cli.js` flags or registry JSON change without regenerating docs)
100
100
 
101
101
  ## Documentation site
@@ -115,15 +115,15 @@ Auto-generated pages (regenerated by the generators in `scripts/docs/`):
115
115
 
116
116
  | Page | Source |
117
117
  |---|---|
118
- | [Registry / MCP servers](https://nandha-kumar-hajari.github.io/dxai/registry/mcp-servers/) | `src/registry/data/mcp-servers.json` |
119
- | [Registry / Skills](https://nandha-kumar-hajari.github.io/dxai/registry/skills/) | `src/registry/data/skills.json` |
120
- | [Registry / Stacks](https://nandha-kumar-hajari.github.io/dxai/registry/stacks/) | `src/registry/stacks.js` (`TECH_STACKS`, `CURSOR_RULES`) |
121
- | [Registry / Cursor commands](https://nandha-kumar-hajari.github.io/dxai/registry/cursor-commands/) | `src/registry/stacks.js` (`CURSOR_COMMANDS`) |
122
- | [Reference / Commands](https://nandha-kumar-hajari.github.io/dxai/reference/commands/) | `bin/cli.js` (`buildProgram()`) |
123
- | [Reference / Flags](https://nandha-kumar-hajari.github.io/dxai/reference/flags/) | `bin/cli.js` (`buildProgram()`) |
124
- | [Reference / Profile schema](https://nandha-kumar-hajari.github.io/dxai/reference/profile-schema/) | `src/profile.js` (`PROFILE_KEYS`) |
125
- | [Reference / Manifest schema](https://nandha-kumar-hajari.github.io/dxai/reference/manifest-schema/) | `src/manifest.js` (`emptyManifest`) |
126
- | [Changelog](https://nandha-kumar-hajari.github.io/dxai/changelog/) | `git log` (conventional commits) |
118
+ | [Registry / MCP servers](https://dxai.dev/registry/mcp-servers/) | `src/registry/data/mcp-servers.json` |
119
+ | [Registry / Skills](https://dxai.dev/registry/skills/) | `src/registry/data/skills.json` |
120
+ | [Registry / Stacks](https://dxai.dev/registry/stacks/) | `src/registry/stacks.js` (`TECH_STACKS`, `CURSOR_RULES`) |
121
+ | [Registry / Cursor commands](https://dxai.dev/registry/cursor-commands/) | `src/registry/stacks.js` (`CURSOR_COMMANDS`) |
122
+ | [Reference / Commands](https://dxai.dev/reference/commands/) | `bin/cli.js` (`buildProgram()`) |
123
+ | [Reference / Flags](https://dxai.dev/reference/flags/) | `bin/cli.js` (`buildProgram()`) |
124
+ | [Reference / Profile schema](https://dxai.dev/reference/profile-schema/) | `src/profile.js` (`PROFILE_KEYS`) |
125
+ | [Reference / Manifest schema](https://dxai.dev/reference/manifest-schema/) | `src/manifest.js` (`emptyManifest`) |
126
+ | [Changelog](https://dxai.dev/changelog/) | `git log` (conventional commits) |
127
127
 
128
128
  The site also publishes `llms.txt` / `llms-full.txt` for AI-agent consumption (via `starlight-llms-txt`).
129
129
 
package/bin/cli.js CHANGED
@@ -23,7 +23,7 @@ export function buildProgram() {
23
23
  const program = new Command();
24
24
 
25
25
  program
26
- .name('dxai')
26
+ .name('dxai-cli')
27
27
  .description('Interactive CLI to bootstrap your AI-powered dev environment.')
28
28
  .version(pkg.version, '-v, --version', 'output the version number')
29
29
  .showHelpAfterError('(run with --help for usage)');
@@ -213,23 +213,23 @@ export function buildProgram() {
213
213
  'after',
214
214
  `
215
215
  Examples:
216
- $ dxai # interactive menu
217
- $ dxai system # interactive system setup
218
- $ dxai project --yes # accept defaults, no prompts
219
- $ dxai system -y --agents cursor,claude-code --mcp github,playwright
220
- $ dxai project -y --stack react,node --features cursor-rules,agents-md
221
- $ CI=true dxai system --agents cursor # non-interactive (CI mode)
222
- $ dxai save-profile myteam --agents cursor --mcp github,playwright
223
- $ dxai add github playwright # add MCP servers to detected agents
224
- $ dxai add context7 --agents cursor,codex # target specific agents
225
- $ dxai add io.github.upstash/context7 # any server from the official MCP Registry
226
- $ dxai remove github --dry-run # preview an MCP removal
227
- $ dxai apply myteam # run setup from a saved profile
228
- $ dxai apply --dry-run # auto-load ./.dxai/profile.json
229
- $ dxai profiles # list saved profiles
230
- $ dxai cleanup # remove dxai-managed configs
231
- $ dxai rollback --list # show restorable .bak backups
232
- $ dxai rollback --dry-run # preview a restore, write nothing
216
+ $ npx dxai-cli # interactive menu
217
+ $ npx dxai-cli system # interactive system setup
218
+ $ npx dxai-cli project --yes # accept defaults, no prompts
219
+ $ npx dxai-cli system -y --agents cursor,claude-code --mcp github,playwright
220
+ $ npx dxai-cli project -y --stack react,node --features cursor-rules,agents-md
221
+ $ CI=true npx dxai-cli system --agents cursor # non-interactive (CI mode)
222
+ $ npx dxai-cli save-profile myteam --agents cursor --mcp github,playwright
223
+ $ npx dxai-cli add github playwright # add MCP servers to detected agents
224
+ $ npx dxai-cli add context7 --agents cursor,codex # target specific agents
225
+ $ npx dxai-cli add io.github.upstash/context7 # any server from the official MCP Registry
226
+ $ npx dxai-cli remove github --dry-run # preview an MCP removal
227
+ $ npx dxai-cli apply myteam # run setup from a saved profile
228
+ $ npx dxai-cli apply --dry-run # auto-load ./.dxai/profile.json
229
+ $ npx dxai-cli profiles # list saved profiles
230
+ $ npx dxai-cli cleanup # remove dxai-managed configs
231
+ $ npx dxai-cli rollback --list # show restorable .bak backups
232
+ $ npx dxai-cli rollback --dry-run # preview a restore, write nothing
233
233
 
234
234
  Profiles are auto-loaded from (in order):
235
235
  ./.dxai/profile.json (project-local)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dxai-cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Interactive CLI to bootstrap your AI-powered dev environment — MCP servers, agent skills, cursor rules & more across Cursor, Claude Code, VS Code / Copilot, Codex, Gemini CLI, Windsurf, and Antigravity.",
5
5
  "keywords": [
6
6
  "ai",
@@ -26,7 +26,8 @@
26
26
  },
27
27
  "type": "module",
28
28
  "bin": {
29
- "dxai": "bin/cli.js"
29
+ "dxai": "bin/cli.js",
30
+ "dxai-cli": "bin/cli.js"
30
31
  },
31
32
  "main": "src/index.js",
32
33
  "scripts": {
package/src/index.js CHANGED
@@ -181,7 +181,7 @@ async function sharedSetup(runtime) {
181
181
 
182
182
  if (!(await confirm('Continue with setup for selected tools?'))) {
183
183
  console.log();
184
- infoMsg('Run dxai again after installing your tools. Bye!');
184
+ infoMsg('Run npx dxai-cli again after installing your tools. Bye!');
185
185
  process.exit(0);
186
186
  }
187
187
  }
@@ -335,7 +335,7 @@ async function runSystem(ctx, runtime) {
335
335
  });
336
336
 
337
337
  if (!runtime.nonInteractive && !(await confirm('Proceed with system setup?'))) {
338
- infoMsg('Setup cancelled. Run dxai again anytime.');
338
+ infoMsg('Setup cancelled. Run npx dxai-cli again anytime.');
339
339
  process.exit(0);
340
340
  }
341
341
 
@@ -630,7 +630,7 @@ async function runProject(ctx, runtime, { handleSkills = false } = {}) {
630
630
  });
631
631
 
632
632
  if (!runtime.nonInteractive && !(await confirm('Proceed with project setup?'))) {
633
- infoMsg('Setup cancelled. Run dxai again anytime.');
633
+ infoMsg('Setup cancelled. Run npx dxai-cli again anytime.');
634
634
  process.exit(0);
635
635
  }
636
636
 
@@ -929,7 +929,7 @@ export async function saveProfileCmd(nameOrPath, opts = {}) {
929
929
  if (empty) {
930
930
  throw new Error(
931
931
  'No selections to save. Pass values via flags, e.g.:\n' +
932
- ' dxai save-profile myteam --agents cursor --mcp github,playwright --features cursor-rules,agents-md'
932
+ ' npx dxai-cli save-profile myteam --agents cursor --mcp github,playwright --features cursor-rules,agents-md'
933
933
  );
934
934
  }
935
935
 
package/src/rollback.js CHANGED
@@ -124,7 +124,7 @@ export async function rollbackCmd(opts = {}) {
124
124
  console.log(` ${theme.dim(`↩ ${path.basename(r.backup)}`)}`);
125
125
  }
126
126
  console.log();
127
- infoMsg('Run `dxai rollback` to restore, or `--dry-run` to preview.');
127
+ infoMsg('Run `dxai-cli rollback` to restore, or `--dry-run` to preview.');
128
128
  console.log();
129
129
  return;
130
130
  }