volcengine/OpenViking

AI Engineering

Gives AI agents a browsable filesystem for memory, knowledge and skills, with scoped retrieval.

41,120
3,335
Python
AGPL-3.0
9 months old

OpenViking is a self-hosted or hosted context database for AI agents. It puts agent knowledge, long-term memory and skills into one virtual filesystem under viking:// rather than an opaque vector store, so an agent can list, read, write and grep it with familiar file operations, and a person can inspect and edit what the agent remembers. The fit is for agent builders who need persistent, scoped context and want to see what is stored.

How it works

Directories follow a small set of context types: resources (documents, repositories, pages), per-user memories and skills, plus peer directories Context types. Two mechanisms shape day-to-day use. First, semantically processed directories carry generated summaries in layers: L0 one-sentence abstracts, L1 overviews, and L2 full source read on demand, so an agent can judge relevance before loading content Context layers. Second, retrieval can be limited to a subtree instead of a flat index, which keeps project or memory context attached to results Retrieval.

A practical workflow is to start a server, have the ov CLI import a repository (ov add-resource), poll the indexing task, then inspect with ov ls/ov tree and query with ov find or a directory-scoped ov grep CLI setup. Committing a session archives the conversation and extracts inspectable Markdown memories Sessions; with VikingBot enabled, ov compile reorganizes material into a wiki, knowledge graph or report Context compilation.

Ways to run it

  • Self-hosted: needs uv, Python 3.10+ and a model provider that supplies an embedding model and a VLM; the setup wizard writes ~/.openviking/ov.conf and supports several providers including local Ollama, and the server runs in the foreground configuration guide.
  • Hosted service: Volcengine runs the same service; the first 50 files are documented as free, and you connect with a server address plus an API key created in the console product page.
  • Agent memory plugin: the installer supports macOS or Linux, Node.js 18+, curl and no sudo; Windows users are pointed to the desktop app (macOS and Windows x64, beta) README. Integrations cover Claude Code, Codex, Cursor, TRAE, OpenCode, MCP clients and framework packages.

Constraints to know

For self-hosted deployments, authentication must be configured before exposing the server beyond localhost; accounts and user isolation exist, with resource ACLs opt-in README. When installing the memory plugin, use a user key rather than the root key, which cannot read or write memories. Memories are processed in the background, so a preference may not be recalled immediately after it is stated.

The authors report a 0.3.22 evaluation on LoCoMo user memory and tau2-bench agent tasks using Doubao 2.0 Pro and a Doubao embedding model, with agent integrations reaching 80–83% LoCoMo accuracy versus 24–57% native memory, plus token and latency reductions benchmark report. These are author-reported results under those specific models and tasks, not general guarantees.

Licensing is split: the main project is AGPLv3, while the CLI crate and examples are Apache 2.0, with per-package licenses for framework adapters. The README also states that wholesale rewriting and re-open-sourcing is prohibited and that translating all or a substantial portion of the code requires prior written authorization from Volcano Engine LICENSE.

Written by AI from the project's README, updated October 29, 2026. The project's own docs are the source of truth.