Agent Integrations Overview
OpenViking can act as the long-term memory and context backend for many agent runtimes. Pick the integration that matches your agent.
Which integration should I use?
| If you use… | Use this |
|---|---|
| Claude Code | Claude Code Memory Plugin — auto-recall + auto-capture via hooks |
| OpenClaw | OpenClaw Plugin — context-engine with full lifecycle integration |
| Codex / TraeCode CLI 2.0 | Codex Memory Plugin — lifecycle hooks for auto-recall and incremental capture |
| Cursor | Cursor Memory Integration — one command installs lifecycle hooks, MCP tools, rules, and skills |
| TRAE / TRAE CN | TRAE Memory Integration — one installer configures prompt-time recall, turn capture, and OpenViking tools |
DeepSeek Harness (dsh) | DeepSeek Harness Memory Bundle — in-process Cordis plugin with pre-step recall, event capture, and the OpenViking MCP tools |
| Hermes Agent | Hermes Agent — built-in OpenViking memory provider, no plugin install needed |
| OpenCode | OpenCode Plugin — MCP tools plus lifecycle hooks for repo context, auto-recall, and capture |
| pi | pi Coding Agent Extension — native extension with auto-recall, turn capture, and threshold commit |
| LangChain / LangGraph | LangChain and LangGraph — retriever, tools, context backend, store, and middleware |
| Multiple local coding agents / a desktop UI | OpenViking Helper — visual agent setup, session inspection, and memory management |
| Any Agent Plugins 1.0 client | Agent Plugins 1.0 Package — one portable package: openviking-memory skill plus the OpenViking MCP tools |
| Manus / Claude Desktop / ChatGPT / other MCP clients | MCP Clients — point any MCP-compatible client at the built-in /mcp endpoint |
| ZCode / AstrBot / … | Community Plugins — community-maintained integrations for various runtimes |
Compare integrations side by side
For the concrete differences between integrations — tool surface, automatic recall, session and commit behaviour, compaction takeover, degradation and fault tolerance — see the Capability Reference, a cross-integration comparison matrix.
Developing and maintaining plugins
To add or maintain an integration, follow the Hook + MCP Agent Plugin Development and Maintenance Standard. When using VibeCoding, require your coding agent to read and follow it before making changes, using Claude Code, Codex, and other existing plugins as implementation references.
Prerequisite for all integrations
Every integration on this page connects to a running OpenViking server. If you don't have one yet, follow the Quickstart Guide. The default endpoint is http://localhost:1933; remote use requires an API key (see Authentication).
Low-latency recall
Query expansion and recall-result compression are two independent, optional model calls. Disable both in the Agent plugin when response latency matters most; semantic retrieval, budgeting, tier degradation, and cross-turn dedup continue to work.
The same environment variables apply to both the Claude Code and Codex memory plugins. Query expansion is switchable in every memory plugin that resolves its settings through the shared loader; compression is Claude Code and Codex only.
export OPENVIKING_RECALL_QUERY_EXPANSION=off
export OPENVIKING_RECALL_COMPRESS=offBoth plugins have a local compression path, but expose it differently:
- Claude Code defaults to
recallCompress=auto: it prefers localclaude -p(Sonnet with low effort) and falls back to an OpenViking server digest when the local CLI is unavailable.clientforces local-only compression, whileserverforces server-only compression. - Codex calls local
codex execby default, tryinggpt-5.3-codex-sparkfirst and thengpt-5.6-lunawith low effort. It does not enable server-side compression.
The shared default is recallCompress=auto. OPENVIKING_RECALL_COMPRESS=off disables compression in both plugins; Codex interprets auto or client as enabling its local compressor. The old Claude Code variable OPENVIKING_RECALL_REWRITE remains supported for compatibility, but new configurations should use the unified name.
The same settings can live in ~/.openviking/ovcli.conf:
{
"url": "https://openviking.example.com",
"api_key": "your-api-key",
"plugin": {
"recallQueryExpansion": "off",
"recallCompress": "off"
}
}Environment variables take precedence over ovcli.conf. Restart the Agent after changing these settings so its hook processes reload the configuration. These are plugin-client settings; the server's ov.conf does not need to change.
The plugin section is read by every memory plugin — claude-code, codex, cursor, trae, trae-cn, zcode, opencode, dsh and pi — and a plugin.<harness> object overrides the shared keys for one of them, under either spelling (claude_code or claude-code, trae_cn or trae-cn). Compression is the exception: the other harnesses honour recallQueryExpansion but ignore recallCompress and its companions, since none of them requests a server digest.
A context request waits longer than an ordinary request, because aborting it client-side discards the whole response rather than just the stage that ran long. The server pipeline is serial and each optional stage has its own fuse: query expansion (retrieval.recall_intent_timeout_s, 5s) runs first, then retrieval, body reads and budgeting, and only then the digest rewrite (retrieval.recall_rewrite_timeout_s, 30s). The deadline therefore follows what the request actually asks for — 15s once it carries a session and can spend the expansion fuse, 45s when it also asks for a digest, and the plugin's ordinary timeout when it asks for neither. Set OPENVIKING_RECALL_CONTEXT_TIMEOUT_MS (or plugin.recallContextTimeoutMs) to pin it — keep it above the fuses the request will spend and below the Agent's own hook timeout.
