Agent memory and context

volcengine/

OpenViking

A context database that organizes agent memory, knowledge, and skills as a browsable virtual filesystem under a viking:// URI scheme.

What’s new here

OpenViking treats context as a filesystem. Everything lives under viking:// URIs — resources, memories, skills — and agents navigate it with filesystem-style commands: ls, tree, read, grep. Every directory carries generated summaries at two levels before you reach the full content. Agents scan the abstract (L0) first, decide if the directory is relevant, read the overview (L1) if so, and only pull full content (L2) when they need it. Search is scoped to a subtree, not the whole index.

What it does

OpenViking runs a server that stores three types of context: resources (documents, repos, web pages), memories (user preferences, experience extracted from past sessions), and skills (how to perform tasks). All of it is addressable by viking:// URIs.

When you commit a session, the conversation is archived and memories are extracted as Markdown files you can inspect and edit directly. The ov CLI lets you import a GitHub repo, check task status, list directories, run semantic searches scoped to a path, and grep within a subtree.

Benchmark results from the README: on LoCoMo long-conversation memory, three agent integrations reached 80–83% accuracy with OpenViking versus 24–57% on their native memory, with input tokens dropping 34.3–91.0% and query latency dropping 58.45–66.10%. On tau2-bench, task success improved by 6.87 percentage points on retail and 11.87 on airline tasks.

Integrations exist for Claude Code, Codex, Cursor, TRAE, OpenCode, LangChain, and others via hooks, MCP, or native plugins. SDKs cover Python, Go, and TypeScript.

Who it’s for

Teams building coding agents or personal AI assistants who want cross-session memory that they can inspect, edit, and query directly. Also useful for anyone who needs RAG over a codebase or document set and wants retrieval scoped to a project subtree rather than a global vector pool. Self-hosting under AGPL-3.0 is the primary path; Volcengine also hosts a managed version with a free tier (50 files) and paid plans beyond that.

Try it

Install the server and run the setup wizard (requires Python 3.10+, uv, and a model provider with an embedding model and a VLM):

uv tool install openviking --upgrade && openviking-server init

The server runs in the foreground, so keep that terminal open. With the server running, import a repo and search it from another one:

ov status
ov add-resource https://github.com/volcengine/OpenViking
# Replace TASK_ID with the returned task_id; repeat until status is completed
ov task status TASK_ID
ov ls viking://resources/
ov tree viking://resources/volcengine -L 2
ov find "what is openviking"
ov grep "openviking" --uri viking://resources/volcengine/OpenViking/docs/en

To connect it to Claude Code, Codex, Cursor, or similar agents:

curl -fsSL https://openviking.ai/install | bash

A live demo runs at openviking.ai/studio with no installation required.

How mature is it

Created January 2026, at v0.5.0 as of October 9, 2026. 39,605 stars, 3,128 forks, at least 100 contributors, 94 releases, and over 100 commits in the past 90 days. The repo has 297 open issues and 614 open pull requests. Licensed AGPL-3.0 (CLI crates and examples use Apache 2.0). Backed by research published at VLDB 2026 and accepted at ICDE.