feat: devin support (cli adapter, plugin, cloud mcp) (#1214)
* feat: devin support replacing windsurf * feat: devin cli adapter, plugin manifest, and hook payload compat * fix: stale tool counts in translations and cwd validation
This commit is contained in:
@@ -214,9 +214,9 @@ agentmemory works with any agent that supports hooks, MCP, or REST API. All agen
|
||||
<sub>MCP server</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://windsurf.com"><picture><source media="(prefers-color-scheme: dark)" srcset="https://svgl.app/library/windsurf-dark.svg"><img src="https://svgl.app/library/windsurf-light.svg" alt="Windsurf" width="48" height="48" /></picture></a><br/>
|
||||
<strong>Windsurf</strong><br/>
|
||||
<sub>MCP server</sub>
|
||||
<a href="https://devin.ai"><img src="https://raw.githubusercontent.com/rohitg00/agentmemory/main/website/public/devin.png" alt="Devin" width="48" height="48" /></a><br/>
|
||||
<strong>Devin</strong><br/>
|
||||
<sub>6 hooks + MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/RooCodeInc/Roo-Code"><img src="https://github.com/RooCodeInc.png?size=120" alt="Roo Code" width="48" height="48" /></a><br/>
|
||||
@@ -671,7 +671,7 @@ For the few agents the skills CLI doesn't cover yet (Zed v1.3.x and below), drop
|
||||
|
||||
#### Standard MCP block
|
||||
|
||||
The agentmemory entry is the **same MCP server block** across every host that uses the `mcpServers` shape (Cursor, Claude Desktop, Cline, Roo Code, Windsurf, Gemini CLI, OpenClaw):
|
||||
The agentmemory entry is the **same MCP server block** across every host that uses the `mcpServers` shape (Cursor, Claude Desktop, Cline, Roo Code, Gemini CLI, OpenClaw):
|
||||
|
||||
```json
|
||||
"agentmemory": {
|
||||
@@ -692,7 +692,9 @@ The agentmemory entry is the **same MCP server block** across every host that us
|
||||
| **Cursor (full plugin)** | `.cursor-plugin/` | Cursor Marketplace listing (submission in review) or Cursor Settings → Plugins → local checkout. Registers 7 auto-capture hooks (sessionStart, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, stop, sessionEnd) + 17 skills + the MCP server, with `AGENTMEMORY_URL` / `AGENTMEMORY_SECRET` managed in Cursor's plugin dashboard. Works in the Cursor IDE and `cursor-agent` CLI; CLI print-mode prompts are backfilled from the session transcript at session end. |
|
||||
| **Claude Desktop** | `claude_desktop_config.json` (Application Support) | Merge into `mcpServers`. Restart Claude Desktop after editing. |
|
||||
| **Cline / Roo Code / Kilo Code** | Cline MCP settings (Settings UI → MCP Servers → Edit) | Same `mcpServers` block. |
|
||||
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | Same `mcpServers` block. |
|
||||
| **Devin CLI (MCP + hooks)** | `~/.config/devin/config.json` | `agentmemory connect devin` merges the MCP entry; `--with-hooks` adds six native auto-capture hooks (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SessionEnd) with Devin'"'"'s lowercase tool matchers. Verify with `devin mcp list` and `/hooks` inside devin. |
|
||||
| **Devin CLI (full plugin)** | `plugin/.devin-plugin/` | `devin plugins install ./plugin` from a checkout registers all 17 skills as `/agentmemory:<skill>` slash commands plus the MCP server. Devin plugin hooks cannot fire `SessionStart`/`SessionEnd`, so pair it with `connect devin --with-hooks` for full session capture. |
|
||||
| **Devin (cloud)** | Settings → Connections → MCP servers | Add a custom MCP (STDIO): command `npx`, args `-y @agentmemory/mcp@latest`, env `AGENTMEMORY_URL` pointing at a network-reachable agentmemory deployment plus `AGENTMEMORY_SECRET` (cloud sessions cannot reach localhost — see [`deploy/`](deploy/)). Store the secret in Devin Secrets, then use "Test listing tools" to verify all 54 tools appear. |
|
||||
| **Gemini CLI** | `~/.gemini/settings.json` | `gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user` (auto-merges). |
|
||||
| **GitHub Copilot CLI (MCP only)** | `~/.copilot/mcp-config.json` | `agentmemory connect copilot-cli` merges `mcpServers.agentmemory`; Copilot picks it up on next launch or `/mcp`. |
|
||||
| **GitHub Copilot CLI (full plugin)** | Copilot plugin install | `copilot plugin install rohitg00/agentmemory:plugin` for the plugin from the GitHub subdir. |
|
||||
@@ -1097,7 +1099,7 @@ npx -y @agentmemory/mcp # shim package alias
|
||||
|
||||
Or add to your agent's MCP config:
|
||||
|
||||
Most agents (Cursor, Claude Desktop, Cline, Roo Code, Windsurf, Gemini CLI):
|
||||
Most agents (Cursor, Claude Desktop, Cline, Roo Code, Gemini CLI):
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
|
||||
+11
-11
@@ -169,7 +169,7 @@ agentmemory funktioniert mit jedem Agenten, der Hooks, MCP oder REST API unterst
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://cursor.com"><img src="https://www.freelogovectors.net/wp-content/uploads/2025/06/cursor-logo-freelogovectors.net_.png" alt="Cursor" width="48" height="48" /></a><br/>
|
||||
<strong>Cursor</strong><br/>
|
||||
<sub>native plugin + MCP</sub>
|
||||
<sub>MCP-Server</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/google-gemini/gemini-cli"><img src="https://github.com/google-gemini.png?size=120" alt="Gemini CLI" width="48" height="48" /></a><br/>
|
||||
@@ -209,9 +209,9 @@ agentmemory funktioniert mit jedem Agenten, der Hooks, MCP oder REST API unterst
|
||||
<sub>MCP-Server</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://windsurf.com"><img src="https://exafunction.github.io/public/brand/windsurf-black-symbol.svg?size=120" alt="Windsurf" width="48" height="48" /></a><br/>
|
||||
<strong>Windsurf</strong><br/>
|
||||
<sub>MCP-Server</sub>
|
||||
<a href="https://devin.ai"><img src="https://raw.githubusercontent.com/rohitg00/agentmemory/main/website/public/devin.png" alt="Devin" width="48" height="48" /></a><br/>
|
||||
<strong>Devin</strong><br/>
|
||||
<sub>6 hooks + MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/RooCodeInc/Roo-Code"><img src="https://github.com/RooCodeInc.png?size=120" alt="Roo Code" width="48" height="48" /></a><br/>
|
||||
@@ -575,7 +575,7 @@ Das fügt einen idempotenten Block zu `~/.codex/hooks.json` hinzu, der absolute
|
||||
<summary><b>OpenClaw (diesen Prompt einfügen)</b></summary>
|
||||
|
||||
```text
|
||||
Install agentmemory for OpenClaw. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to my OpenClaw MCP config so agentmemory is available with all 51 memory tools:
|
||||
Install agentmemory for OpenClaw. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to my OpenClaw MCP config so agentmemory is available with all 54 memory tools:
|
||||
|
||||
{
|
||||
"mcpServers": {
|
||||
@@ -600,7 +600,7 @@ Vollständiger Leitfaden: [`integrations/openclaw/`](../integrations/openclaw/)
|
||||
<summary><b>Hermes Agent (diesen Prompt einfügen)</b></summary>
|
||||
|
||||
```text
|
||||
Install agentmemory for Hermes. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to ~/.hermes/config.yaml so Hermes can use agentmemory as an MCP server with all 51 memory tools:
|
||||
Install agentmemory for Hermes. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to ~/.hermes/config.yaml so Hermes can use agentmemory as an MCP server with all 54 memory tools:
|
||||
|
||||
mcp_servers:
|
||||
agentmemory:
|
||||
@@ -657,21 +657,21 @@ Der agentmemory-Eintrag ist der **gleiche MCP-Server-Block** für jeden Host, de
|
||||
|
||||
| Agent | Konfigurationsdatei | Hinweise |
|
||||
|---|---|---|
|
||||
| **Cursor (nur MCP)** | `~/.cursor/mcp.json` | In `mcpServers` einfügen, oder `agentmemory connect cursor`. Ein-Klick-Deeplink auch auf der Website. |
|
||||
| **Cursor (volles Plugin)** | `.cursor-plugin/` | Cursor-Marketplace-Eintrag (Einreichung in Prüfung) oder Cursor Settings → Plugins → lokaler Checkout. Registriert 7 Auto-Capture-Hooks (sessionStart, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, stop, sessionEnd) + 17 Skills + den MCP-Server; `AGENTMEMORY_URL` / `AGENTMEMORY_SECRET` werden im Plugin-Dashboard von Cursor verwaltet. Funktioniert in der Cursor-IDE und der `cursor-agent`-CLI; im CLI-Print-Modus werden Prompts beim Sitzungsende aus dem Transkript nachgetragen. |
|
||||
| **Cursor** | `~/.cursor/mcp.json` | In `mcpServers` einfügen. Ein-Klick-Deeplink auch auf der Website. |
|
||||
| **Claude Desktop** | `claude_desktop_config.json` (Application Support) | In `mcpServers` einfügen. Claude Desktop nach dem Editieren neu starten. |
|
||||
| **Cline / Roo Code / Kilo Code** | Cline-MCP-Einstellungen (Settings UI → MCP Servers → Edit) | Gleicher `mcpServers`-Block. |
|
||||
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | Gleicher `mcpServers`-Block. |
|
||||
| **Devin CLI** | `~/.config/devin/config.json` | `agentmemory connect devin` fügt den MCP-Eintrag ein; `--with-hooks` ergänzt sechs native Auto-Capture-Hooks (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SessionEnd) mit Devins kleingeschriebenen Tool-Matchern. Prüfen mit `devin mcp list` und `/hooks` in devin. |
|
||||
| **Devin (Cloud)** | Settings → Connections → MCP servers | Custom MCP (STDIO) hinzufügen: Command `npx`, Args `-y @agentmemory/mcp@latest`, Env `AGENTMEMORY_URL` auf ein netzwerkerreichbares agentmemory-Deployment plus `AGENTMEMORY_SECRET` (Cloud-Sitzungen erreichen kein localhost — siehe [`deploy/`](../deploy/)). |
|
||||
| **Gemini CLI** | `~/.gemini/settings.json` | `gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user` (automatisches Mergen). |
|
||||
| **GitHub Copilot CLI (nur MCP)** | `~/.copilot/mcp-config.json` | `agentmemory connect copilot-cli` merged `mcpServers.agentmemory`; Copilot übernimmt es beim nächsten Start oder per `/mcp`. |
|
||||
| **GitHub Copilot CLI (volles Plugin)** | Copilot-Plugin-Installation | `copilot plugin install rohitg00/agentmemory:plugin` für das Plugin aus dem GitHub-Unterverzeichnis. |
|
||||
| **OpenClaw** | OpenClaw-MCP-Konfig | Gleicher `mcpServers`-Block oder das tiefer integrierte [Memory-Plugin](../integrations/openclaw/). |
|
||||
| **OpenClaw** | OpenClaw-MCP-Konfig | Gleicher `mcpServers`-Block. Tiefer: `openclaw plugins install ./integrations/openclaw` beansprucht OpenClaws Memory-Slot (wechselt automatisch von `memory-core`); setzen Sie `plugins.entries.agentmemory.hooks.allowConversationAccess=true`, sonst wird die Turn-Erfassung stillschweigend blockiert. Siehe [`integrations/openclaw`](integrations/openclaw/). |
|
||||
| **Codex CLI (nur MCP)** | `.codex/config.toml` | TOML-Form: `codex mcp add agentmemory -- npx -y @agentmemory/mcp` oder `[mcp_servers.agentmemory]` manuell hinzufügen. |
|
||||
| **Codex CLI (volles Plugin)** | Codex-Plugin-Marketplace | `codex plugin marketplace add rohitg00/agentmemory`, dann `codex plugin add agentmemory@agentmemory`. Registriert MCP + 6 Lifecycle-Hooks (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Stop) + 17 Skills. Auf Codex Desktop zusätzlich `agentmemory connect codex --with-hooks` ausführen, bis [openai/codex#16430](https://github.com/openai/codex/issues/16430) landet; Plugin-Hooks sind dort derzeit lautlos. |
|
||||
| **OpenCode (nur MCP)** | `opencode.json` | Anderes Format: `mcp`-Schlüssel auf oberster Ebene, Command als Array: `{"mcp": {"agentmemory": {"type": "local", "command": ["npx", "-y", "@agentmemory/mcp"], "enabled": true}}}`. |
|
||||
| **OpenCode (volles Plugin)** | `plugin/opencode/` | 22 Auto-Capture-Hooks für Session-Lifecycle, Messages, Tools, Fehler. Die Projekt-Zuordnung erfolgt pro Session, sodass ein OpenCode-Prozess, der mehrere Repositories umspannt, jede Session unter ihrem eigenen Projekt ablegt. Zwei Slash-Befehle (`/recall`, `/remember`). Kopieren Sie `plugin/opencode/` in Ihren OpenCode-Workspace und fügen Sie den Plugin-Eintrag zu `opencode.json` hinzu. Siehe [`plugin/opencode/README.md`](../plugin/opencode/README.md) für die vollständige Hook-Tabelle + Gap-Analyse. |
|
||||
| **pi** | `~/.pi/agent/extensions/agentmemory` | `agentmemory connect pi` installiert die mitgelieferte Extension in pis Auto-Discovery-Verzeichnis (Recall beim Agent-Start, Capture beim Agent-Ende, `memory_search` / `memory_save` / `memory_health` Tools, `/agentmemory-status`). `/reload` in einem laufenden pi übernimmt sie. [`integrations/pi`](../integrations/pi/) ist außerdem ein pi-Paket (`pi install ./integrations/pi` aus einem Checkout). |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | Verwenden Sie das tiefer integrierte [Memory-Provider-Plugin](../integrations/hermes/) mit `memory.provider: agentmemory`. |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | `cp -r integrations/hermes ~/.hermes/plugins/agentmemory` + `memory.provider: agentmemory` liefert den 6-Hook-Memory-Provider (Prefetch, Turn-Erfassung, Session-Ende, Vorkomprimierung, MEMORY.md-Spiegelung, System-Prompt-Block). Validieren Sie mit `hermes plugins doctor` und `hermes memory status`. Siehe [`integrations/hermes`](integrations/hermes/). |
|
||||
| **Qwen Code** | `~/.qwen/settings.json` | `agentmemory connect qwen` schreibt den standardmäßigen `mcpServers`-Block. Die Hook-Payload ist feldkompatibel mit Claude Code, sodass die bestehenden 12 Hook-Skripte ohne Änderung funktionieren; verdrahten Sie sie über den Abschnitt `hooks` in derselben `settings.json`. |
|
||||
| **Antigravity** (ersetzt Gemini CLI) | `mcp_config.json` (im User-Verzeichnis von Antigravity) | `agentmemory connect antigravity` schreibt den standardmäßigen `mcpServers`-Block. macOS: `~/Library/Application Support/Antigravity/User/`. Linux: `~/.config/Antigravity/User/`. Nach dem Sunset von Gemini CLI am 2026-06-18 zu nutzen. |
|
||||
| **Antigravity CLI** (`agy`) | `~/.gemini/config/mcp_config.json` | `agentmemory connect antigravity-cli`. Die `agy`-CLI hält ihre eigene Konfig unter `~/.gemini/`, getrennt von der Antigravity-IDE oben. Übergeben Sie `--with-hooks` für native Auto-Erfassung via `~/.gemini/config/hooks.json`. |
|
||||
|
||||
@@ -169,7 +169,7 @@ agentmemory funciona con cualquier agente que soporte hooks, MCP o REST API. Tod
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://cursor.com"><img src="https://www.freelogovectors.net/wp-content/uploads/2025/06/cursor-logo-freelogovectors.net_.png" alt="Cursor" width="48" height="48" /></a><br/>
|
||||
<strong>Cursor</strong><br/>
|
||||
<sub>plugin nativo + MCP</sub>
|
||||
<sub>MCP server</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/google-gemini/gemini-cli"><img src="https://github.com/google-gemini.png?size=120" alt="Gemini CLI" width="48" height="48" /></a><br/>
|
||||
@@ -209,9 +209,9 @@ agentmemory funciona con cualquier agente que soporte hooks, MCP o REST API. Tod
|
||||
<sub>MCP server</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://windsurf.com"><img src="https://exafunction.github.io/public/brand/windsurf-black-symbol.svg?size=120" alt="Windsurf" width="48" height="48" /></a><br/>
|
||||
<strong>Windsurf</strong><br/>
|
||||
<sub>MCP server</sub>
|
||||
<a href="https://devin.ai"><img src="https://raw.githubusercontent.com/rohitg00/agentmemory/main/website/public/devin.png" alt="Devin" width="48" height="48" /></a><br/>
|
||||
<strong>Devin</strong><br/>
|
||||
<sub>6 hooks + MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/RooCodeInc/Roo-Code"><img src="https://github.com/RooCodeInc.png?size=120" alt="Roo Code" width="48" height="48" /></a><br/>
|
||||
@@ -657,21 +657,21 @@ La entrada de agentmemory es el **mismo bloque de servidor MCP** en cada host qu
|
||||
|
||||
| Agente | Fichero de configuración | Notas |
|
||||
|---|---|---|
|
||||
| **Cursor (solo MCP)** | `~/.cursor/mcp.json` | Fusiona en `mcpServers`, o `agentmemory connect cursor`. También hay deeplink de un clic en el sitio web. |
|
||||
| **Cursor (plugin completo)** | `.cursor-plugin/` | Listado en el Cursor Marketplace (envío en revisión) o Cursor Settings → Plugins → checkout local. Registra 7 hooks de captura automática (sessionStart, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, stop, sessionEnd) + 17 skills + el servidor MCP; `AGENTMEMORY_URL` / `AGENTMEMORY_SECRET` se gestionan en el panel de plugins de Cursor. Funciona en el IDE de Cursor y en la CLI `cursor-agent`; en modo print de la CLI los prompts se recuperan del transcript al cerrar la sesión. |
|
||||
| **Cursor** | `~/.cursor/mcp.json` | Fusiona en `mcpServers`. También hay deeplink de un clic en el sitio web. |
|
||||
| **Claude Desktop** | `claude_desktop_config.json` (Application Support) | Fusiona en `mcpServers`. Reinicia Claude Desktop tras editar. |
|
||||
| **Cline / Roo Code / Kilo Code** | Ajustes MCP de Cline (Settings UI → MCP Servers → Edit) | Mismo bloque `mcpServers`. |
|
||||
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | Mismo bloque `mcpServers`. |
|
||||
| **Devin CLI** | `~/.config/devin/config.json` | `agentmemory connect devin` fusiona la entrada MCP; `--with-hooks` añade seis hooks nativos de captura automática (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SessionEnd) con los matchers de herramientas en minúscula de Devin. Verifica con `devin mcp list` y `/hooks` dentro de devin. |
|
||||
| **Devin (nube)** | Settings → Connections → MCP servers | Añade un MCP personalizado (STDIO): command `npx`, args `-y @agentmemory/mcp@latest`, env `AGENTMEMORY_URL` apuntando a un despliegue de agentmemory accesible por red más `AGENTMEMORY_SECRET` (las sesiones en la nube no alcanzan localhost — ver [`deploy/`](../deploy/)). |
|
||||
| **Gemini CLI** | `~/.gemini/settings.json` | `gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user` (fusión automática). |
|
||||
| **GitHub Copilot CLI (solo MCP)** | `~/.copilot/mcp-config.json` | `agentmemory connect copilot-cli` fusiona `mcpServers.agentmemory`; Copilot lo detecta en el siguiente arranque o con `/mcp`. |
|
||||
| **GitHub Copilot CLI (plugin completo)** | Instalación de plugin de Copilot | `copilot plugin install rohitg00/agentmemory:plugin` para el plugin desde el subdirectorio de GitHub. |
|
||||
| **OpenClaw** | Configuración MCP de OpenClaw | Mismo bloque `mcpServers`, o usa el [memory plugin](../integrations/openclaw/) más profundo. |
|
||||
| **OpenClaw** | Configuración MCP de OpenClaw | Mismo bloque `mcpServers`. Más profundo: `openclaw plugins install ./integrations/openclaw` reclama el slot de memoria de OpenClaw (cambia automáticamente desde `memory-core`); configura `plugins.entries.agentmemory.hooks.allowConversationAccess=true` o la captura de turnos queda bloqueada silenciosamente. Ver [`integrations/openclaw`](integrations/openclaw/). |
|
||||
| **Codex CLI (solo MCP)** | `.codex/config.toml` | Forma TOML: `codex mcp add agentmemory -- npx -y @agentmemory/mcp`, o añade `[mcp_servers.agentmemory]` a mano. |
|
||||
| **Codex CLI (plugin completo)** | Marketplace de plugins Codex | `codex plugin marketplace add rohitg00/agentmemory` y luego `codex plugin add agentmemory@agentmemory`. Registra MCP + 6 hooks de ciclo de vida (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Stop) + 17 skills. En Codex Desktop, ejecuta también `agentmemory connect codex --with-hooks` hasta que aterrice [openai/codex#16430](https://github.com/openai/codex/issues/16430); los hooks de plugin están silenciados allí por ahora. |
|
||||
| **OpenCode (solo MCP)** | `opencode.json` | Forma distinta: clave `mcp` en el nivel superior, comando como array: `{"mcp": {"agentmemory": {"type": "local", "command": ["npx", "-y", "@agentmemory/mcp"], "enabled": true}}}`. |
|
||||
| **OpenCode (plugin completo)** | `plugin/opencode/` | 22 hooks de captura automática que cubren ciclo de vida de sesión, mensajes, tools y errores. La atribución de proyecto es por sesión, así que un único proceso de OpenCode que abarque varios repositorios archiva cada sesión bajo su propio proyecto. Dos comandos slash (`/recall`, `/remember`). Copia `plugin/opencode/` a tu workspace de OpenCode y añade la entrada del plugin a `opencode.json`. Tabla completa de hooks + análisis de gaps en [`plugin/opencode/README.md`](../plugin/opencode/README.md). |
|
||||
| **pi** | `~/.pi/agent/extensions/agentmemory` | `agentmemory connect pi` instala la extensión empaquetada en el directorio de auto-descubrimiento de pi (recall al arrancar el agente, captura al terminar, tools `memory_search` / `memory_save` / `memory_health`, `/agentmemory-status`). Un `/reload` en un pi en ejecución la detecta. [`integrations/pi`](../integrations/pi/) también es un paquete pi (`pi install ./integrations/pi` desde un checkout). |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | Usa el [memory provider plugin](../integrations/hermes/) más profundo con `memory.provider: agentmemory`. |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | `cp -r integrations/hermes ~/.hermes/plugins/agentmemory` + `memory.provider: agentmemory` activa el memory provider de 6 hooks (precarga, captura de turnos, fin de sesión, pre-compresión, espejado de MEMORY.md, bloque de system prompt). Valida con `hermes plugins doctor` y `hermes memory status`. Ver [`integrations/hermes`](integrations/hermes/). |
|
||||
| **Qwen Code** | `~/.qwen/settings.json` | `agentmemory connect qwen` escribe el bloque `mcpServers` estándar. El payload de los hooks es compatible a nivel de campo con Claude Code, así que los scripts de los 12 hooks existentes funcionan sin modificación; conéctalos en la sección `hooks` del mismo `settings.json`. |
|
||||
| **Antigravity** (sustituye a Gemini CLI) | `mcp_config.json` (en el directorio User de Antigravity) | `agentmemory connect antigravity` escribe el bloque `mcpServers` estándar. macOS: `~/Library/Application Support/Antigravity/User/`. Linux: `~/.config/Antigravity/User/`. Úsalo tras el sunset de Gemini CLI del 2026-06-18. |
|
||||
| **Antigravity CLI** (`agy`) | `~/.gemini/config/mcp_config.json` | `agentmemory connect antigravity-cli`. La CLI `agy` mantiene su propia configuración bajo `~/.gemini/`, separada del IDE Antigravity de arriba. Pasa `--with-hooks` para captura automática nativa vía `~/.gemini/config/hooks.json`. |
|
||||
|
||||
+11
-11
@@ -169,7 +169,7 @@ agentmemory fonctionne avec tout agent qui prend en charge les hooks, MCP ou l'A
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://cursor.com"><img src="https://www.freelogovectors.net/wp-content/uploads/2025/06/cursor-logo-freelogovectors.net_.png" alt="Cursor" width="48" height="48" /></a><br/>
|
||||
<strong>Cursor</strong><br/>
|
||||
<sub>plugin natif + MCP</sub>
|
||||
<sub>serveur MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/google-gemini/gemini-cli"><img src="https://github.com/google-gemini.png?size=120" alt="Gemini CLI" width="48" height="48" /></a><br/>
|
||||
@@ -209,9 +209,9 @@ agentmemory fonctionne avec tout agent qui prend en charge les hooks, MCP ou l'A
|
||||
<sub>serveur MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://windsurf.com"><img src="https://exafunction.github.io/public/brand/windsurf-black-symbol.svg?size=120" alt="Windsurf" width="48" height="48" /></a><br/>
|
||||
<strong>Windsurf</strong><br/>
|
||||
<sub>serveur MCP</sub>
|
||||
<a href="https://devin.ai"><img src="https://raw.githubusercontent.com/rohitg00/agentmemory/main/website/public/devin.png" alt="Devin" width="48" height="48" /></a><br/>
|
||||
<strong>Devin</strong><br/>
|
||||
<sub>6 hooks + MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/RooCodeInc/Roo-Code"><img src="https://github.com/RooCodeInc.png?size=120" alt="Roo Code" width="48" height="48" /></a><br/>
|
||||
@@ -575,7 +575,7 @@ Cela ajoute un bloc idempotent à `~/.codex/hooks.json` qui référence des chem
|
||||
<summary><b>OpenClaw (collez ce prompt)</b></summary>
|
||||
|
||||
```text
|
||||
Install agentmemory for OpenClaw. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to my OpenClaw MCP config so agentmemory is available with all 51 memory tools:
|
||||
Install agentmemory for OpenClaw. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to my OpenClaw MCP config so agentmemory is available with all 54 memory tools:
|
||||
|
||||
{
|
||||
"mcpServers": {
|
||||
@@ -600,7 +600,7 @@ Guide complet : [`integrations/openclaw/`](../integrations/openclaw/)
|
||||
<summary><b>Hermes Agent (collez ce prompt)</b></summary>
|
||||
|
||||
```text
|
||||
Install agentmemory for Hermes. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to ~/.hermes/config.yaml so Hermes can use agentmemory as an MCP server with all 51 memory tools:
|
||||
Install agentmemory for Hermes. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to ~/.hermes/config.yaml so Hermes can use agentmemory as an MCP server with all 54 memory tools:
|
||||
|
||||
mcp_servers:
|
||||
agentmemory:
|
||||
@@ -657,21 +657,21 @@ L'entrée agentmemory est le **même bloc serveur MCP** pour tous les hôtes uti
|
||||
|
||||
| Agent | Fichier de config | Notes |
|
||||
|---|---|---|
|
||||
| **Cursor (MCP seul)** | `~/.cursor/mcp.json` | Fusionner dans `mcpServers`, ou `agentmemory connect cursor`. Deeplink en un clic également disponible sur le site web. |
|
||||
| **Cursor (plugin complet)** | `.cursor-plugin/` | Fiche du Cursor Marketplace (soumission en cours de revue) ou Cursor Settings → Plugins → checkout local. Enregistre 7 hooks de capture automatique (sessionStart, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, stop, sessionEnd) + 17 skills + le serveur MCP ; `AGENTMEMORY_URL` / `AGENTMEMORY_SECRET` sont gérés dans le tableau de bord des plugins de Cursor. Fonctionne dans l'IDE Cursor et la CLI `cursor-agent` ; en mode print de la CLI, les prompts sont récupérés depuis le transcript à la fin de session. |
|
||||
| **Cursor** | `~/.cursor/mcp.json` | Fusionner dans `mcpServers`. Deeplink en un clic également disponible sur le site web. |
|
||||
| **Claude Desktop** | `claude_desktop_config.json` (Application Support) | Fusionner dans `mcpServers`. Redémarrer Claude Desktop après modification. |
|
||||
| **Cline / Roo Code / Kilo Code** | Paramètres MCP de Cline (Settings UI → MCP Servers → Edit) | Même bloc `mcpServers`. |
|
||||
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | Même bloc `mcpServers`. |
|
||||
| **Devin CLI** | `~/.config/devin/config.json` | `agentmemory connect devin` fusionne l'entrée MCP ; `--with-hooks` ajoute six hooks natifs de capture automatique (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SessionEnd) avec les matchers d'outils en minuscules de Devin. Vérifiez avec `devin mcp list` et `/hooks` dans devin. |
|
||||
| **Devin (cloud)** | Settings → Connections → MCP servers | Ajoutez un MCP personnalisé (STDIO) : command `npx`, args `-y @agentmemory/mcp@latest`, env `AGENTMEMORY_URL` pointant vers un déploiement agentmemory accessible par le réseau plus `AGENTMEMORY_SECRET` (les sessions cloud n'atteignent pas localhost — voir [`deploy/`](../deploy/)). |
|
||||
| **Gemini CLI** | `~/.gemini/settings.json` | `gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user` (fusion automatique). |
|
||||
| **GitHub Copilot CLI (MCP seul)** | `~/.copilot/mcp-config.json` | `agentmemory connect copilot-cli` fusionne `mcpServers.agentmemory` ; Copilot le prend en compte au prochain lancement ou via `/mcp`. |
|
||||
| **GitHub Copilot CLI (plugin complet)** | Installation de plugin Copilot | `copilot plugin install rohitg00/agentmemory:plugin` pour le plugin depuis le sous-répertoire GitHub. |
|
||||
| **OpenClaw** | Config MCP d'OpenClaw | Même bloc `mcpServers`, ou utilisez le [plugin mémoire plus poussé](../integrations/openclaw/). |
|
||||
| **OpenClaw** | Config MCP d'OpenClaw | Même bloc `mcpServers`. Plus poussé : `openclaw plugins install ./integrations/openclaw` s'approprie le slot mémoire d'OpenClaw (bascule automatiquement depuis `memory-core`) ; définissez `plugins.entries.agentmemory.hooks.allowConversationAccess=true`, sinon la capture de tour est silencieusement bloquée. Voir [`integrations/openclaw`](integrations/openclaw/). |
|
||||
| **Codex CLI (MCP seul)** | `.codex/config.toml` | Format TOML : `codex mcp add agentmemory -- npx -y @agentmemory/mcp`, ou ajoutez `[mcp_servers.agentmemory]` à la main. |
|
||||
| **Codex CLI (plugin complet)** | Marketplace de plugins Codex | `codex plugin marketplace add rohitg00/agentmemory` puis `codex plugin add agentmemory@agentmemory`. Enregistre MCP + 6 hooks de cycle de vie (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Stop) + 17 skills. Sur Codex Desktop, lancez également `agentmemory connect codex --with-hooks` en attendant que [openai/codex#16430](https://github.com/openai/codex/issues/16430) soit corrigé ; les hooks de plugin y sont actuellement silencieux. |
|
||||
| **OpenCode (MCP seul)** | `opencode.json` | Format différent : clé `mcp` au niveau racine, commande sous forme de tableau : `{"mcp": {"agentmemory": {"type": "local", "command": ["npx", "-y", "@agentmemory/mcp"], "enabled": true}}}`. |
|
||||
| **OpenCode (plugin complet)** | `plugin/opencode/` | 22 hooks de capture automatique couvrant cycle de vie de session, messages, outils, erreurs. L'attribution de projet est par session, donc un même processus OpenCode couvrant plusieurs dépôts classe chaque session sous son propre projet. Deux commandes slash (`/recall`, `/remember`). Copiez `plugin/opencode/` dans votre workspace OpenCode et ajoutez l'entrée du plugin à `opencode.json`. Voir [`plugin/opencode/README.md`](../plugin/opencode/README.md) pour le tableau complet des hooks et l'analyse des manques. |
|
||||
| **pi** | `~/.pi/agent/extensions/agentmemory` | `agentmemory connect pi` installe l'extension embarquée dans le répertoire d'auto-découverte de pi (recall au démarrage de l'agent, capture à la fin de l'agent, outils `memory_search` / `memory_save` / `memory_health`, `/agentmemory-status`). `/reload` dans un pi en cours d'exécution la prend en compte. [`integrations/pi`](../integrations/pi/) est aussi un paquet pi (`pi install ./integrations/pi` depuis un checkout). |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | Utilisez le [plugin de fournisseur de mémoire plus poussé](../integrations/hermes/) avec `memory.provider: agentmemory`. |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | `cp -r integrations/hermes ~/.hermes/plugins/agentmemory` + `memory.provider: agentmemory` active le fournisseur de mémoire à 6 hooks (préchargement, capture de tour, fin de session, pré-compression, mise en miroir de MEMORY.md, bloc de prompt système). Validez avec `hermes plugins doctor` et `hermes memory status`. Voir [`integrations/hermes`](integrations/hermes/). |
|
||||
| **Qwen Code** | `~/.qwen/settings.json` | `agentmemory connect qwen` écrit le bloc `mcpServers` standard. La charge utile des hooks est compatible champ-à-champ avec Claude Code, donc les 12 scripts de hooks existants fonctionnent sans modification ; câblez-les via la section `hooks` du même `settings.json`. |
|
||||
| **Antigravity** (remplace Gemini CLI) | `mcp_config.json` (dans le répertoire User d'Antigravity) | `agentmemory connect antigravity` écrit le bloc `mcpServers` standard. macOS : `~/Library/Application Support/Antigravity/User/`. Linux : `~/.config/Antigravity/User/`. À utiliser après l'arrêt de Gemini CLI au 2026-06-18. |
|
||||
| **Antigravity CLI** (`agy`) | `~/.gemini/config/mcp_config.json` | `agentmemory connect antigravity-cli`. La CLI `agy` garde sa propre config sous `~/.gemini/`, distincte de l'IDE Antigravity ci-dessus. Passez `--with-hooks` pour la capture automatique native via `~/.gemini/config/hooks.json`. |
|
||||
|
||||
@@ -169,7 +169,7 @@ agentmemory किसी भी ऐसे एजेंट के साथ क
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://cursor.com"><img src="https://www.freelogovectors.net/wp-content/uploads/2025/06/cursor-logo-freelogovectors.net_.png" alt="Cursor" width="48" height="48" /></a><br/>
|
||||
<strong>Cursor</strong><br/>
|
||||
<sub>native plugin + MCP</sub>
|
||||
<sub>MCP सर्वर</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/google-gemini/gemini-cli"><img src="https://github.com/google-gemini.png?size=120" alt="Gemini CLI" width="48" height="48" /></a><br/>
|
||||
@@ -209,9 +209,9 @@ agentmemory किसी भी ऐसे एजेंट के साथ क
|
||||
<sub>MCP सर्वर</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://windsurf.com"><img src="https://exafunction.github.io/public/brand/windsurf-black-symbol.svg?size=120" alt="Windsurf" width="48" height="48" /></a><br/>
|
||||
<strong>Windsurf</strong><br/>
|
||||
<sub>MCP सर्वर</sub>
|
||||
<a href="https://devin.ai"><img src="https://raw.githubusercontent.com/rohitg00/agentmemory/main/website/public/devin.png" alt="Devin" width="48" height="48" /></a><br/>
|
||||
<strong>Devin</strong><br/>
|
||||
<sub>6 hooks + MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/RooCodeInc/Roo-Code"><img src="https://github.com/RooCodeInc.png?size=120" alt="Roo Code" width="48" height="48" /></a><br/>
|
||||
@@ -636,21 +636,21 @@ agentmemory entry `mcpServers` shape का उपयोग करने वा
|
||||
|
||||
| एजेंट | Config फाइल | नोट्स |
|
||||
|---|---|---|
|
||||
| **Cursor (केवल MCP)** | `~/.cursor/mcp.json` | `mcpServers` में merge करें, या `agentmemory connect cursor`। Website पर one-click deeplink भी उपलब्ध। |
|
||||
| **Cursor (पूर्ण plugin)** | `.cursor-plugin/` | Cursor Marketplace listing (submission समीक्षा में) या Cursor Settings → Plugins → local checkout। 7 auto-capture hooks (sessionStart, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, stop, sessionEnd) + 17 skills + MCP server register करता है; `AGENTMEMORY_URL` / `AGENTMEMORY_SECRET` Cursor के plugin dashboard में manage होते हैं। Cursor IDE और `cursor-agent` CLI दोनों में काम करता है; CLI print mode के prompts session end पर transcript से backfill होते हैं। |
|
||||
| **Cursor** | `~/.cursor/mcp.json` | `mcpServers` में merge करें। Website पर one-click deeplink भी उपलब्ध। |
|
||||
| **Claude Desktop** | `claude_desktop_config.json` (Application Support) | `mcpServers` में merge करें। Edit के बाद Claude Desktop restart करें। |
|
||||
| **Cline / Roo Code / Kilo Code** | Cline MCP settings (Settings UI → MCP Servers → Edit) | वही `mcpServers` block। |
|
||||
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | वही `mcpServers` block। |
|
||||
| **Devin CLI** | `~/.config/devin/config.json` | `agentmemory connect devin` MCP entry merge करता है; `--with-hooks` छह native auto-capture hooks (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SessionEnd) जोड़ता है, Devin के lowercase tool matchers के साथ। `devin mcp list` और devin के अंदर `/hooks` से verify करें। |
|
||||
| **Devin (cloud)** | Settings → Connections → MCP servers | Custom MCP (STDIO) जोड़ें: command `npx`, args `-y @agentmemory/mcp@latest`, env `AGENTMEMORY_URL` एक network-reachable agentmemory deployment पर plus `AGENTMEMORY_SECRET` (cloud sessions localhost तक नहीं पहुँचते — देखें [`deploy/`](../deploy/))। |
|
||||
| **Gemini CLI** | `~/.gemini/settings.json` | `gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user` (auto-merges)। |
|
||||
| **GitHub Copilot CLI (केवल MCP)** | `~/.copilot/mcp-config.json` | `agentmemory connect copilot-cli` `mcpServers.agentmemory` merge करता है; Copilot इसे अगली launch या `/mcp` पर pick कर लेता है। |
|
||||
| **GitHub Copilot CLI (पूर्ण plugin)** | Copilot plugin install | GitHub subdir से plugin के लिए `copilot plugin install rohitg00/agentmemory:plugin`। |
|
||||
| **OpenClaw** | OpenClaw MCP config | वही `mcpServers` block, या गहरे [memory plugin](../integrations/openclaw/) का उपयोग करें। |
|
||||
| **OpenClaw** | OpenClaw MCP config | वही `mcpServers` block। गहराई से: `openclaw plugins install ./integrations/openclaw` OpenClaw का memory slot claim कर लेता है (`memory-core` से auto-switch करता है); `plugins.entries.agentmemory.hooks.allowConversationAccess=true` सेट करें, वरना turn capture चुपचाप block हो जाता है। [`integrations/openclaw`](integrations/openclaw/) देखें। |
|
||||
| **Codex CLI (केवल MCP)** | `.codex/config.toml` | TOML shape: `codex mcp add agentmemory -- npx -y @agentmemory/mcp`, या manually `[mcp_servers.agentmemory]` जोड़ें। |
|
||||
| **Codex CLI (पूर्ण plugin)** | Codex plugin marketplace | `codex plugin marketplace add rohitg00/agentmemory` फिर `codex plugin add agentmemory@agentmemory`। MCP + 6 lifecycle hooks (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Stop) + 17 skills register करता है। Codex Desktop पर, [openai/codex#16430](https://github.com/openai/codex/issues/16430) land होने तक `agentmemory connect codex --with-hooks` भी चलाएँ; plugin hooks वर्तमान में वहाँ silent हैं। |
|
||||
| **OpenCode (केवल MCP)** | `opencode.json` | अलग shape: top-level `mcp` key, command array के रूप में: `{"mcp": {"agentmemory": {"type": "local", "command": ["npx", "-y", "@agentmemory/mcp"], "enabled": true}}}`। |
|
||||
| **OpenCode (पूर्ण plugin)** | `plugin/opencode/` | Session lifecycle, messages, tools, errors को कवर करने वाले 22 auto-capture hooks। Project attribution प्रति-session है, इसलिए कई repositories में फैली एक OpenCode process हर session को उसके अपने project के अंतर्गत file करती है। दो slash commands (`/recall`, `/remember`)। `plugin/opencode/` को अपने OpenCode workspace में copy करें और plugin entry को `opencode.json` में जोड़ें। पूरी hook table + gap analysis के लिए [`plugin/opencode/README.md`](../plugin/opencode/README.md) देखें। |
|
||||
| **pi** | `~/.pi/agent/extensions/agentmemory` | `agentmemory connect pi` bundled extension को pi की auto-discovery directory में install करता है (agent start पर recall, agent end पर capture, `memory_search` / `memory_save` / `memory_health` tools, `/agentmemory-status`)। चल रहे pi में `/reload` इसे pick कर लेता है। [`integrations/pi`](../integrations/pi/) एक pi package भी है (checkout से `pi install ./integrations/pi`)। |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | गहरे [memory provider plugin](../integrations/hermes/) का उपयोग `memory.provider: agentmemory` के साथ करें। |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | `cp -r integrations/hermes ~/.hermes/plugins/agentmemory` + `memory.provider: agentmemory` 6-hook memory provider (prefetch, turn capture, session end, pre-compress, MEMORY.md mirroring, system prompt block) को enable कर देता है। `hermes plugins doctor` और `hermes memory status` से validate करें। [`integrations/hermes`](integrations/hermes/) देखें। |
|
||||
| **Qwen Code** | `~/.qwen/settings.json` | `agentmemory connect qwen` standard `mcpServers` block लिखता है। Hook payload Claude Code के साथ field-compatible है, इसलिए मौजूदा 12-hook scripts modification के बिना काम करते हैं; उन्हें उसी `settings.json` के `hooks` section के माध्यम से जोड़ें। |
|
||||
| **Antigravity** (Gemini CLI को replace करता है) | `mcp_config.json` (Antigravity की User dir में) | `agentmemory connect antigravity` standard `mcpServers` block लिखता है। macOS: `~/Library/Application Support/Antigravity/User/`। Linux: `~/.config/Antigravity/User/`। 2026-06-18 Gemini CLI sunset के बाद उपयोग करें। |
|
||||
| **Antigravity CLI** (`agy`) | `~/.gemini/config/mcp_config.json` | `agentmemory connect antigravity-cli`। `agy` CLI अपनी config `~/.gemini/` के अंतर्गत रखता है, ऊपर वाले Antigravity IDE से अलग। `~/.gemini/config/hooks.json` के माध्यम से native auto-capture के लिए `--with-hooks` pass करें। |
|
||||
|
||||
+12
-12
@@ -169,7 +169,7 @@ agentmemory は hooks、MCP、REST API をサポートするあらゆるエー
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://cursor.com"><img src="https://www.freelogovectors.net/wp-content/uploads/2025/06/cursor-logo-freelogovectors.net_.png" alt="Cursor" width="48" height="48" /></a><br/>
|
||||
<strong>Cursor</strong><br/>
|
||||
<sub>ネイティブプラグイン + MCP</sub>
|
||||
<sub>MCP サーバー</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/google-gemini/gemini-cli"><img src="https://github.com/google-gemini.png?size=120" alt="Gemini CLI" width="48" height="48" /></a><br/>
|
||||
@@ -209,9 +209,9 @@ agentmemory は hooks、MCP、REST API をサポートするあらゆるエー
|
||||
<sub>MCP サーバー</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://windsurf.com"><img src="https://exafunction.github.io/public/brand/windsurf-black-symbol.svg?size=120" alt="Windsurf" width="48" height="48" /></a><br/>
|
||||
<strong>Windsurf</strong><br/>
|
||||
<sub>MCP サーバー</sub>
|
||||
<a href="https://devin.ai"><img src="https://raw.githubusercontent.com/rohitg00/agentmemory/main/website/public/devin.png" alt="Devin" width="48" height="48" /></a><br/>
|
||||
<strong>Devin</strong><br/>
|
||||
<sub>6 hooks + MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/RooCodeInc/Roo-Code"><img src="https://github.com/RooCodeInc.png?size=120" alt="Roo Code" width="48" height="48" /></a><br/>
|
||||
@@ -554,7 +554,7 @@ codex plugin add agentmemory@agentmemory
|
||||
|
||||
Codex プラグインは Claude Code プラグインと同じ `plugin/` ディレクトリから出荷されます。以下を登録します:
|
||||
|
||||
- `@agentmemory/mcp` を MCP サーバーとして(`AGENTMEMORY_URL` が動作中の agentmemory サーバーを指す場合は 51 ツールすべてをプロキシ、サーバーに到達できない場合はローカルで 7 ツールにフォールバック)
|
||||
- `@agentmemory/mcp` を MCP サーバーとして(`AGENTMEMORY_URL` が動作中の agentmemory サーバーを指す場合は 54 ツールすべてをプロキシ、サーバーに到達できない場合はローカルで 7 ツールにフォールバック)
|
||||
- 6 つのライフサイクル hooks: `SessionStart`、`UserPromptSubmit`、`PreToolUse`、`PostToolUse`、`PreCompact`、`Stop`
|
||||
- 呼び出し可能な 9 つの skills: `/recall`、`/remember`、`/session-history`、`/forget`、`/recap`、`/handoff`、`/lesson`、`/commit-context`、`/commit-history`、さらにエージェントが必要時に読み込む 8 つのリファレンス skills(memory discipline, MCP ツール、REST API、設定、エージェント、フック、アーキテクチャ、skill 執筆ガイド)
|
||||
|
||||
@@ -576,7 +576,7 @@ agentmemory connect codex --with-hooks
|
||||
<summary><b>OpenClaw(このプロンプトを貼り付け)</b></summary>
|
||||
|
||||
```text
|
||||
Install agentmemory for OpenClaw. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to my OpenClaw MCP config so agentmemory is available with all 51 memory tools:
|
||||
Install agentmemory for OpenClaw. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to my OpenClaw MCP config so agentmemory is available with all 54 memory tools:
|
||||
|
||||
{
|
||||
"mcpServers": {
|
||||
@@ -601,7 +601,7 @@ Restart OpenClaw. Verify with `curl http://localhost:3111/agentmemory/health`. O
|
||||
<summary><b>Hermes Agent(このプロンプトを貼り付け)</b></summary>
|
||||
|
||||
```text
|
||||
Install agentmemory for Hermes. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to ~/.hermes/config.yaml so Hermes can use agentmemory as an MCP server with all 51 memory tools:
|
||||
Install agentmemory for Hermes. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to ~/.hermes/config.yaml so Hermes can use agentmemory as an MCP server with all 54 memory tools:
|
||||
|
||||
mcp_servers:
|
||||
agentmemory:
|
||||
@@ -658,21 +658,21 @@ skills CLI がまだカバーしていない少数のエージェント(Zed v1.3
|
||||
|
||||
| エージェント | 設定ファイル | 備考 |
|
||||
|---|---|---|
|
||||
| **Cursor (MCP のみ)** | `~/.cursor/mcp.json` | `mcpServers` にマージ、または `agentmemory connect cursor`。ウェブサイトでワンクリックディープリンクも利用可能。 |
|
||||
| **Cursor (フルプラグイン)** | `.cursor-plugin/` | Cursor Marketplace の掲載(申請レビュー中)、または Cursor Settings → Plugins → ローカルチェックアウト。7 つの自動キャプチャ hooks(sessionStart, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, stop, sessionEnd)+ 17 の skills + MCP サーバーを登録し、`AGENTMEMORY_URL` / `AGENTMEMORY_SECRET` は Cursor のプラグインダッシュボードで管理します。Cursor IDE と `cursor-agent` CLI の両方で動作。CLI の print モードのプロンプトはセッション終了時にトランスクリプトから補完されます。 |
|
||||
| **Cursor** | `~/.cursor/mcp.json` | `mcpServers` にマージ。ウェブサイトでワンクリックディープリンクも利用可能。 |
|
||||
| **Claude Desktop** | `claude_desktop_config.json`(Application Support) | `mcpServers` にマージ。編集後 Claude Desktop を再起動。 |
|
||||
| **Cline / Roo Code / Kilo Code** | Cline MCP 設定(設定 UI → MCP Servers → Edit) | 同じ `mcpServers` ブロック。 |
|
||||
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | 同じ `mcpServers` ブロック。 |
|
||||
| **Devin CLI** | `~/.config/devin/config.json` | `agentmemory connect devin` が MCP エントリをマージし、`--with-hooks` で 6 つのネイティブ自動キャプチャ hooks(SessionStart、UserPromptSubmit、PreToolUse、PostToolUse、Stop、SessionEnd)を Devin の小文字ツールマッチャー付きで追加します。`devin mcp list` と devin 内の `/hooks` で確認してください。 |
|
||||
| **Devin(クラウド)** | Settings → Connections → MCP servers | カスタム MCP(STDIO)を追加: command `npx`、args `-y @agentmemory/mcp@latest`、env `AGENTMEMORY_URL` をネットワーク到達可能な agentmemory デプロイに向け、`AGENTMEMORY_SECRET` も設定(クラウドセッションは localhost に到達できません — [`deploy/`](../deploy/) を参照)。 |
|
||||
| **Gemini CLI** | `~/.gemini/settings.json` | `gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user`(自動マージ)。 |
|
||||
| **GitHub Copilot CLI(MCP のみ)** | `~/.copilot/mcp-config.json` | `agentmemory connect copilot-cli` が `mcpServers.agentmemory` をマージ。Copilot は次回起動時または `/mcp` で拾い上げます。 |
|
||||
| **GitHub Copilot CLI(フルプラグイン)** | Copilot プラグインインストール | GitHub サブディレクトリのプラグインは `copilot plugin install rohitg00/agentmemory:plugin`。 |
|
||||
| **OpenClaw** | OpenClaw MCP 設定 | 同じ `mcpServers` ブロック、または[より深いメモリプラグイン](../integrations/openclaw/)を使用。 |
|
||||
| **OpenClaw** | OpenClaw MCP 設定 | 同じ `mcpServers` ブロック。より深く: `openclaw plugins install ./integrations/openclaw` は OpenClaw のメモリスロットを占有します(`memory-core` から自動切り替え)。`plugins.entries.agentmemory.hooks.allowConversationAccess=true` を設定しないと、ターンキャプチャがサイレントにブロックされます。[`integrations/openclaw`](integrations/openclaw/) を参照。 |
|
||||
| **Codex CLI(MCP のみ)** | `.codex/config.toml` | TOML シェイプ: `codex mcp add agentmemory -- npx -y @agentmemory/mcp`、または `[mcp_servers.agentmemory]` を手動で追加。 |
|
||||
| **Codex CLI(フルプラグイン)** | Codex プラグインマーケットプレイス | `codex plugin marketplace add rohitg00/agentmemory` のあと `codex plugin add agentmemory@agentmemory`。MCP + 6 つのライフサイクル hooks(SessionStart、UserPromptSubmit、PreToolUse、PostToolUse、PreCompact、Stop)+ 17 個の skills を登録。Codex Desktop では、[openai/codex#16430](https://github.com/openai/codex/issues/16430) が解決するまで `agentmemory connect codex --with-hooks` も実行してください。そちらではプラグイン hooks が現在無音です。 |
|
||||
| **OpenCode(MCP のみ)** | `opencode.json` | 異なるシェイプ: トップレベルの `mcp` キー、command は配列: `{"mcp": {"agentmemory": {"type": "local", "command": ["npx", "-y", "@agentmemory/mcp"], "enabled": true}}}`。 |
|
||||
| **OpenCode(フルプラグイン)** | `plugin/opencode/` | 22 個の自動キャプチャ hooks がセッションライフサイクル、メッセージ、ツール、エラーをカバー。プロジェクトの帰属はセッション単位なので、1 つの OpenCode プロセスが複数のリポジトリにまたがっても、各セッションはそれぞれのプロジェクトに記録されます。2 つのスラッシュコマンド(`/recall`、`/remember`)。`plugin/opencode/` を OpenCode ワークスペースにコピーし、プラグインエントリを `opencode.json` に追加。完全な hook 表とギャップ分析は [`plugin/opencode/README.md`](../plugin/opencode/README.md) を参照。 |
|
||||
| **pi** | `~/.pi/agent/extensions/agentmemory` | `agentmemory connect pi` が同梱の拡張を pi の自動検出ディレクトリにインストールします(エージェント開始時のリコール、終了時のキャプチャ、`memory_search` / `memory_save` / `memory_health` ツール、`/agentmemory-status`)。実行中の pi では `/reload` で反映されます。[`integrations/pi`](../integrations/pi/) は pi パッケージでもあります(チェックアウトから `pi install ./integrations/pi`)。 |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | より深い[メモリプロバイダープラグイン](../integrations/hermes/)を使い、`memory.provider: agentmemory` を設定。 |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | `cp -r integrations/hermes ~/.hermes/plugins/agentmemory` + `memory.provider: agentmemory` で 6 フックのメモリプロバイダー(プリフェッチ、ターンキャプチャ、セッション終了、事前圧縮、MEMORY.md ミラーリング、システムプロンプトブロック)が有効になります。`hermes plugins doctor` と `hermes memory status` で検証してください。[`integrations/hermes`](integrations/hermes/) を参照。 |
|
||||
| **Qwen Code** | `~/.qwen/settings.json` | `agentmemory connect qwen` が標準の `mcpServers` ブロックを書き込みます。Hook ペイロードは Claude Code とフィールド互換なので、既存の 12 hook スクリプトはそのまま動作。同じ `settings.json` の `hooks` セクションで配線してください。 |
|
||||
| **Antigravity**(Gemini CLI の後継) | `mcp_config.json`(Antigravity の User ディレクトリ内) | `agentmemory connect antigravity` が標準の `mcpServers` ブロックを書き込みます。macOS: `~/Library/Application Support/Antigravity/User/`。Linux: `~/.config/Antigravity/User/`。2026-06-18 の Gemini CLI 終了後に使用。 |
|
||||
| **Antigravity CLI**(`agy`) | `~/.gemini/config/mcp_config.json` | `agentmemory connect antigravity-cli`。`agy` CLI は上の Antigravity IDE とは別に、独自の設定を `~/.gemini/` 配下に保持します。ネイティブ自動キャプチャには `--with-hooks` を渡すと `~/.gemini/config/hooks.json` 経由で配線されます。 |
|
||||
|
||||
+12
-12
@@ -169,7 +169,7 @@ agentmemory는 hooks, MCP, REST API를 지원하는 모든 에이전트와 호
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://cursor.com"><img src="https://www.freelogovectors.net/wp-content/uploads/2025/06/cursor-logo-freelogovectors.net_.png" alt="Cursor" width="48" height="48" /></a><br/>
|
||||
<strong>Cursor</strong><br/>
|
||||
<sub>네이티브 플러그인 + MCP</sub>
|
||||
<sub>MCP server</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/google-gemini/gemini-cli"><img src="https://github.com/google-gemini.png?size=120" alt="Gemini CLI" width="48" height="48" /></a><br/>
|
||||
@@ -209,9 +209,9 @@ agentmemory는 hooks, MCP, REST API를 지원하는 모든 에이전트와 호
|
||||
<sub>MCP server</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://windsurf.com"><img src="https://exafunction.github.io/public/brand/windsurf-black-symbol.svg?size=120" alt="Windsurf" width="48" height="48" /></a><br/>
|
||||
<strong>Windsurf</strong><br/>
|
||||
<sub>MCP server</sub>
|
||||
<a href="https://devin.ai"><img src="https://raw.githubusercontent.com/rohitg00/agentmemory/main/website/public/devin.png" alt="Devin" width="48" height="48" /></a><br/>
|
||||
<strong>Devin</strong><br/>
|
||||
<sub>6 hooks + MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/RooCodeInc/Roo-Code"><img src="https://github.com/RooCodeInc.png?size=120" alt="Roo Code" width="48" height="48" /></a><br/>
|
||||
@@ -551,7 +551,7 @@ codex plugin add agentmemory@agentmemory
|
||||
|
||||
Codex 플러그인은 Claude Code 플러그인과 동일한 `plugin/` 디렉터리에서 제공됩니다. 다음을 등록합니다:
|
||||
|
||||
- `@agentmemory/mcp`를 MCP 서버로 등록 (`AGENTMEMORY_URL`이 실행 중인 agentmemory 서버를 가리킬 때 51개 도구 모두 프록시. 도달 가능한 서버가 없으면 로컬에서 7개 도구로 폴백)
|
||||
- `@agentmemory/mcp`를 MCP 서버로 등록 (`AGENTMEMORY_URL`이 실행 중인 agentmemory 서버를 가리킬 때 54개 도구 모두 프록시. 도달 가능한 서버가 없으면 로컬에서 7개 도구로 폴백)
|
||||
- 6개 라이프사이클 hooks: `SessionStart`, `UserPromptSubmit`, `PreToolUse`, `PostToolUse`, `PreCompact`, `Stop`
|
||||
- 호출 가능한 skills 9개: `/recall`, `/remember`, `/session-history`, `/forget`, `/recap`, `/handoff`, `/lesson`, `/commit-context`, `/commit-history`, 그리고 에이전트가 필요할 때 로드하는 참조 skills 8개(memory discipline, MCP 도구, REST API, 설정, 에이전트, 훅, 아키텍처, skill 작성 가이드)
|
||||
|
||||
@@ -573,7 +573,7 @@ agentmemory connect codex --with-hooks
|
||||
<summary><b>OpenClaw (이 프롬프트를 붙여넣으세요)</b></summary>
|
||||
|
||||
```text
|
||||
Install agentmemory for OpenClaw. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to my OpenClaw MCP config so agentmemory is available with all 51 memory tools:
|
||||
Install agentmemory for OpenClaw. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to my OpenClaw MCP config so agentmemory is available with all 54 memory tools:
|
||||
|
||||
{
|
||||
"mcpServers": {
|
||||
@@ -598,7 +598,7 @@ Restart OpenClaw. Verify with `curl http://localhost:3111/agentmemory/health`. O
|
||||
<summary><b>Hermes Agent (이 프롬프트를 붙여넣으세요)</b></summary>
|
||||
|
||||
```text
|
||||
Install agentmemory for Hermes. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to ~/.hermes/config.yaml so Hermes can use agentmemory as an MCP server with all 51 memory tools:
|
||||
Install agentmemory for Hermes. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to ~/.hermes/config.yaml so Hermes can use agentmemory as an MCP server with all 54 memory tools:
|
||||
|
||||
mcp_servers:
|
||||
agentmemory:
|
||||
@@ -655,21 +655,21 @@ agentmemory 항목은 `mcpServers` 형태를 사용하는 모든 호스트(Curso
|
||||
|
||||
| 에이전트 | 설정 파일 | 비고 |
|
||||
|---|---|---|
|
||||
| **Cursor (MCP 전용)** | `~/.cursor/mcp.json` | `mcpServers`에 병합하거나 `agentmemory connect cursor`. 웹사이트에서 원클릭 deeplink도 사용 가능. |
|
||||
| **Cursor (전체 플러그인)** | `.cursor-plugin/` | Cursor Marketplace 등록(제출 심사 중) 또는 Cursor Settings → Plugins → 로컬 체크아웃. 자동 캡처 hooks 7개(sessionStart, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, stop, sessionEnd) + skills 17개 + MCP 서버를 등록하며, `AGENTMEMORY_URL` / `AGENTMEMORY_SECRET`은 Cursor 플러그인 대시보드에서 관리됩니다. Cursor IDE와 `cursor-agent` CLI 모두에서 동작; CLI print 모드의 프롬프트는 세션 종료 시 transcript에서 채워집니다. |
|
||||
| **Cursor** | `~/.cursor/mcp.json` | `mcpServers`에 병합. 웹사이트에서 원클릭 deeplink도 사용 가능. |
|
||||
| **Claude Desktop** | `claude_desktop_config.json` (Application Support) | `mcpServers`에 병합. 편집 후 Claude Desktop 재시작. |
|
||||
| **Cline / Roo Code / Kilo Code** | Cline MCP settings (Settings UI → MCP Servers → Edit) | 동일한 `mcpServers` 블록. |
|
||||
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | 동일한 `mcpServers` 블록. |
|
||||
| **Devin CLI** | `~/.config/devin/config.json` | `agentmemory connect devin`이 MCP 항목을 병합하고, `--with-hooks`는 Devin의 소문자 tool matcher를 사용하는 6개의 네이티브 자동 캡처 hooks(SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SessionEnd)를 추가합니다. `devin mcp list`와 devin 내부의 `/hooks`로 확인하세요. |
|
||||
| **Devin (클라우드)** | Settings → Connections → MCP servers | 커스텀 MCP(STDIO) 추가: command `npx`, args `-y @agentmemory/mcp@latest`, env `AGENTMEMORY_URL`을 네트워크로 접근 가능한 agentmemory 배포로 지정하고 `AGENTMEMORY_SECRET` 설정(클라우드 세션은 localhost에 접근할 수 없음 — [`deploy/`](../deploy/) 참고). |
|
||||
| **Gemini CLI** | `~/.gemini/settings.json` | `gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user` (자동 병합). |
|
||||
| **GitHub Copilot CLI (MCP only)** | `~/.copilot/mcp-config.json` | `agentmemory connect copilot-cli`가 `mcpServers.agentmemory`를 병합. Copilot은 다음 실행 또는 `/mcp`에서 인식. |
|
||||
| **GitHub Copilot CLI (full plugin)** | Copilot 플러그인 설치 | GitHub 하위 디렉터리의 플러그인은 `copilot plugin install rohitg00/agentmemory:plugin`. |
|
||||
| **OpenClaw** | OpenClaw MCP config | 동일한 `mcpServers` 블록을 사용하거나, 더 깊은 [memory plugin](../integrations/openclaw/)을 사용. |
|
||||
| **OpenClaw** | OpenClaw MCP config | 동일한 `mcpServers` 블록. 더 깊게: `openclaw plugins install ./integrations/openclaw`는 OpenClaw의 메모리 슬롯을 차지합니다(`memory-core`에서 자동 전환). `plugins.entries.agentmemory.hooks.allowConversationAccess=true`를 설정하지 않으면 턴 캡처가 조용히 차단됩니다. [`integrations/openclaw`](integrations/openclaw/) 참고. |
|
||||
| **Codex CLI (MCP only)** | `.codex/config.toml` | TOML 형식: `codex mcp add agentmemory -- npx -y @agentmemory/mcp`, 또는 `[mcp_servers.agentmemory]`를 수동으로 추가. |
|
||||
| **Codex CLI (full plugin)** | Codex 플러그인 마켓플레이스 | `codex plugin marketplace add rohitg00/agentmemory` 후 `codex plugin add agentmemory@agentmemory`. MCP + 6 lifecycle hooks (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Stop) + 17 skills 등록. Codex Desktop에서는 [openai/codex#16430](https://github.com/openai/codex/issues/16430)이 머지될 때까지 `agentmemory connect codex --with-hooks`도 실행해야 합니다. 현재 그곳에서는 플러그인 hooks가 동작하지 않습니다. |
|
||||
| **OpenCode (MCP only)** | `opencode.json` | 다른 형식: 최상위 `mcp` 키, 명령은 배열로: `{"mcp": {"agentmemory": {"type": "local", "command": ["npx", "-y", "@agentmemory/mcp"], "enabled": true}}}`. |
|
||||
| **OpenCode (full plugin)** | `plugin/opencode/` | 세션 라이프사이클, 메시지, 도구, 오류를 다루는 22개의 자동 캡처 hooks. 프로젝트 어트리뷰션은 세션 단위이므로, 하나의 OpenCode 프로세스가 여러 저장소에 걸쳐 있어도 각 세션은 자기 프로젝트 아래에 기록됩니다. 두 개의 슬래시 명령(`/recall`, `/remember`). `plugin/opencode/`를 OpenCode workspace에 복사한 후 `opencode.json`에 플러그인 항목을 추가하십시오. 전체 hook 표 + gap 분석은 [`plugin/opencode/README.md`](../plugin/opencode/README.md) 참고. |
|
||||
| **pi** | `~/.pi/agent/extensions/agentmemory` | `agentmemory connect pi`가 번들된 확장을 pi의 자동 발견 디렉터리에 설치합니다(에이전트 시작 시 리콜, 에이전트 종료 시 캡처, `memory_search` / `memory_save` / `memory_health` 도구, `/agentmemory-status`). 실행 중인 pi에서 `/reload`를 하면 인식됩니다. [`integrations/pi`](../integrations/pi/)는 pi 패키지이기도 합니다(체크아웃에서 `pi install ./integrations/pi`). |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | `memory.provider: agentmemory`로 더 깊은 [memory provider plugin](../integrations/hermes/) 사용. |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | `cp -r integrations/hermes ~/.hermes/plugins/agentmemory` + `memory.provider: agentmemory`가 6개 hook로 구성된 메모리 프로바이더(프리페치, 턴 캡처, 세션 종료, 사전 압축, MEMORY.md 미러링, 시스템 프롬프트 블록)를 활성화합니다. `hermes plugins doctor`와 `hermes memory status`로 검증하세요. [`integrations/hermes`](integrations/hermes/) 참고. |
|
||||
| **Qwen Code** | `~/.qwen/settings.json` | `agentmemory connect qwen`이 표준 `mcpServers` 블록을 기록. Hook 페이로드는 Claude Code와 필드 호환이므로, 기존 12-hook 스크립트가 수정 없이 동작합니다. 동일한 `settings.json`의 `hooks` 섹션에서 연결하십시오. |
|
||||
| **Antigravity** (Gemini CLI 대체) | `mcp_config.json` (Antigravity의 User 디렉터리 내) | `agentmemory connect antigravity`가 표준 `mcpServers` 블록을 기록. macOS: `~/Library/Application Support/Antigravity/User/`. Linux: `~/.config/Antigravity/User/`. 2026-06-18 Gemini CLI sunset 이후 사용. |
|
||||
| **Antigravity CLI** (`agy`) | `~/.gemini/config/mcp_config.json` | `agentmemory connect antigravity-cli`. `agy` CLI는 위의 Antigravity IDE와 별도로 `~/.gemini/` 아래에 자체 설정을 유지합니다. `~/.gemini/config/hooks.json`을 통한 네이티브 자동 캡처는 `--with-hooks`를 전달하십시오. |
|
||||
|
||||
@@ -169,7 +169,7 @@ agentmemory funciona com qualquer agente que suporte hooks, MCP ou REST API. Tod
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://cursor.com"><img src="https://www.freelogovectors.net/wp-content/uploads/2025/06/cursor-logo-freelogovectors.net_.png" alt="Cursor" width="48" height="48" /></a><br/>
|
||||
<strong>Cursor</strong><br/>
|
||||
<sub>plugin nativo + MCP</sub>
|
||||
<sub>MCP server</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/google-gemini/gemini-cli"><img src="https://github.com/google-gemini.png?size=120" alt="Gemini CLI" width="48" height="48" /></a><br/>
|
||||
@@ -209,9 +209,9 @@ agentmemory funciona com qualquer agente que suporte hooks, MCP ou REST API. Tod
|
||||
<sub>MCP server</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://windsurf.com"><img src="https://exafunction.github.io/public/brand/windsurf-black-symbol.svg?size=120" alt="Windsurf" width="48" height="48" /></a><br/>
|
||||
<strong>Windsurf</strong><br/>
|
||||
<sub>MCP server</sub>
|
||||
<a href="https://devin.ai"><img src="https://raw.githubusercontent.com/rohitg00/agentmemory/main/website/public/devin.png" alt="Devin" width="48" height="48" /></a><br/>
|
||||
<strong>Devin</strong><br/>
|
||||
<sub>6 hooks + MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/RooCodeInc/Roo-Code"><img src="https://github.com/RooCodeInc.png?size=120" alt="Roo Code" width="48" height="48" /></a><br/>
|
||||
@@ -657,21 +657,21 @@ A entrada do agentmemory é o **mesmo bloco de servidor MCP** em todo host que u
|
||||
|
||||
| Agente | Arquivo de configuração | Notas |
|
||||
|---|---|---|
|
||||
| **Cursor (só MCP)** | `~/.cursor/mcp.json` | Mescle em `mcpServers`, ou `agentmemory connect cursor`. Deeplink de um clique também disponível no site. |
|
||||
| **Cursor (plugin completo)** | `.cursor-plugin/` | Listagem no Cursor Marketplace (submissão em revisão) ou Cursor Settings → Plugins → checkout local. Registra 7 hooks de captura automática (sessionStart, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, stop, sessionEnd) + 17 skills + o servidor MCP; `AGENTMEMORY_URL` / `AGENTMEMORY_SECRET` são gerenciados no painel de plugins do Cursor. Funciona no IDE do Cursor e na CLI `cursor-agent`; no modo print da CLI os prompts são recuperados do transcript no fim da sessão. |
|
||||
| **Cursor** | `~/.cursor/mcp.json` | Mescle em `mcpServers`. Deeplink de um clique também disponível no site. |
|
||||
| **Claude Desktop** | `claude_desktop_config.json` (Application Support) | Mescle em `mcpServers`. Reinicie o Claude Desktop após editar. |
|
||||
| **Cline / Roo Code / Kilo Code** | Configurações MCP do Cline (Settings UI → MCP Servers → Edit) | Mesmo bloco `mcpServers`. |
|
||||
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | Mesmo bloco `mcpServers`. |
|
||||
| **Devin CLI** | `~/.config/devin/config.json` | `agentmemory connect devin` mescla a entrada MCP; `--with-hooks` adiciona seis hooks nativos de captura automática (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SessionEnd) com os matchers de ferramentas em minúsculas do Devin. Verifique com `devin mcp list` e `/hooks` dentro do devin. |
|
||||
| **Devin (nuvem)** | Settings → Connections → MCP servers | Adicione um MCP personalizado (STDIO): command `npx`, args `-y @agentmemory/mcp@latest`, env `AGENTMEMORY_URL` apontando para um deployment de agentmemory acessível pela rede mais `AGENTMEMORY_SECRET` (sessões na nuvem não alcançam localhost — veja [`deploy/`](../deploy/)). |
|
||||
| **Gemini CLI** | `~/.gemini/settings.json` | `gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user` (mescla automaticamente). |
|
||||
| **GitHub Copilot CLI (somente MCP)** | `~/.copilot/mcp-config.json` | `agentmemory connect copilot-cli` mescla `mcpServers.agentmemory`; o Copilot o reconhece no próximo launch ou via `/mcp`. |
|
||||
| **GitHub Copilot CLI (plugin completo)** | Instalação de plugin do Copilot | `copilot plugin install rohitg00/agentmemory:plugin` para o plugin a partir do subdiretório do GitHub. |
|
||||
| **OpenClaw** | Configuração MCP do OpenClaw | Mesmo bloco `mcpServers`, ou use o [memory plugin](../integrations/openclaw/) mais profundo. |
|
||||
| **OpenClaw** | Configuração MCP do OpenClaw | Mesmo bloco `mcpServers`. Mais profundo: `openclaw plugins install ./integrations/openclaw` reivindica o slot de memória do OpenClaw (alterna automaticamente de `memory-core`); defina `plugins.entries.agentmemory.hooks.allowConversationAccess=true` ou a captura de turnos fica bloqueada silenciosamente. Veja [`integrations/openclaw`](integrations/openclaw/). |
|
||||
| **Codex CLI (somente MCP)** | `.codex/config.toml` | Formato TOML: `codex mcp add agentmemory -- npx -y @agentmemory/mcp`, ou adicione `[mcp_servers.agentmemory]` manualmente. |
|
||||
| **Codex CLI (plugin completo)** | Marketplace de plugins do Codex | `codex plugin marketplace add rohitg00/agentmemory` e depois `codex plugin add agentmemory@agentmemory`. Registra MCP + 6 hooks de ciclo de vida (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Stop) + 17 skills. No Codex Desktop, rode também `agentmemory connect codex --with-hooks` até que [openai/codex#16430](https://github.com/openai/codex/issues/16430) seja mergeado; os hooks de plugin estão silenciosos lá. |
|
||||
| **OpenCode (somente MCP)** | `opencode.json` | Formato diferente: chave `mcp` no topo, comando como array: `{"mcp": {"agentmemory": {"type": "local", "command": ["npx", "-y", "@agentmemory/mcp"], "enabled": true}}}`. |
|
||||
| **OpenCode (plugin completo)** | `plugin/opencode/` | 22 hooks de captura automática cobrindo ciclo de vida de sessão, mensagens, tools e erros. A atribuição de projeto é por sessão, então um único processo do OpenCode abrangendo vários repositórios arquiva cada sessão sob o próprio projeto. Dois comandos slash (`/recall`, `/remember`). Copie `plugin/opencode/` para seu workspace do OpenCode e adicione a entrada do plugin em `opencode.json`. Tabela completa de hooks + análise de gaps em [`plugin/opencode/README.md`](../plugin/opencode/README.md). |
|
||||
| **pi** | `~/.pi/agent/extensions/agentmemory` | `agentmemory connect pi` instala a extensão empacotada no diretório de auto-descoberta do pi (recall no início do agente, captura no fim do agente, tools `memory_search` / `memory_save` / `memory_health`, `/agentmemory-status`). `/reload` em um pi em execução a reconhece. [`integrations/pi`](../integrations/pi/) também é um pacote pi (`pi install ./integrations/pi` a partir de um checkout). |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | Use o [memory provider plugin](../integrations/hermes/) mais profundo com `memory.provider: agentmemory`. |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | `cp -r integrations/hermes ~/.hermes/plugins/agentmemory` + `memory.provider: agentmemory` ativa o memory provider de 6 hooks (prefetch, captura de turnos, fim de sessão, pré-compressão, espelhamento do MEMORY.md, bloco de system prompt). Valide com `hermes plugins doctor` e `hermes memory status`. Veja [`integrations/hermes`](integrations/hermes/). |
|
||||
| **Qwen Code** | `~/.qwen/settings.json` | `agentmemory connect qwen` escreve o bloco `mcpServers` padrão. O payload dos hooks é compatível em nível de campo com o Claude Code, então os scripts dos 12 hooks existentes funcionam sem modificação; conecte-os via a seção `hooks` do mesmo `settings.json`. |
|
||||
| **Antigravity** (substitui o Gemini CLI) | `mcp_config.json` (no diretório User do Antigravity) | `agentmemory connect antigravity` escreve o bloco `mcpServers` padrão. macOS: `~/Library/Application Support/Antigravity/User/`. Linux: `~/.config/Antigravity/User/`. Use após o sunset do Gemini CLI em 2026-06-18. |
|
||||
| **Antigravity CLI** (`agy`) | `~/.gemini/config/mcp_config.json` | `agentmemory connect antigravity-cli`. O CLI `agy` mantém a própria configuração em `~/.gemini/`, separada do Antigravity IDE acima. Passe `--with-hooks` para captura automática nativa via `~/.gemini/config/hooks.json`. |
|
||||
|
||||
+12
-12
@@ -169,7 +169,7 @@ agentmemory работает с любым агентом, поддержива
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://cursor.com"><img src="https://www.freelogovectors.net/wp-content/uploads/2025/06/cursor-logo-freelogovectors.net_.png" alt="Cursor" width="48" height="48" /></a><br/>
|
||||
<strong>Cursor</strong><br/>
|
||||
<sub>нативный плагин + MCP</sub>
|
||||
<sub>MCP-сервер</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/google-gemini/gemini-cli"><img src="https://github.com/google-gemini.png?size=120" alt="Gemini CLI" width="48" height="48" /></a><br/>
|
||||
@@ -209,9 +209,9 @@ agentmemory работает с любым агентом, поддержива
|
||||
<sub>MCP-сервер</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://windsurf.com"><img src="https://exafunction.github.io/public/brand/windsurf-black-symbol.svg?size=120" alt="Windsurf" width="48" height="48" /></a><br/>
|
||||
<strong>Windsurf</strong><br/>
|
||||
<sub>MCP-сервер</sub>
|
||||
<a href="https://devin.ai"><img src="https://raw.githubusercontent.com/rohitg00/agentmemory/main/website/public/devin.png" alt="Devin" width="48" height="48" /></a><br/>
|
||||
<strong>Devin</strong><br/>
|
||||
<sub>6 hooks + MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/RooCodeInc/Roo-Code"><img src="https://github.com/RooCodeInc.png?size=120" alt="Roo Code" width="48" height="48" /></a><br/>
|
||||
@@ -553,7 +553,7 @@ codex plugin add agentmemory@agentmemory
|
||||
|
||||
Плагин Codex поставляется из того же каталога `plugin/`, что и плагин Claude Code. Он регистрирует:
|
||||
|
||||
- `@agentmemory/mcp` как MCP-сервер (проксирует все 51 инструмент, когда `AGENTMEMORY_URL` указывает на работающий сервер agentmemory; локально откатывается к 7 инструментам, если сервер недоступен)
|
||||
- `@agentmemory/mcp` как MCP-сервер (проксирует все 54 инструмент, когда `AGENTMEMORY_URL` указывает на работающий сервер agentmemory; локально откатывается к 7 инструментам, если сервер недоступен)
|
||||
- 6 хуков жизненного цикла: `SessionStart`, `UserPromptSubmit`, `PreToolUse`, `PostToolUse`, `PreCompact`, `Stop`
|
||||
- 9 вызываемых skills: `/recall`, `/remember`, `/session-history`, `/forget`, `/recap`, `/handoff`, `/lesson`, `/commit-context`, `/commit-history`, плюс 8 справочных skills, которые агент загружает по запросу (memory discipline, инструменты MCP, REST API, конфигурация, агенты, хуки, архитектура и руководство по написанию skills)
|
||||
|
||||
@@ -575,7 +575,7 @@ agentmemory connect codex --with-hooks
|
||||
<summary><b>OpenClaw (вставьте этот промпт)</b></summary>
|
||||
|
||||
```text
|
||||
Install agentmemory for OpenClaw. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to my OpenClaw MCP config so agentmemory is available with all 51 memory tools:
|
||||
Install agentmemory for OpenClaw. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to my OpenClaw MCP config so agentmemory is available with all 54 memory tools:
|
||||
|
||||
{
|
||||
"mcpServers": {
|
||||
@@ -600,7 +600,7 @@ Restart OpenClaw. Verify with `curl http://localhost:3111/agentmemory/health`. O
|
||||
<summary><b>Hermes Agent (вставьте этот промпт)</b></summary>
|
||||
|
||||
```text
|
||||
Install agentmemory for Hermes. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to ~/.hermes/config.yaml so Hermes can use agentmemory as an MCP server with all 51 memory tools:
|
||||
Install agentmemory for Hermes. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to ~/.hermes/config.yaml so Hermes can use agentmemory as an MCP server with all 54 memory tools:
|
||||
|
||||
mcp_servers:
|
||||
agentmemory:
|
||||
@@ -657,21 +657,21 @@ npx skills add rohitg00/agentmemory -y -a '*' # install to every installed age
|
||||
|
||||
| Агент | Файл конфигурации | Заметки |
|
||||
|---|---|---|
|
||||
| **Cursor (только MCP)** | `~/.cursor/mcp.json` | Добавить в `mcpServers`, или `agentmemory connect cursor`. Также доступен deeplink в один клик на сайте. |
|
||||
| **Cursor (полный плагин)** | `.cursor-plugin/` | Карточка в Cursor Marketplace (заявка на рассмотрении) или Cursor Settings → Plugins → локальный checkout. Регистрирует 7 hooks автозахвата (sessionStart, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, stop, sessionEnd) + 17 skills + MCP-сервер; `AGENTMEMORY_URL` / `AGENTMEMORY_SECRET` управляются в панели плагинов Cursor. Работает в Cursor IDE и CLI `cursor-agent`; промпты CLI в режиме print дозаписываются из транскрипта при завершении сессии. |
|
||||
| **Cursor** | `~/.cursor/mcp.json` | Добавить в `mcpServers`. Также доступен deeplink в один клик на сайте. |
|
||||
| **Claude Desktop** | `claude_desktop_config.json` (Application Support) | Добавить в `mcpServers`. После правки перезапустить Claude Desktop. |
|
||||
| **Cline / Roo Code / Kilo Code** | Настройки MCP в Cline (Settings UI → MCP Servers → Edit) | Тот же блок `mcpServers`. |
|
||||
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | Тот же блок `mcpServers`. |
|
||||
| **Devin CLI** | `~/.config/devin/config.json` | `agentmemory connect devin` добавляет MCP-запись; `--with-hooks` подключает шесть нативных hooks автозахвата (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SessionEnd) с матчерами инструментов Devin в нижнем регистре. Проверьте через `devin mcp list` и `/hooks` внутри devin. |
|
||||
| **Devin (облако)** | Settings → Connections → MCP servers | Добавьте пользовательский MCP (STDIO): command `npx`, args `-y @agentmemory/mcp@latest`, env `AGENTMEMORY_URL` на доступное по сети развёртывание agentmemory плюс `AGENTMEMORY_SECRET` (облачные сессии не достают до localhost — см. [`deploy/`](../deploy/)). |
|
||||
| **Gemini CLI** | `~/.gemini/settings.json` | `gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user` (автоматическое слияние). |
|
||||
| **GitHub Copilot CLI (только MCP)** | `~/.copilot/mcp-config.json` | `agentmemory connect copilot-cli` вливает `mcpServers.agentmemory`; Copilot подхватывает при следующем запуске или по `/mcp`. |
|
||||
| **GitHub Copilot CLI (полный плагин)** | Установка плагина Copilot | `copilot plugin install rohitg00/agentmemory:plugin` — плагин из GitHub-подкаталога. |
|
||||
| **OpenClaw** | MCP-конфиг OpenClaw | Тот же блок `mcpServers`, либо более глубокий [memory-плагин](../integrations/openclaw/). |
|
||||
| **OpenClaw** | MCP-конфиг OpenClaw | Тот же блок `mcpServers`. Глубже: `openclaw plugins install ./integrations/openclaw` занимает слот памяти OpenClaw (автоматически переключается с `memory-core`); задайте `plugins.entries.agentmemory.hooks.allowConversationAccess=true`, иначе захват хода будет молча заблокирован. См. [`integrations/openclaw`](integrations/openclaw/). |
|
||||
| **Codex CLI (только MCP)** | `.codex/config.toml` | Формат TOML: `codex mcp add agentmemory -- npx -y @agentmemory/mcp`, либо добавьте `[mcp_servers.agentmemory]` вручную. |
|
||||
| **Codex CLI (полный плагин)** | Маркетплейс плагинов Codex | `codex plugin marketplace add rohitg00/agentmemory`, затем `codex plugin add agentmemory@agentmemory`. Регистрирует MCP + 6 хуков жизненного цикла (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Stop) + 17 skill'ов. На Codex Desktop дополнительно запустите `agentmemory connect codex --with-hooks`, пока не зарелизят [openai/codex#16430](https://github.com/openai/codex/issues/16430); хуки плагина там пока тихие. |
|
||||
| **OpenCode (только MCP)** | `opencode.json` | Другая форма: корневой ключ `mcp`, команда задаётся массивом: `{"mcp": {"agentmemory": {"type": "local", "command": ["npx", "-y", "@agentmemory/mcp"], "enabled": true}}}`. |
|
||||
| **OpenCode (полный плагин)** | `plugin/opencode/` | 22 хука авто-захвата по жизненному циклу сессии, сообщениям, инструментам и ошибкам. Атрибуция проекта задаётся на уровне сессии, поэтому один процесс OpenCode, охватывающий несколько репозиториев, кладёт каждую сессию в её собственный проект. Две slash-команды (`/recall`, `/remember`). Скопируйте `plugin/opencode/` в свой рабочий каталог OpenCode и добавьте запись плагина в `opencode.json`. Полная таблица хуков и анализ пробелов — в [`plugin/opencode/README.md`](../plugin/opencode/README.md). |
|
||||
| **pi** | `~/.pi/agent/extensions/agentmemory` | `agentmemory connect pi` устанавливает встроенное расширение в каталог автообнаружения pi (recall при старте агента, захват при завершении, инструменты `memory_search` / `memory_save` / `memory_health`, `/agentmemory-status`). `/reload` в работающем pi подхватывает его. [`integrations/pi`](../integrations/pi/) — это также pi-пакет (`pi install ./integrations/pi` из checkout'а). |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | Используйте более глубокий [плагин провайдера памяти](../integrations/hermes/) с `memory.provider: agentmemory`. |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | `cp -r integrations/hermes ~/.hermes/plugins/agentmemory` + `memory.provider: agentmemory` включает провайдера памяти с 6 хуками (предзагрузка, захват хода, завершение сессии, предварительное сжатие, зеркалирование MEMORY.md, блок системного промпта). Проверьте через `hermes plugins doctor` и `hermes memory status`. См. [`integrations/hermes`](integrations/hermes/). |
|
||||
| **Qwen Code** | `~/.qwen/settings.json` | `agentmemory connect qwen` записывает стандартный блок `mcpServers`. Payload хуков по полям совместим с Claude Code, поэтому существующие 12 скриптов хуков работают без изменений; подключите их через секцию `hooks` в том же `settings.json`. |
|
||||
| **Antigravity** (заменяет Gemini CLI) | `mcp_config.json` (в каталоге User у Antigravity) | `agentmemory connect antigravity` записывает стандартный блок `mcpServers`. macOS: `~/Library/Application Support/Antigravity/User/`. Linux: `~/.config/Antigravity/User/`. Использовать после отключения Gemini CLI 2026-06-18. |
|
||||
| **Antigravity CLI** (`agy`) | `~/.gemini/config/mcp_config.json` | `agentmemory connect antigravity-cli`. CLI `agy` держит собственный конфиг в `~/.gemini/`, отдельно от Antigravity IDE выше. Передайте `--with-hooks` для нативного авто-захвата через `~/.gemini/config/hooks.json`. |
|
||||
|
||||
@@ -169,7 +169,7 @@ agentmemory; hook'ları, MCP'yi veya REST API'yi destekleyen her ajanla çalış
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://cursor.com"><img src="https://www.freelogovectors.net/wp-content/uploads/2025/06/cursor-logo-freelogovectors.net_.png" alt="Cursor" width="48" height="48" /></a><br/>
|
||||
<strong>Cursor</strong><br/>
|
||||
<sub>yerel eklenti + MCP</sub>
|
||||
<sub>MCP sunucusu</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/google-gemini/gemini-cli"><img src="https://github.com/google-gemini.png?size=120" alt="Gemini CLI" width="48" height="48" /></a><br/>
|
||||
@@ -209,9 +209,9 @@ agentmemory; hook'ları, MCP'yi veya REST API'yi destekleyen her ajanla çalış
|
||||
<sub>MCP sunucusu</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://windsurf.com"><img src="https://exafunction.github.io/public/brand/windsurf-black-symbol.svg?size=120" alt="Windsurf" width="48" height="48" /></a><br/>
|
||||
<strong>Windsurf</strong><br/>
|
||||
<sub>MCP sunucusu</sub>
|
||||
<a href="https://devin.ai"><img src="https://raw.githubusercontent.com/rohitg00/agentmemory/main/website/public/devin.png" alt="Devin" width="48" height="48" /></a><br/>
|
||||
<strong>Devin</strong><br/>
|
||||
<sub>6 hooks + MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/RooCodeInc/Roo-Code"><img src="https://github.com/RooCodeInc.png?size=120" alt="Roo Code" width="48" height="48" /></a><br/>
|
||||
@@ -655,21 +655,21 @@ agentmemory girdisi, `mcpServers` şeklini kullanan her host'ta (Cursor, Claude
|
||||
|
||||
| Ajan | Yapılandırma dosyası | Notlar |
|
||||
|---|---|---|
|
||||
| **Cursor (yalnız MCP)** | `~/.cursor/mcp.json` | `mcpServers` içine birleştirin, veya `agentmemory connect cursor`. Web sitesinde tek tıklamayla deeplink de mevcut. |
|
||||
| **Cursor (tam eklenti)** | `.cursor-plugin/` | Cursor Marketplace kaydı (gönderim incelemede) veya Cursor Settings → Plugins → yerel checkout. 7 otomatik yakalama hook'u (sessionStart, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, stop, sessionEnd) + 17 skill + MCP sunucusunu kaydeder; `AGENTMEMORY_URL` / `AGENTMEMORY_SECRET` Cursor eklenti panosunda yönetilir. Cursor IDE ve `cursor-agent` CLI'de çalışır; CLI print modundaki prompt'lar oturum sonunda transcript'ten geri doldurulur. |
|
||||
| **Cursor** | `~/.cursor/mcp.json` | `mcpServers` içine birleştirin. Web sitesinde tek tıklamayla deeplink de mevcut. |
|
||||
| **Claude Desktop** | `claude_desktop_config.json` (Application Support) | `mcpServers` içine birleştirin. Düzenlemeden sonra Claude Desktop'ı yeniden başlatın. |
|
||||
| **Cline / Roo Code / Kilo Code** | Cline MCP ayarları (Settings UI → MCP Servers → Edit) | Aynı `mcpServers` bloğu. |
|
||||
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | Aynı `mcpServers` bloğu. |
|
||||
| **Devin CLI** | `~/.config/devin/config.json` | `agentmemory connect devin` MCP girdisini birleştirir; `--with-hooks` Devin'in küçük harfli araç matcher'larıyla altı yerel otomatik yakalama hook'u (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SessionEnd) ekler. `devin mcp list` ve devin içinde `/hooks` ile doğrulayın. |
|
||||
| **Devin (bulut)** | Settings → Connections → MCP servers | Özel MCP (STDIO) ekleyin: command `npx`, args `-y @agentmemory/mcp@latest`, env `AGENTMEMORY_URL` ağdan erişilebilir bir agentmemory dağıtımına ve `AGENTMEMORY_SECRET` (bulut oturumları localhost'a erişemez — bkz. [`deploy/`](../deploy/)). |
|
||||
| **Gemini CLI** | `~/.gemini/settings.json` | `gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user` (otomatik birleştirir). |
|
||||
| **GitHub Copilot CLI (yalnız MCP)** | `~/.copilot/mcp-config.json` | `agentmemory connect copilot-cli` `mcpServers.agentmemory`'yi birleştirir; Copilot bunu bir sonraki başlatmada veya `/mcp` ile alır. |
|
||||
| **GitHub Copilot CLI (tam eklenti)** | Copilot eklenti kurulumu | GitHub alt dizinindeki eklenti için `copilot plugin install rohitg00/agentmemory:plugin`. |
|
||||
| **OpenClaw** | OpenClaw MCP yapılandırması | Aynı `mcpServers` bloğu veya daha derin [bellek eklentisi](../integrations/openclaw/) kullanın. |
|
||||
| **OpenClaw** | OpenClaw MCP yapılandırması | Aynı `mcpServers` bloğu. Daha derin: `openclaw plugins install ./integrations/openclaw` OpenClaw'ın bellek slot'unu devralır (`memory-core`'dan otomatik geçiş yapar); `plugins.entries.agentmemory.hooks.allowConversationAccess=true` ayarlayın, yoksa tur yakalama sessizce engellenir. Bkz. [`integrations/openclaw`](integrations/openclaw/). |
|
||||
| **Codex CLI (yalnız MCP)** | `.codex/config.toml` | TOML şekli: `codex mcp add agentmemory -- npx -y @agentmemory/mcp` veya manuel olarak `[mcp_servers.agentmemory]` ekleyin. |
|
||||
| **Codex CLI (tam eklenti)** | Codex eklenti marketplace | `codex plugin marketplace add rohitg00/agentmemory` ardından `codex plugin add agentmemory@agentmemory`. MCP + 6 yaşam döngüsü hook'u (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Stop) + 17 skill kaydeder. Codex Desktop'ta, [openai/codex#16430](https://github.com/openai/codex/issues/16430) inene kadar `agentmemory connect codex --with-hooks` da çalıştırın; eklenti hook'ları şu anda orada sessiz. |
|
||||
| **OpenCode (yalnız MCP)** | `opencode.json` | Farklı şekil: üst seviye `mcp` anahtarı, komut dizi olarak: `{"mcp": {"agentmemory": {"type": "local", "command": ["npx", "-y", "@agentmemory/mcp"], "enabled": true}}}`. |
|
||||
| **OpenCode (tam eklenti)** | `plugin/opencode/` | Oturum yaşam döngüsü, mesajlar, araçlar, hataları kapsayan 22 otomatik yakalama hook'u. Proje ataması oturum başınadır; bu yüzden birden çok depoya yayılan tek bir OpenCode süreci her oturumu kendi projesi altına dosyalar. İki slash komut (`/recall`, `/remember`). `plugin/opencode/`'u OpenCode çalışma alanınıza kopyalayın ve eklenti girdisini `opencode.json`'a ekleyin. Tam hook tablosu + gap analizi için [`plugin/opencode/README.md`](../plugin/opencode/README.md) bakın. |
|
||||
| **pi** | `~/.pi/agent/extensions/agentmemory` | `agentmemory connect pi` paketli uzantıyı pi'nin otomatik keşif dizinine kurar (ajan başlangıcında recall, ajan bitişinde yakalama, `memory_search` / `memory_save` / `memory_health` tool'ları, `/agentmemory-status`). Çalışan bir pi'de `/reload` bunu alır. [`integrations/pi`](../integrations/pi/) aynı zamanda bir pi paketidir (bir checkout içinden `pi install ./integrations/pi`). |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | Daha derin [bellek sağlayıcı eklentisi](../integrations/hermes/)'ni `memory.provider: agentmemory` ile kullanın. |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | `cp -r integrations/hermes ~/.hermes/plugins/agentmemory` + `memory.provider: agentmemory`, 6 hook'lu bellek sağlayıcısını etkinleştirir (ön yükleme, tur yakalama, oturum sonu, ön sıkıştırma, MEMORY.md yansıtma, sistem promptu bloğu). `hermes plugins doctor` ve `hermes memory status` ile doğrulayın. Bkz. [`integrations/hermes`](integrations/hermes/). |
|
||||
| **Qwen Code** | `~/.qwen/settings.json` | `agentmemory connect qwen` standart `mcpServers` bloğunu yazar. Hook yükü Claude Code ile alan-uyumludur, bu yüzden mevcut 12 hook scripti değişiklik yapmadan çalışır; aynı `settings.json`'daki `hooks` bölümü üzerinden bağlayın. |
|
||||
| **Antigravity** (Gemini CLI'nin yerini alır) | `mcp_config.json` (Antigravity'nin User dizininde) | `agentmemory connect antigravity` standart `mcpServers` bloğunu yazar. macOS: `~/Library/Application Support/Antigravity/User/`. Linux: `~/.config/Antigravity/User/`. 2026-06-18 Gemini CLI sonlandırılması sonrasında kullanın. |
|
||||
| **Antigravity CLI** (`agy`) | `~/.gemini/config/mcp_config.json` | `agentmemory connect antigravity-cli`. `agy` CLI'si kendi yapılandırmasını, yukarıdaki Antigravity IDE'den ayrı olarak `~/.gemini/` altında tutar. `~/.gemini/config/hooks.json` üzerinden yerel otomatik yakalama için `--with-hooks` geçin. |
|
||||
|
||||
@@ -169,7 +169,7 @@ agentmemory 兼容任何支持 hooks、MCP 或 REST API 的代理。所有代理
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://cursor.com"><img src="https://www.freelogovectors.net/wp-content/uploads/2025/06/cursor-logo-freelogovectors.net_.png" alt="Cursor" width="48" height="48" /></a><br/>
|
||||
<strong>Cursor</strong><br/>
|
||||
<sub>原生插件 + MCP</sub>
|
||||
<sub>MCP 服务器</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/google-gemini/gemini-cli"><img src="https://github.com/google-gemini.png?size=120" alt="Gemini CLI" width="48" height="48" /></a><br/>
|
||||
@@ -209,9 +209,9 @@ agentmemory 兼容任何支持 hooks、MCP 或 REST API 的代理。所有代理
|
||||
<sub>MCP 服务器</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://windsurf.com"><img src="https://exafunction.github.io/public/brand/windsurf-black-symbol.svg?size=120" alt="Windsurf" width="48" height="48" /></a><br/>
|
||||
<strong>Windsurf</strong><br/>
|
||||
<sub>MCP 服务器</sub>
|
||||
<a href="https://devin.ai"><img src="https://raw.githubusercontent.com/rohitg00/agentmemory/main/website/public/devin.png" alt="Devin" width="48" height="48" /></a><br/>
|
||||
<strong>Devin</strong><br/>
|
||||
<sub>6 hooks + MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/RooCodeInc/Roo-Code"><img src="https://github.com/RooCodeInc.png?size=120" alt="Roo Code" width="48" height="48" /></a><br/>
|
||||
@@ -656,21 +656,21 @@ npx skills add rohitg00/agentmemory -y -a '*' # 安装到每个已安装的代
|
||||
|
||||
| 代理 | 配置文件 | 备注 |
|
||||
|---|---|---|
|
||||
| **Cursor(仅 MCP)** | `~/.cursor/mcp.json` | 合并到 `mcpServers`,或 `agentmemory connect cursor`。网站上也提供一键深链。 |
|
||||
| **Cursor(完整插件)** | `.cursor-plugin/` | Cursor Marketplace 条目(提交审核中)或 Cursor Settings → Plugins → 本地 checkout。注册 7 个自动捕获 hooks(sessionStart, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, stop, sessionEnd)+ 17 个 skills + MCP 服务器;`AGENTMEMORY_URL` / `AGENTMEMORY_SECRET` 在 Cursor 插件面板中管理。Cursor IDE 和 `cursor-agent` CLI 均可用;CLI print 模式的提示词会在会话结束时从 transcript 回填。 |
|
||||
| **Cursor** | `~/.cursor/mcp.json` | 合并到 `mcpServers`。网站上也提供一键深链。 |
|
||||
| **Claude Desktop** | `claude_desktop_config.json` (Application Support) | 合并到 `mcpServers`。编辑后重启 Claude Desktop。 |
|
||||
| **Cline / Roo Code / Kilo Code** | Cline MCP 设置 (设置 UI → MCP Servers → Edit) | 同样的 `mcpServers` 块。 |
|
||||
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | 同样的 `mcpServers` 块。 |
|
||||
| **Devin CLI** | `~/.config/devin/config.json` | `agentmemory connect devin` 合并 MCP 条目;`--with-hooks` 再加上六个原生自动捕获 hooks(SessionStart、UserPromptSubmit、PreToolUse、PostToolUse、Stop、SessionEnd),使用 Devin 的小写工具匹配器。用 `devin mcp list` 和 devin 内的 `/hooks` 验证。 |
|
||||
| **Devin(云端)** | Settings → Connections → MCP servers | 添加自定义 MCP(STDIO):command `npx`,args `-y @agentmemory/mcp@latest`,env `AGENTMEMORY_URL` 指向网络可达的 agentmemory 部署,并设置 `AGENTMEMORY_SECRET`(云端会话无法访问 localhost — 见 [`deploy/`](../deploy/))。 |
|
||||
| **Gemini CLI** | `~/.gemini/settings.json` | `gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user`(自动合并)。 |
|
||||
| **GitHub Copilot CLI (仅 MCP)** | `~/.copilot/mcp-config.json` | `agentmemory connect copilot-cli` 合并 `mcpServers.agentmemory`;Copilot 在下次启动或 `/mcp` 后接收。 |
|
||||
| **GitHub Copilot CLI (完整插件)** | Copilot 插件安装 | `copilot plugin install rohitg00/agentmemory:plugin` 安装 GitHub 子目录中的插件。 |
|
||||
| **OpenClaw** | OpenClaw MCP 配置 | 同样的 `mcpServers` 块,或使用更深的[记忆插件](../integrations/openclaw/)。 |
|
||||
| **OpenClaw** | OpenClaw MCP 配置 | 同样的 `mcpServers` 块。更深:`openclaw plugins install ./integrations/openclaw` 会占用 OpenClaw 的记忆槽位(自动从 `memory-core` 切换);设置 `plugins.entries.agentmemory.hooks.allowConversationAccess=true`,否则轮次捕获会被静默阻止。见 [`integrations/openclaw`](integrations/openclaw/)。 |
|
||||
| **Codex CLI (仅 MCP)** | `.codex/config.toml` | TOML 形式:`codex mcp add agentmemory -- npx -y @agentmemory/mcp`,或手动添加 `[mcp_servers.agentmemory]`。 |
|
||||
| **Codex CLI (完整插件)** | Codex 插件市场 | `codex plugin marketplace add rohitg00/agentmemory` 然后 `codex plugin add agentmemory@agentmemory`。注册 MCP + 6 个生命周期 hooks(SessionStart、UserPromptSubmit、PreToolUse、PostToolUse、PreCompact、Stop)+ 17 个 skills。在 Codex Desktop 上,直到 [openai/codex#16430](https://github.com/openai/codex/issues/16430) 落地之前,还要运行 `agentmemory connect codex --with-hooks`;那里的插件 hooks 当前无响应。 |
|
||||
| **OpenCode (仅 MCP)** | `opencode.json` | 不同结构:顶层 `mcp` key,command 是数组:`{"mcp": {"agentmemory": {"type": "local", "command": ["npx", "-y", "@agentmemory/mcp"], "enabled": true}}}`。 |
|
||||
| **OpenCode (完整插件)** | `plugin/opencode/` | 22 个自动捕获 hooks,覆盖会话生命周期、消息、工具、错误。项目归属按会话进行,因此一个跨多个仓库的 OpenCode 进程会把每个会话归档到各自的项目下。两个斜杠命令(`/recall`、`/remember`)。将 `plugin/opencode/` 复制到你的 OpenCode 工作空间并把插件条目添加到 `opencode.json`。完整 hook 表和差异分析见 [`plugin/opencode/README.md`](../plugin/opencode/README.md)。 |
|
||||
| **pi** | `~/.pi/agent/extensions/agentmemory` | `agentmemory connect pi` 把捆绑扩展安装到 pi 的自动发现目录(代理启动时召回、代理结束时捕获、`memory_search` / `memory_save` / `memory_health` 工具、`/agentmemory-status`)。在运行中的 pi 里执行 `/reload` 即可加载。[`integrations/pi`](../integrations/pi/) 也是一个 pi 包(从检出的仓库运行 `pi install ./integrations/pi`)。 |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | 使用更深的[记忆提供者插件](../integrations/hermes/),设置 `memory.provider: agentmemory`。 |
|
||||
| **Hermes Agent** | `~/.hermes/config.yaml` | `cp -r integrations/hermes ~/.hermes/plugins/agentmemory` + `memory.provider: agentmemory` 启用 6 个 hook 的记忆提供者(预取、轮次捕获、会话结束、压缩前、MEMORY.md 镜像、系统提示词块)。用 `hermes plugins doctor` 和 `hermes memory status` 验证。见 [`integrations/hermes`](integrations/hermes/)。 |
|
||||
| **Qwen Code** | `~/.qwen/settings.json` | `agentmemory connect qwen` 会写入标准的 `mcpServers` 块。Hook 负载与 Claude Code 字段兼容,因此现有的 12 hook 脚本无需修改即可工作;通过同一 `settings.json` 的 `hooks` 段连接它们。 |
|
||||
| **Antigravity** (替换 Gemini CLI) | `mcp_config.json`(在 Antigravity 的 User 目录中) | `agentmemory connect antigravity` 会写入标准的 `mcpServers` 块。macOS: `~/Library/Application Support/Antigravity/User/`。Linux: `~/.config/Antigravity/User/`。在 2026-06-18 Gemini CLI 停服后使用。 |
|
||||
| **Antigravity CLI** (`agy`) | `~/.gemini/config/mcp_config.json` | `agentmemory connect antigravity-cli`。`agy` CLI 在 `~/.gemini/` 下保有自己的配置,与上面的 Antigravity IDE 分开。传 `--with-hooks` 通过 `~/.gemini/config/hooks.json` 获得原生自动捕获。 |
|
||||
|
||||
@@ -169,7 +169,7 @@ agentmemory 相容任何支援 hooks、MCP 或 REST API 的代理。所有代理
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://cursor.com"><img src="https://www.freelogovectors.net/wp-content/uploads/2025/06/cursor-logo-freelogovectors.net_.png" alt="Cursor" width="48" height="48" /></a><br/>
|
||||
<strong>Cursor</strong><br/>
|
||||
<sub>原生外掛 + MCP</sub>
|
||||
<sub>MCP 伺服器</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/google-gemini/gemini-cli"><img src="https://github.com/google-gemini.png?size=120" alt="Gemini CLI" width="48" height="48" /></a><br/>
|
||||
@@ -209,9 +209,9 @@ agentmemory 相容任何支援 hooks、MCP 或 REST API 的代理。所有代理
|
||||
<sub>MCP 伺服器</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://windsurf.com"><img src="https://exafunction.github.io/public/brand/windsurf-black-symbol.svg?size=120" alt="Windsurf" width="48" height="48" /></a><br/>
|
||||
<strong>Windsurf</strong><br/>
|
||||
<sub>MCP 伺服器</sub>
|
||||
<a href="https://devin.ai"><img src="https://raw.githubusercontent.com/rohitg00/agentmemory/main/website/public/devin.png" alt="Devin" width="48" height="48" /></a><br/>
|
||||
<strong>Devin</strong><br/>
|
||||
<sub>6 hooks + MCP</sub>
|
||||
</td>
|
||||
<td align="center" width="12.5%">
|
||||
<a href="https://github.com/RooCodeInc/Roo-Code"><img src="https://github.com/RooCodeInc.png?size=120" alt="Roo Code" width="48" height="48" /></a><br/>
|
||||
@@ -656,15 +656,15 @@ npx skills add rohitg00/agentmemory -y -a '*' # 安裝到每個已安裝的代
|
||||
|
||||
| 代理 | 設定檔 | 備註 |
|
||||
|---|---|---|
|
||||
| **Cursor(僅 MCP)** | `~/.cursor/mcp.json` | 合併到 `mcpServers`,或 `agentmemory connect cursor`。網站上也提供一鍵深層連結。 |
|
||||
| **Cursor(完整外掛)** | `.cursor-plugin/` | Cursor Marketplace 條目(提交審核中)或 Cursor Settings → Plugins → 本地 checkout。註冊 7 個自動擷取 hooks(sessionStart, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, stop, sessionEnd)+ 17 個 skills + MCP 伺服器;`AGENTMEMORY_URL` / `AGENTMEMORY_SECRET` 在 Cursor 外掛面板中管理。Cursor IDE 與 `cursor-agent` CLI 皆可用;CLI print 模式的提示詞會在工作階段結束時從 transcript 回填。 |
|
||||
| **Cursor** | `~/.cursor/mcp.json` | 合併到 `mcpServers`。網站上也提供一鍵深層連結。 |
|
||||
| **Claude Desktop** | `claude_desktop_config.json`(Application Support) | 合併到 `mcpServers`。編輯後重新啟動 Claude Desktop。 |
|
||||
| **Cline / Roo Code / Kilo Code** | Cline MCP 設定(設定 UI → MCP Servers → Edit) | 同樣的 `mcpServers` 區塊。 |
|
||||
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | 同樣的 `mcpServers` 區塊。 |
|
||||
| **Devin CLI** | `~/.config/devin/config.json` | `agentmemory connect devin` 合併 MCP 條目;`--with-hooks` 再加上六個原生自動擷取 hooks(SessionStart、UserPromptSubmit、PreToolUse、PostToolUse、Stop、SessionEnd),使用 Devin 的小寫工具比對器。用 `devin mcp list` 與 devin 內的 `/hooks` 驗證。 |
|
||||
| **Devin(雲端)** | Settings → Connections → MCP servers | 新增自訂 MCP(STDIO):command `npx`、args `-y @agentmemory/mcp@latest`、env `AGENTMEMORY_URL` 指向網路可達的 agentmemory 部署,並設定 `AGENTMEMORY_SECRET`(雲端工作階段無法存取 localhost — 見 [`deploy/`](../deploy/))。 |
|
||||
| **Gemini CLI** | `~/.gemini/settings.json` | `gemini mcp add agentmemory npx -y @agentmemory/mcp --scope user`(自動合併)。 |
|
||||
| **GitHub Copilot CLI(僅 MCP)** | `~/.copilot/mcp-config.json` | `agentmemory connect copilot-cli` 合併 `mcpServers.agentmemory`;Copilot 在下次啟動或 `/mcp` 時接收。 |
|
||||
| **GitHub Copilot CLI(完整外掛)** | Copilot 外掛安裝 | `copilot plugin install rohitg00/agentmemory:plugin` 安裝 GitHub 子目錄中的外掛。 |
|
||||
| **OpenClaw** | OpenClaw MCP 設定 | 同樣的 `mcpServers` 區塊,或使用更深的[記憶外掛](../integrations/openclaw/)。 |
|
||||
| **OpenClaw** | OpenClaw MCP 設定 | 同樣的 `mcpServers` 區塊。更深:`openclaw plugins install ./integrations/openclaw` 會佔用 OpenClaw 的記憶槽位(自動從 `memory-core` 切換);設定 `plugins.entries.agentmemory.hooks.allowConversationAccess=true`,否則輪次擷取會被靜默封鎖。見 [`integrations/openclaw`](integrations/openclaw/)。 |
|
||||
| **Codex CLI(僅 MCP)** | `.codex/config.toml` | TOML 形式:`codex mcp add agentmemory -- npx -y @agentmemory/mcp`,或手動新增 `[mcp_servers.agentmemory]`。 |
|
||||
| **Codex CLI(完整外掛)** | Codex 外掛市集 | `codex plugin marketplace add rohitg00/agentmemory` 然後 `codex plugin add agentmemory@agentmemory`。註冊 MCP + 6 個生命週期 hooks(SessionStart、UserPromptSubmit、PreToolUse、PostToolUse、PreCompact、Stop)+ 17 個 skills。在 Codex Desktop 上,直到 [openai/codex#16430](https://github.com/openai/codex/issues/16430) 落地之前,還要執行 `agentmemory connect codex --with-hooks`;那裡的外掛 hooks 目前沒有回應。 |
|
||||
| **OpenCode(僅 MCP)** | `opencode.json` | 不同結構:頂層 `mcp` key,command 是陣列:`{"mcp": {"agentmemory": {"type": "local", "command": ["npx", "-y", "@agentmemory/mcp"], "enabled": true}}}`。 |
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "agentmemory",
|
||||
"version": "0.9.29",
|
||||
"description": "Persistent memory for AI coding agents. Captures sessions, recalls with hybrid BM25 + vector + graph search, and exposes 54 memory tools over MCP. Keyless by default, runs on your machine.",
|
||||
"author": {
|
||||
"name": "Rohit Ghumare",
|
||||
"email": "ghumare64@gmail.com"
|
||||
},
|
||||
"homepage": "https://agent-memory.dev",
|
||||
"repository": "https://github.com/rohitg00/agentmemory",
|
||||
"license": "Apache-2.0",
|
||||
"keywords": [
|
||||
"memory",
|
||||
"mcp",
|
||||
"recall",
|
||||
"knowledge-graph",
|
||||
"agent-memory"
|
||||
],
|
||||
"mcpServers": {
|
||||
"agentmemory": {
|
||||
"command": "npx",
|
||||
"args": [
|
||||
"-y",
|
||||
"@agentmemory/mcp"
|
||||
],
|
||||
"env": {
|
||||
"AGENTMEMORY_URL": "${AGENTMEMORY_URL:-http://localhost:3111}",
|
||||
"AGENTMEMORY_SECRET": "${AGENTMEMORY_SECRET:-}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"hooks": {
|
||||
"SessionStart": [
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/session-start.mjs\""
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"UserPromptSubmit": [
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/prompt-submit.mjs\""
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"PreToolUse": [
|
||||
{
|
||||
"matcher": "^(exec|edit|write|read|apply_patch|grep|glob)$",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/pre-tool-use.mjs\""
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"PostToolUse": [
|
||||
{
|
||||
"matcher": "",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/post-tool-use.mjs\""
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"Stop": [
|
||||
{
|
||||
"matcher": "",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/stop.mjs\""
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"SessionEnd": [
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "node \"${CLAUDE_PLUGIN_ROOT}/scripts/session-end.mjs\""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -27,6 +27,8 @@ function hookCwd(data) {
|
||||
if (Array.isArray(roots)) {
|
||||
for (const root of roots) if (typeof root === "string" && root.trim()) return root;
|
||||
}
|
||||
const projectDir = process.env["DEVIN_PROJECT_DIR"] || process.env["CLAUDE_PROJECT_DIR"];
|
||||
if (projectDir && projectDir.trim()) return projectDir;
|
||||
}
|
||||
//#endregion
|
||||
//#region src/hooks/notification.ts
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
#!/usr/bin/env node
|
||||
import { execFile } from "node:child_process";
|
||||
import { promisify } from "node:util";
|
||||
//#region src/hooks/_project.ts
|
||||
function hookCwd(data) {
|
||||
if (!data || typeof data !== "object") return void 0;
|
||||
if (typeof data.cwd === "string" && data.cwd.trim()) return data.cwd;
|
||||
const roots = data.workspace_roots;
|
||||
if (Array.isArray(roots)) {
|
||||
for (const root of roots) if (typeof root === "string" && root.trim()) return root;
|
||||
}
|
||||
const projectDir = process.env["DEVIN_PROJECT_DIR"] || process.env["CLAUDE_PROJECT_DIR"];
|
||||
if (projectDir && projectDir.trim()) return projectDir;
|
||||
}
|
||||
//#endregion
|
||||
//#region src/hooks/post-commit.ts
|
||||
const exec = promisify(execFile);
|
||||
function isSdkChildContext(payload) {
|
||||
@@ -36,7 +48,7 @@ async function main() {
|
||||
} catch {}
|
||||
if (!data || typeof data !== "object") data = {};
|
||||
if (isSdkChildContext(data)) return;
|
||||
const cwd = data.cwd || process.env["AGENTMEMORY_CWD"] || process.cwd();
|
||||
const cwd = hookCwd(data) || process.env["AGENTMEMORY_CWD"] || process.cwd();
|
||||
const sessionId = data.session_id || process.env["AGENTMEMORY_SESSION_ID"] || void 0;
|
||||
const sha = process.env["AGENTMEMORY_COMMIT_SHA"] || await git(["rev-parse", "HEAD"], cwd);
|
||||
if (!sha) return;
|
||||
|
||||
@@ -27,6 +27,8 @@ function hookCwd(data) {
|
||||
if (Array.isArray(roots)) {
|
||||
for (const root of roots) if (typeof root === "string" && root.trim()) return root;
|
||||
}
|
||||
const projectDir = process.env["DEVIN_PROJECT_DIR"] || process.env["CLAUDE_PROJECT_DIR"];
|
||||
if (projectDir && projectDir.trim()) return projectDir;
|
||||
}
|
||||
//#endregion
|
||||
//#region src/hooks/post-tool-failure.ts
|
||||
|
||||
@@ -27,6 +27,8 @@ function hookCwd(data) {
|
||||
if (Array.isArray(roots)) {
|
||||
for (const root of roots) if (typeof root === "string" && root.trim()) return root;
|
||||
}
|
||||
const projectDir = process.env["DEVIN_PROJECT_DIR"] || process.env["CLAUDE_PROJECT_DIR"];
|
||||
if (projectDir && projectDir.trim()) return projectDir;
|
||||
}
|
||||
//#endregion
|
||||
//#region src/hooks/post-tool-use.ts
|
||||
|
||||
@@ -27,6 +27,8 @@ function hookCwd(data) {
|
||||
if (Array.isArray(roots)) {
|
||||
for (const root of roots) if (typeof root === "string" && root.trim()) return root;
|
||||
}
|
||||
const projectDir = process.env["DEVIN_PROJECT_DIR"] || process.env["CLAUDE_PROJECT_DIR"];
|
||||
if (projectDir && projectDir.trim()) return projectDir;
|
||||
}
|
||||
//#endregion
|
||||
//#region src/hooks/pre-compact.ts
|
||||
|
||||
@@ -27,6 +27,8 @@ function hookCwd(data) {
|
||||
if (Array.isArray(roots)) {
|
||||
for (const root of roots) if (typeof root === "string" && root.trim()) return root;
|
||||
}
|
||||
const projectDir = process.env["DEVIN_PROJECT_DIR"] || process.env["CLAUDE_PROJECT_DIR"];
|
||||
if (projectDir && projectDir.trim()) return projectDir;
|
||||
}
|
||||
//#endregion
|
||||
//#region src/hooks/prompt-submit.ts
|
||||
|
||||
@@ -28,6 +28,8 @@ function hookCwd(data) {
|
||||
if (Array.isArray(roots)) {
|
||||
for (const root of roots) if (typeof root === "string" && root.trim()) return root;
|
||||
}
|
||||
const projectDir = process.env["DEVIN_PROJECT_DIR"] || process.env["CLAUDE_PROJECT_DIR"];
|
||||
if (projectDir && projectDir.trim()) return projectDir;
|
||||
}
|
||||
//#endregion
|
||||
//#region src/hooks/session-end.ts
|
||||
|
||||
@@ -27,6 +27,8 @@ function hookCwd(data) {
|
||||
if (Array.isArray(roots)) {
|
||||
for (const root of roots) if (typeof root === "string" && root.trim()) return root;
|
||||
}
|
||||
const projectDir = process.env["DEVIN_PROJECT_DIR"] || process.env["CLAUDE_PROJECT_DIR"];
|
||||
if (projectDir && projectDir.trim()) return projectDir;
|
||||
}
|
||||
//#endregion
|
||||
//#region src/hooks/session-start.ts
|
||||
@@ -45,6 +47,14 @@ function authHeaders() {
|
||||
if (SECRET) h["Authorization"] = `Bearer ${SECRET}`;
|
||||
return h;
|
||||
}
|
||||
function contextPayload(data, context) {
|
||||
if (typeof data.cursor_version === "string" || data.hook_event_name === "sessionStart") return JSON.stringify({ additional_context: context });
|
||||
if (process.env["DEVIN_PROJECT_DIR"] || data.prompt_id !== void 0) return JSON.stringify({ hookSpecificOutput: {
|
||||
hookEventName: "SessionStart",
|
||||
additionalContext: context
|
||||
} });
|
||||
return context;
|
||||
}
|
||||
async function main() {
|
||||
let input = "";
|
||||
for await (const chunk of process.stdin) input += chunk;
|
||||
@@ -83,8 +93,7 @@ async function main() {
|
||||
});
|
||||
if (res.ok) {
|
||||
const result = await res.json();
|
||||
if (result.context) if (typeof data.cursor_version === "string" || data.hook_event_name === "sessionStart") process.stdout.write(JSON.stringify({ additional_context: result.context }));
|
||||
else process.stdout.write(result.context);
|
||||
if (result.context) process.stdout.write(contextPayload(data, result.context));
|
||||
}
|
||||
} catch {}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@ function hookCwd(data) {
|
||||
if (Array.isArray(roots)) {
|
||||
for (const root of roots) if (typeof root === "string" && root.trim()) return root;
|
||||
}
|
||||
const projectDir = process.env["DEVIN_PROJECT_DIR"] || process.env["CLAUDE_PROJECT_DIR"];
|
||||
if (projectDir && projectDir.trim()) return projectDir;
|
||||
}
|
||||
//#endregion
|
||||
//#region src/hooks/subagent-start.ts
|
||||
|
||||
@@ -27,6 +27,8 @@ function hookCwd(data) {
|
||||
if (Array.isArray(roots)) {
|
||||
for (const root of roots) if (typeof root === "string" && root.trim()) return root;
|
||||
}
|
||||
const projectDir = process.env["DEVIN_PROJECT_DIR"] || process.env["CLAUDE_PROJECT_DIR"];
|
||||
if (projectDir && projectDir.trim()) return projectDir;
|
||||
}
|
||||
//#endregion
|
||||
//#region src/hooks/subagent-stop.ts
|
||||
|
||||
@@ -27,6 +27,8 @@ function hookCwd(data) {
|
||||
if (Array.isArray(roots)) {
|
||||
for (const root of roots) if (typeof root === "string" && root.trim()) return root;
|
||||
}
|
||||
const projectDir = process.env["DEVIN_PROJECT_DIR"] || process.env["CLAUDE_PROJECT_DIR"];
|
||||
if (projectDir && projectDir.trim()) return projectDir;
|
||||
}
|
||||
//#endregion
|
||||
//#region src/hooks/task-completed.ts
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Generated from `src/cli/connect/index.ts`. Do not edit the block below by hand; run `npm run skills:gen` after adding or removing an adapter.
|
||||
|
||||
<!-- AUTOGEN:agents START - generated by scripts/skills/generate.ts, do not edit by hand -->
|
||||
`agentmemory connect <agent>` wires the memory server into a host agent. 20 adapters:
|
||||
`agentmemory connect <agent>` wires the memory server into a host agent. 21 adapters:
|
||||
|
||||
| Agent | Name | Protocol |
|
||||
| --- | --- | --- |
|
||||
@@ -15,6 +15,7 @@ Generated from `src/cli/connect/index.ts`. Do not edit the block below by hand;
|
||||
| Continue | `continue` | Using MCP via ~/.continue/config.yaml (preferred) or config.json (legacy, only when no yaml). |
|
||||
| GitHub Copilot CLI | `copilot-cli` | Using MCP. Install the plugin too for full hooks/skills coverage. |
|
||||
| Cursor | `cursor` | Using MCP (the only protocol Cursor speaks). Memory bridge runs at :3111 underneath. |
|
||||
| Devin CLI | `devin` | Using MCP via the user config. Devin CLI migrates mcpServers into mcp_config.json on newer builds. Pass --with-hooks for native auto-capture. |
|
||||
| Droid (Factory.ai) | `droid` | Using MCP via ~/.factory/mcp.json. The `/mcp` slash command inside droid lists configured servers. Pass --with-hooks to also install the native ~/.factory/hooks.json auto-capture hooks. |
|
||||
| DeepSeek Harness | `dsh` | Using MCP via $DSH_HOME/cordis.patch.yml (the home-level patch layer every profile loads). Tools appear as mcp__agentmemory__*. Pass --with-hooks to also wire auto-capture through Harness's Claude Code hook bridge. |
|
||||
| Gemini CLI | `gemini-cli` | Using MCP (the only protocol Gemini CLI speaks). Memory bridge runs at :3111 underneath. |
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
import { existsSync, mkdirSync } from "node:fs";
|
||||
import { homedir, platform } from "node:os";
|
||||
import { join } from "node:path";
|
||||
import * as p from "@clack/prompts";
|
||||
import { createJsonMcpAdapter } from "./json-mcp-adapter.js";
|
||||
import type { ConnectOptions, ConnectResult } from "./types.js";
|
||||
import {
|
||||
buildMergedHooks,
|
||||
findPluginRoot,
|
||||
type HookManifest,
|
||||
} from "./codex-hooks.js";
|
||||
import {
|
||||
backupFile,
|
||||
logBackup,
|
||||
logInstalled,
|
||||
readJsonSafe,
|
||||
writeJsonAtomic,
|
||||
} from "./util.js";
|
||||
|
||||
function devinDir(): string {
|
||||
if (platform() === "win32") {
|
||||
const appData = process.env["APPDATA"];
|
||||
if (appData) return join(appData, "devin");
|
||||
}
|
||||
const xdg = process.env["XDG_CONFIG_HOME"];
|
||||
return xdg ? join(xdg, "devin") : join(homedir(), ".config", "devin");
|
||||
}
|
||||
|
||||
const DEVIN_DIR = devinDir();
|
||||
const DEVIN_CONFIG = join(DEVIN_DIR, "config.json");
|
||||
|
||||
export const adapter = createJsonMcpAdapter({
|
||||
name: "devin",
|
||||
displayName: "Devin CLI",
|
||||
detectDir: DEVIN_DIR,
|
||||
configPath: DEVIN_CONFIG,
|
||||
docs: "https://github.com/rohitg00/agentmemory#other-agents",
|
||||
protocolNote:
|
||||
"→ Using MCP via the user config. Devin CLI migrates mcpServers into mcp_config.json on newer builds. Pass --with-hooks for native auto-capture.",
|
||||
installHooks: installDevinHooks,
|
||||
});
|
||||
|
||||
function installDevinHooks(opts: ConnectOptions): ConnectResult {
|
||||
let pluginRoot: string;
|
||||
try {
|
||||
pluginRoot = findPluginRoot();
|
||||
} catch (err) {
|
||||
return {
|
||||
kind: "skipped",
|
||||
reason: err instanceof Error ? err.message : String(err),
|
||||
};
|
||||
}
|
||||
|
||||
const existing = readJsonSafe<Record<string, unknown>>(DEVIN_CONFIG) ?? {};
|
||||
const existingHooks = existing["hooks"]
|
||||
? ({ hooks: existing["hooks"] } as HookManifest)
|
||||
: null;
|
||||
const merged = buildMergedHooks(existingHooks, pluginRoot, "hooks.devin.json");
|
||||
const next = { ...existing, hooks: merged.hooks };
|
||||
|
||||
if (opts.dryRun) {
|
||||
p.log.info(
|
||||
`[dry-run] Would write ${Object.keys(merged.hooks).length} hook event(s) into ${DEVIN_CONFIG}`,
|
||||
);
|
||||
return { kind: "installed", mutatedPath: DEVIN_CONFIG };
|
||||
}
|
||||
|
||||
let backupPath: string | undefined;
|
||||
if (existsSync(DEVIN_CONFIG)) {
|
||||
backupPath = backupFile(DEVIN_CONFIG, "devin-hooks", "json");
|
||||
logBackup(backupPath);
|
||||
} else {
|
||||
mkdirSync(DEVIN_DIR, { recursive: true });
|
||||
}
|
||||
|
||||
writeJsonAtomic(DEVIN_CONFIG, next);
|
||||
|
||||
logInstalled("Devin CLI hooks", DEVIN_CONFIG);
|
||||
p.log.info(
|
||||
"Verify with `/hooks` inside devin. Re-run `agentmemory connect devin --with-hooks` after upgrading agentmemory so the plugin paths stay current.",
|
||||
);
|
||||
|
||||
return {
|
||||
kind: "installed",
|
||||
mutatedPath: DEVIN_CONFIG,
|
||||
...(backupPath !== undefined && { backupPath }),
|
||||
};
|
||||
}
|
||||
@@ -11,6 +11,7 @@ import { adapter as copilotCli } from "./copilot-cli.js";
|
||||
import { adapter as codex } from "./codex.js";
|
||||
import { adapter as continueDev } from "./continue.js";
|
||||
import { adapter as cursor } from "./cursor.js";
|
||||
import { adapter as devin } from "./devin.js";
|
||||
import { adapter as droid } from "./droid.js";
|
||||
import { adapter as dsh } from "./dsh.js";
|
||||
import { adapter as geminiCli } from "./gemini-cli.js";
|
||||
@@ -29,6 +30,7 @@ export const ADAPTERS: readonly ConnectAdapter[] = [
|
||||
copilotCli,
|
||||
codex,
|
||||
cursor,
|
||||
devin,
|
||||
geminiCli,
|
||||
qwen,
|
||||
antigravity,
|
||||
|
||||
@@ -28,5 +28,8 @@ export function hookCwd(data: Record<string, unknown> | null | undefined): strin
|
||||
if (typeof root === "string" && root.trim()) return root;
|
||||
}
|
||||
}
|
||||
const projectDir =
|
||||
process.env["DEVIN_PROJECT_DIR"] || process.env["CLAUDE_PROJECT_DIR"];
|
||||
if (projectDir && projectDir.trim()) return projectDir;
|
||||
return undefined;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import { execFile } from "node:child_process";
|
||||
import { promisify } from "node:util";
|
||||
import { hookCwd } from "./_project.js";
|
||||
|
||||
const exec = promisify(execFile);
|
||||
|
||||
@@ -49,9 +50,7 @@ async function main() {
|
||||
if (isSdkChildContext(data)) return;
|
||||
|
||||
const cwd =
|
||||
(data.cwd as string) ||
|
||||
process.env["AGENTMEMORY_CWD"] ||
|
||||
process.cwd();
|
||||
hookCwd(data) || process.env["AGENTMEMORY_CWD"] || process.cwd();
|
||||
const sessionId =
|
||||
(data.session_id as string) ||
|
||||
process.env["AGENTMEMORY_SESSION_ID"] ||
|
||||
|
||||
@@ -34,6 +34,24 @@ function authHeaders(): Record<string, string> {
|
||||
return h;
|
||||
}
|
||||
|
||||
function contextPayload(data: Record<string, unknown>, context: string): string {
|
||||
if (
|
||||
typeof data.cursor_version === "string" ||
|
||||
data.hook_event_name === "sessionStart"
|
||||
) {
|
||||
return JSON.stringify({ additional_context: context });
|
||||
}
|
||||
if (process.env["DEVIN_PROJECT_DIR"] || data.prompt_id !== undefined) {
|
||||
return JSON.stringify({
|
||||
hookSpecificOutput: {
|
||||
hookEventName: "SessionStart",
|
||||
additionalContext: context,
|
||||
},
|
||||
});
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
async function main() {
|
||||
let input = "";
|
||||
for await (const chunk of process.stdin) {
|
||||
@@ -82,13 +100,7 @@ async function main() {
|
||||
if (res.ok) {
|
||||
const result = (await res.json()) as { context?: string };
|
||||
if (result.context) {
|
||||
const isCursor =
|
||||
typeof data.cursor_version === "string" || data.hook_event_name === "sessionStart";
|
||||
if (isCursor) {
|
||||
process.stdout.write(JSON.stringify({ additional_context: result.context }));
|
||||
} else {
|
||||
process.stdout.write(result.context);
|
||||
}
|
||||
process.stdout.write(contextPayload(data, result.context));
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
|
||||
@@ -51,6 +51,7 @@ describe("agentmemory connect — dispatcher", () => {
|
||||
"codex",
|
||||
"continue",
|
||||
"cursor",
|
||||
"devin",
|
||||
"droid",
|
||||
"dsh",
|
||||
"gemini-cli",
|
||||
@@ -65,7 +66,7 @@ describe("agentmemory connect — dispatcher", () => {
|
||||
"zed",
|
||||
].sort(),
|
||||
);
|
||||
expect(ADAPTERS.length).toBe(20);
|
||||
expect(ADAPTERS.length).toBe(21);
|
||||
});
|
||||
|
||||
it("every adapter exposes detect() and install()", () => {
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { resolve } from "node:path";
|
||||
import { spawn } from "node:child_process";
|
||||
import {
|
||||
buildMergedHooks,
|
||||
findPluginRoot,
|
||||
type HookManifest,
|
||||
} from "../src/cli/connect/codex-hooks.js";
|
||||
|
||||
const PLUGIN_ROOT = resolve(__dirname, "..", "plugin");
|
||||
|
||||
const DEVIN_EVENTS = [
|
||||
"SessionStart",
|
||||
"UserPromptSubmit",
|
||||
"PreToolUse",
|
||||
"PostToolUse",
|
||||
"Stop",
|
||||
"SessionEnd",
|
||||
];
|
||||
|
||||
const DEVIN_TOOL_NAMES = [
|
||||
"exec",
|
||||
"edit",
|
||||
"write",
|
||||
"read",
|
||||
"apply_patch",
|
||||
"grep",
|
||||
"glob",
|
||||
];
|
||||
|
||||
function runHook(
|
||||
script: string,
|
||||
payload: Record<string, unknown>,
|
||||
env: Record<string, string> = {},
|
||||
): Promise<string> {
|
||||
return new Promise((resolve_) => {
|
||||
const child = spawn("node", [`plugin/scripts/${script}.mjs`], {
|
||||
env: { ...process.env, AGENTMEMORY_URL: "http://127.0.0.1:1", ...env },
|
||||
});
|
||||
let out = "";
|
||||
child.stdout.on("data", (c) => (out += c));
|
||||
child.on("exit", () => resolve_(out));
|
||||
child.stdin.write(JSON.stringify(payload));
|
||||
child.stdin.end();
|
||||
});
|
||||
}
|
||||
|
||||
describe("buildMergedHooks (Devin manifest)", () => {
|
||||
it("rewrites ${CLAUDE_PLUGIN_ROOT} to absolute pluginRoot in every command", () => {
|
||||
const merged = buildMergedHooks(null, findPluginRoot(), "hooks.devin.json");
|
||||
for (const entries of Object.values(merged.hooks)) {
|
||||
for (const entry of entries) {
|
||||
for (const handler of entry.hooks) {
|
||||
expect(handler.command).not.toContain("${CLAUDE_PLUGIN_ROOT}");
|
||||
expect(handler.command).toContain(`${PLUGIN_ROOT}/scripts/`);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
it("only wires events Devin CLI actually dispatches", () => {
|
||||
const merged = buildMergedHooks(null, findPluginRoot(), "hooks.devin.json");
|
||||
expect(Object.keys(merged.hooks).sort()).toEqual([...DEVIN_EVENTS].sort());
|
||||
});
|
||||
|
||||
it("matches Devin's lowercase tool names, not Claude Code's", () => {
|
||||
const merged = buildMergedHooks(null, findPluginRoot(), "hooks.devin.json");
|
||||
const matcher = merged.hooks["PreToolUse"]?.[0]?.matcher;
|
||||
expect(matcher).toBeDefined();
|
||||
const re = new RegExp(matcher!);
|
||||
for (const tool of DEVIN_TOOL_NAMES) expect(re.test(tool)).toBe(true);
|
||||
for (const claudeTool of ["Edit", "Write", "Bash"]) {
|
||||
expect(re.test(claudeTool)).toBe(false);
|
||||
}
|
||||
});
|
||||
|
||||
it("preserves user-authored hooks when merging", () => {
|
||||
const existing: HookManifest = {
|
||||
hooks: {
|
||||
PermissionRequest: [
|
||||
{ hooks: [{ type: "command", command: "bash ./mine.sh" }] },
|
||||
],
|
||||
},
|
||||
};
|
||||
const merged = buildMergedHooks(
|
||||
existing,
|
||||
findPluginRoot(),
|
||||
"hooks.devin.json",
|
||||
);
|
||||
const kept = merged.hooks["PermissionRequest"]?.[0]?.hooks?.[0]?.command;
|
||||
expect(kept).toBe("bash ./mine.sh");
|
||||
});
|
||||
});
|
||||
|
||||
describe("hook payload compatibility with Devin CLI", () => {
|
||||
it("resolves the project from DEVIN_PROJECT_DIR when the payload carries no cwd", async () => {
|
||||
const { resolveProject, hookCwd } = await import("../src/hooks/_project.js");
|
||||
const before = process.env["DEVIN_PROJECT_DIR"];
|
||||
process.env["DEVIN_PROJECT_DIR"] = "/tmp";
|
||||
try {
|
||||
expect(hookCwd({ session_id: "s1" })).toBe("/tmp");
|
||||
expect(resolveProject(hookCwd({ session_id: "s1" }))).toBe("tmp");
|
||||
} finally {
|
||||
if (before === undefined) delete process.env["DEVIN_PROJECT_DIR"];
|
||||
else process.env["DEVIN_PROJECT_DIR"] = before;
|
||||
}
|
||||
});
|
||||
|
||||
it("emits Devin's hookSpecificOutput shape for injected context", async () => {
|
||||
const out = await runHook(
|
||||
"session-start",
|
||||
{ hook_event_name: "SessionStart", session_id: "s1", source: "startup" },
|
||||
{ DEVIN_PROJECT_DIR: "/tmp", AGENTMEMORY_INJECT_CONTEXT: "true" },
|
||||
);
|
||||
if (!out.trim()) return;
|
||||
const parsed = JSON.parse(out) as {
|
||||
hookSpecificOutput?: { hookEventName?: string; additionalContext?: string };
|
||||
};
|
||||
expect(parsed.hookSpecificOutput?.hookEventName).toBe("SessionStart");
|
||||
expect(typeof parsed.hookSpecificOutput?.additionalContext).toBe("string");
|
||||
});
|
||||
});
|
||||
@@ -5,9 +5,9 @@ import {
|
||||
getVisibleTools,
|
||||
} from "../src/mcp/tools-registry.js";
|
||||
|
||||
// plugin manifests and README advertise 51 MCP tools. The old
|
||||
// plugin manifests and README advertise 54 MCP tools. The old
|
||||
// default was AGENTMEMORY_TOOLS=core which silently capped the surface
|
||||
// at 8 essentials with no indication the other 43 existed. Default
|
||||
// at 8 essentials with no indication the other 46 existed. Default
|
||||
// flipped to "all"; the lean set is still accessible via
|
||||
// AGENTMEMORY_TOOLS=core.
|
||||
describe("MCP tool surface default (#553)", () => {
|
||||
@@ -20,7 +20,7 @@ describe("MCP tool surface default (#553)", () => {
|
||||
else process.env["AGENTMEMORY_TOOLS"] = ORIG;
|
||||
});
|
||||
|
||||
it("default returns the full 51-tool surface, matching plugin advertising", () => {
|
||||
it("default returns the full 54-tool surface, matching plugin advertising", () => {
|
||||
const visible = getVisibleTools();
|
||||
const all = getAllTools();
|
||||
expect(visible.length).toBe(all.length);
|
||||
|
||||
@@ -226,12 +226,12 @@ const MARQUEE: Agent[] = [
|
||||
href: "https://github.com/Aider-AI/aider",
|
||||
},
|
||||
{
|
||||
id: "windsurf",
|
||||
name: "Windsurf",
|
||||
id: "devin",
|
||||
name: "Devin",
|
||||
from: "Cognition",
|
||||
logo: "https://github.com/Exafunction.png",
|
||||
accent: "#00A699",
|
||||
href: "https://windsurf.com",
|
||||
logo: "/devin.png",
|
||||
accent: "#317CFF",
|
||||
href: "https://devin.ai",
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
Reference in New Issue
Block a user