feat: add Codex CLI, OpenClaw, and MCP-based IDE integrations

Codex CLI: transcript-based integration watching ~/.codex/sessions/,
schema bumped to v0.3 with exec_command support, AGENTS.md context.

OpenClaw: installer wires pre-built plugin to ~/.openclaw/extensions/,
registers in openclaw.json with memory slot and sync config.

MCP integrations (6 IDEs): Copilot CLI, Antigravity, Goose, Crush,
Roo Code, and Warp — config writing + context injection. Goose uses
string-based YAML manipulation (no parser dependency).

All 13 IDE targets now supported in npx claude-mem install.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Alex Newman
2026-02-27 00:08:37 -05:00
parent f2cc33b494
commit 031513d723
7 changed files with 1482 additions and 20 deletions
+44
View File
@@ -132,6 +132,50 @@ async function setupIDEs(selectedIDEs: string[]): Promise<void> {
break;
}
case 'openclaw': {
const { installOpenClawIntegration } = await import('../../services/integrations/OpenClawInstaller.js');
const openClawResult = await installOpenClawIntegration();
if (openClawResult === 0) {
p.log.success('OpenClaw: plugin installed.');
} else {
p.log.error('OpenClaw: plugin installation failed.');
}
break;
}
case 'codex-cli': {
const { installCodexCli } = await import('../../services/integrations/CodexCliInstaller.js');
const codexResult = await installCodexCli();
if (codexResult === 0) {
p.log.success('Codex CLI: transcript watching configured.');
} else {
p.log.error('Codex CLI: integration setup failed.');
}
break;
}
case 'copilot-cli':
case 'antigravity':
case 'goose':
case 'crush':
case 'roo-code':
case 'warp': {
const { MCP_IDE_INSTALLERS } = await import('../../services/integrations/McpIntegrations.js');
const mcpInstaller = MCP_IDE_INSTALLERS[ideId];
if (mcpInstaller) {
const mcpResult = await mcpInstaller();
const allIDEs = detectInstalledIDEs();
const ideInfo = allIDEs.find((i) => i.id === ideId);
const ideLabel = ideInfo?.label ?? ideId;
if (mcpResult === 0) {
p.log.success(`${ideLabel}: MCP integration installed.`);
} else {
p.log.error(`${ideLabel}: MCP integration failed.`);
}
}
break;
}
default: {
const allIDEs = detectInstalledIDEs();
const ide = allIDEs.find((i) => i.id === ideId);