Every new coding agent session starts blank. You re-explain the stack, the naming rules, the test command, the thing you hate in code review. Some agents keep memory, but it often sits in a store you cannot open. volcengine/OpenViking takes a different route: it keeps agent context as a filesystem you can read.
The idea in one minute
OpenViking calls itself a context database for AI agents. Instead of a black box of embeddings, it organizes knowledge, memory and skills under a viking:// address space. Agents move through it like files with ls, tree, read, write and grep, and you can open any directory to see and edit what the agent knows.
Each directory carries generated summaries in three tiers, per the README:
- L0 (Abstract): one sentence, for a quick relevance check.
- L1 (Overview): core information, for planning.
- L2 (Details): the full original data, read only when needed.
The practical effect is that an agent can scan summaries first and open the full text only when it matters. When a session is committed, the conversation is archived and memories are extracted as Markdown files, so you can inspect, edit and merge them.
Step 1: get a server
The plugin talks to an OpenViking server, either self-hosted or the hosted service. For self-hosting, the README uses uv:
uv tool install openviking --upgrade && openviking-server init
The wizard asks for a model provider. The README lists Volcengine, OpenAI, Codex OAuth, Kimi, GLM and local Ollama. Start the server and check it:
ov status
Step 2: install the memory plugin
With a server running, the installer asks which tools and which server you want:
curl -fsSL https://openviking.ai/install | bash
The README works for Claude Code, Codex and Cursor. Use a user key, not a root key, when it asks for credentials. Then restart your agent as the installer says and follow the onboarding guide. As with any curl | bash, read the script first if you do not know the host.
Step 3: look at what it remembers
This is the part that makes it different. After a few sessions, browse the memory tree yourself:
ov ls viking://resources/
ov tree viking://resources/volcengine -L 2
Memories live under viking://user/<your id>/memories/, with folders such as preferences and coding habits. If the agent learned something wrong, open the file and fix it. That is the whole pitch: memory you can audit.
Bonus: search a repo one directory at a time
OpenViking also works as a code and docs index. Import a repository as a resource:
ov add-resource https://github.com/volcengine/OpenViking
ov find "what is openviking"
Check import progress with ov task status and your task ID. The README argues that scoping a search to one subtree beats a flat vector pool, because unrelated parts of a project stop polluting the results.
A prompt to hand your agent
If you want the agent to do the setup, this is the prompt we use on the use-case page:
Install the volcengine/OpenViking memory plugin for <Claude Code or Codex or Cursor> against my server at <address>, walk me through onboarding, and show me where my memories are stored.
Who it is for
Developers who are tired of repeating project rules, and teams that want agent memory on their own infrastructure. If you only want a quick note file, a plain CLAUDE.md is simpler. OpenViking earns its setup time when you want summaries, search and a place you can audit.
What we did not verify
- We followed the README and have not run this end to end for this post.
- You need uv and Python for a self-hosted server, or the hosted service.
- Check the repo for newer instructions before you rely on these steps.
The step-by-step version is on our use-case page: give Claude Code, Codex or Cursor memory across sessions. The repo overview is here.
Want the setup commands for 50 AI repos people actually ship with? Get the free AI Repos That Actually Ship pack: https://dedupedai.com/ship-pack/?utm_source=devto&utm_medium=article&utm_campaign=shippack
Top comments (0)