codex-dev-mcp-suite 3.0.0 → 3.1.0

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/CHANGELOG.md CHANGED
@@ -32,6 +32,16 @@
32
32
 
33
33
  # Changelog
34
34
 
35
+ ## 3.1.0 - 2026-07-22 — Interactive Installer Wizard & CI Suite šŸ› ļø
36
+
37
+ ### Added
38
+ - **`npx codex-dev-mcp-suite init` (Auto-Config Installer Wizard)**:
39
+ - Interactive CLI wizard (`lib/init-wizard.js` & `bin/init.mjs`) that automatically detects installed AI clients (Codex CLI, Claude Code, Cursor, Windsurf, Hermes Agent, Antigravity CLI) and injects the 4 MCP server configurations into their respective config files.
40
+ - **GitHub Actions Smoke Expansion**:
41
+ - Extended `.github/workflows/ci.yml` package-smoke test to verify all 6 executable binaries and the `init` wizard.
42
+ - **Real-World Multi-Agent Vibe Coding Guide (`examples/multi-agent-vibe-coding.md`)**:
43
+ - Sample workflows demonstrating how to combine Antigravity, Hermes, Claude Code, and Codex CLI using swarm streams, checkpoints, and impact prediction.
44
+
35
45
  ## 3.0.0 - 2026-07-22 — The Autonomous Agent OS Edition (God-Tier) 🌌
36
46
 
37
47
  ### Added
package/README.md CHANGED
@@ -37,7 +37,13 @@ Published on npm as `codex-dev-mcp-suite`.
37
37
 
38
38
  ### ⚔ 10-Second Quickstart
39
39
 
40
- Try it right now without cloning or installing:
40
+ Automatically configure all installed AI tools (Codex CLI, Claude Code, Cursor, Windsurf, Hermes, Antigravity) with 1 command:
41
+
42
+ ```bash
43
+ npx -y codex-dev-mcp-suite init
44
+ ```
45
+
46
+ Or test a single server right now without installing:
41
47
 
42
48
  ```bash
43
49
  npx -y -p codex-dev-mcp-suite project-memory-mcp --help
package/bin/init.mjs ADDED
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+ import { runInitWizard } from "../lib/init-wizard.js";
3
+
4
+ async function main() {
5
+ console.log("šŸ› ļø Dev MCP Suite — Auto-Config Installer Wizard");
6
+ console.log("==================================================");
7
+
8
+ const dryRun = process.argv.includes("--dry-run");
9
+ const { detectedCount, results } = await runInitWizard({ dryRun });
10
+
11
+ if (!detectedCount) {
12
+ console.log("ā„¹ļø No supported AI client directories detected (~/.codex, ~/.claude, ~/.cursor, etc.).");
13
+ console.log("See README.md for manual configuration instructions.");
14
+ return;
15
+ }
16
+
17
+ for (const r of results) {
18
+ console.log(`āœ… [${r.status}] Configured ${r.name} -> ${r.path}`);
19
+ }
20
+
21
+ console.log("\nšŸš€ All detected AI tools have been successfully configured with codex-dev-mcp-suite!");
22
+ console.log("Restart your AI coding client to start using the 4 MCP servers.");
23
+ }
24
+
25
+ main().catch(console.error);
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Auto-Config Installer Wizard for codex-dev-mcp-suite.
3
+ * Detects installed AI tools (Codex, Claude Code, Cursor, Windsurf, Hermes, AGY)
4
+ * and configures the 4 MCP servers automatically.
5
+ */
6
+
7
+ import fs from "fs/promises";
8
+ import path from "path";
9
+ import os from "os";
10
+
11
+ const HOME = os.homedir();
12
+
13
+ export const CLIENT_CONFIGS = [
14
+ {
15
+ name: "Codex CLI",
16
+ type: "toml",
17
+ path: path.join(HOME, ".codex", "config.toml"),
18
+ sampleSnippet: `
19
+ [mcp_servers.project-memory]
20
+ command = "npx"
21
+ args = ["-y", "-p", "codex-dev-mcp-suite", "project-memory-mcp"]
22
+
23
+ [mcp_servers.devjournal]
24
+ command = "npx"
25
+ args = ["-y", "-p", "codex-dev-mcp-suite", "devjournal-mcp"]
26
+
27
+ [mcp_servers.checkpoint]
28
+ command = "npx"
29
+ args = ["-y", "-p", "codex-dev-mcp-suite", "checkpoint-mcp"]
30
+
31
+ [mcp_servers.context-pack]
32
+ command = "npx"
33
+ args = ["-y", "-p", "codex-dev-mcp-suite", "context-pack-mcp"]
34
+ `
35
+ },
36
+ {
37
+ name: "Claude Code",
38
+ type: "json",
39
+ path: path.join(HOME, ".claude.json"),
40
+ },
41
+ {
42
+ name: "Cursor",
43
+ type: "json",
44
+ path: path.join(HOME, ".cursor", "mcp.json"),
45
+ },
46
+ {
47
+ name: "Windsurf",
48
+ type: "json",
49
+ path: path.join(HOME, ".codeium", "windsurf", "mcp_config.json"),
50
+ },
51
+ {
52
+ name: "Hermes Agent",
53
+ type: "json",
54
+ path: path.join(HOME, ".hermes", "config.json"),
55
+ },
56
+ {
57
+ name: "Antigravity CLI",
58
+ type: "json",
59
+ path: path.join(HOME, ".gemini", "antigravity-cli", "mcp_servers.json"),
60
+ }
61
+ ];
62
+
63
+ export async function detectClients() {
64
+ const detected = [];
65
+ for (const client of CLIENT_CONFIGS) {
66
+ try {
67
+ await fs.access(path.dirname(client.path));
68
+ detected.push(client);
69
+ } catch {}
70
+ }
71
+ return detected;
72
+ }
73
+
74
+ export async function configureJsonClient(configPath) {
75
+ let json = {};
76
+ try {
77
+ const raw = await fs.readFile(configPath, "utf8");
78
+ json = JSON.parse(raw);
79
+ } catch {}
80
+
81
+ json.mcpServers = json.mcpServers || {};
82
+ const servers = ["project-memory", "devjournal", "checkpoint", "context-pack"];
83
+ for (const s of servers) {
84
+ json.mcpServers[s] = {
85
+ command: "npx",
86
+ args: ["-y", "-p", "codex-dev-mcp-suite", `${s}-mcp`]
87
+ };
88
+ }
89
+
90
+ await fs.mkdir(path.dirname(configPath), { recursive: true });
91
+ await fs.writeFile(configPath, JSON.stringify(json, null, 2) + "\n");
92
+ return configPath;
93
+ }
94
+
95
+ export async function runInitWizard({ dryRun = false } = {}) {
96
+ const clients = await detectClients();
97
+ const results = [];
98
+
99
+ for (const c of clients) {
100
+ if (c.type === "json") {
101
+ if (!dryRun) {
102
+ await configureJsonClient(c.path);
103
+ }
104
+ results.push({ name: c.name, path: c.path, status: dryRun ? "PREVIEW" : "CONFIGURED 🟢" });
105
+ } else if (c.type === "toml") {
106
+ let content = "";
107
+ try {
108
+ content = await fs.readFile(c.path, "utf8");
109
+ } catch {}
110
+
111
+ if (!content.includes("[mcp_servers.project-memory]") && !dryRun) {
112
+ await fs.mkdir(path.dirname(c.path), { recursive: true });
113
+ await fs.appendFile(c.path, "\n" + c.sampleSnippet.trim() + "\n");
114
+ }
115
+ results.push({ name: c.name, path: c.path, status: dryRun ? "PREVIEW" : "CONFIGURED 🟢" });
116
+ }
117
+ }
118
+
119
+ return { detectedCount: clients.length, results };
120
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-dev-mcp-suite",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Four local, file-based MCP servers for solo devs/vibecoders: persistent project memory, session handoff/resume, git-independent file checkpoints, and token-efficient project briefings. Works with any MCP client.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -36,7 +36,9 @@
36
36
  "stats": "bin/stats.mjs",
37
37
  "prune": "bin/prune.mjs",
38
38
  "provider-smoke": "bin/provider-smoke.mjs",
39
- "mcp-ui": "bin/ui.mjs"
39
+ "mcp-ui": "bin/ui.mjs",
40
+ "init": "bin/init.mjs",
41
+ "codex-dev-mcp-suite": "bin/init.mjs"
40
42
  },
41
43
  "scripts": {
42
44
  "test": "node run-tests.mjs",