Agent Plugins
Persistent memory for coding agents and CLIs via the FishMem MCP server.
Agent plugins give coding agents and CLIs persistent memory through the FishMem MCP server. Instead of re-learning your codebase, conventions, and decisions every session, the agent recalls what it already knows and stores new facts as it works.
Every plugin is the same thing under the hood: the @fishmem/mcp server, run
with npx -y @fishmem/mcp, wired into a host's MCP configuration. The only
difference between hosts is the config file format and location.
How it works
The FishMem MCP server is a thin bridge between an MCP-capable agent and your FishMem memories. It reads your API key from the environment, talks to the FishMem API, and exposes three tools to the agent:
search_memory({ query, top_k? })— recall memories relevant to a query using hybrid recall (vector, keyword, temporal, and graph signals).add_memory({ content, metadata? })— store a durable fact, such as a build command, a naming convention, or an architectural decision.list_memories({ scope? })— list the memories visible in the current scope.
The agent decides when to call these tools. A well-configured agent searches before it answers and adds a memory whenever it learns something worth keeping.
Configuration
All plugins run the same command and read the same environment variables:
npx -y @fishmem/mcp| Variable | Required | Purpose |
|---|---|---|
FISHMEM_API_KEY | yes | Your fm_... key. See Authentication. |
FISHMEM_USER_ID | no | Default user_id for stored and recalled memories. |
FISHMEM_PROJECT | no | Default project/run scope for memories. |
FISHMEM_BASE_URL | no | Point at a self-hosted engine instead of the cloud. |
Why per-project scoping
Coding agents work inside a repository, and what they learn is almost always
specific to that repository: its test command, its module layout, the reason a
workaround exists. FishMem scopes memories by
user_id, agent_id, and run_id, so the recommended setup for coding agents
is:
run_id= the repository or project. Memory becomes per-project — facts from one repo never leak into another.agent_id= a stable id per tool. Keeps each tool's memories attributable and easy to list or prune.
Because memories persist on the server, they outlive the session. Close the terminal, come back tomorrow, switch machines — the agent still knows your codebase.
Plugins
Claude Code
Add the FishMem MCP server to Claude Code via claude mcp add or .mcp.json.
Codex
Configure the FishMem MCP server in the OpenAI Codex CLI config TOML.
OpenClaw
Enable the FishMem MCP server in OpenClaw's plugin config.
Hermes Agent
Give the Hermes agent runtime memory across runs.