OpenViking
A context database for agents: cross-session memory, documents and skills in one viking:// file tree, reachable through MCP and hooks
Install
pip install openviking --upgrade
openviking-server init
openviking-server doctor
openviking-serverinit writes ~/.openviking/ov.conf with the chosen model providers.
This is third-party code. Review the repository files before installing.
What it does
OpenViking stores what an agent should remember as a virtual file system addressed by viking:// URIs: project resources, user preferences, accumulated experience and skills. Directories carry short abstracts and overviews, so the agent decides what to read before loading full content. Search runs over vectors inside the directory structure, and committed sessions are processed in the background into long-term memory. The server connects to Claude Code, Codex, Cursor and other clients through MCP, and some agents get hooks for automatic recall and capture.
Who it is for. For teams and developers who want shared long-term agent memory on their own server.
Good fit when
- The agent relearns the same project facts every session
- You want the agent to search docs and repositories without loading everything into context
- Several agents need to share one memory store
Not a fit when
- The agent's built-in memory and a CLAUDE.md file are enough
- You cannot run a server with access to an embedding model
Example request
Before starting, look up in memory how we set up the deploy last time, and save the outcome when doneLimitations
Requires Python 3.10+, a running server and access to an embedding model and a VLM: a cloud provider (Volcengine, OpenAI, Kimi, GLM) or local Ollama. Licensed AGPL-3.0, which matters when embedding it in closed products. Per-client setup lives in the documentation rather than the README.
How to disable. Remove the openviking server from the agent's MCP config or uninstall the openviking-memory plugin, then stop openviking-server. Data stays in the directory set in ~/.openviking/ov.conf.
MCP
- Transport
- http
- Authentication
- not required
Security check
- The server indexes documents and repositories you feed it
- Uses external embedding models when a cloud provider is selected
README in short
The README explains the viking:// model, where resources, memory and skills share one tree, and the three loading tiers: abstract, overview and full content. The quick start installs the package with pip, configures providers with init and starts the server, while the ov CLI imports repositories and searches them. Claude Code, Codex, Cursor, TRAE and other agents get hook and MCP integrations, and there are Python, Go and TypeScript SDKs, a web studio and a beta desktop app. Benchmark results are in a separate report.
FAQ
How is this different from plain RAG?
Context is organized into directories with layered summaries, and the agent navigates the structure instead of receiving a list of similar chunks.
Can it run without cloud models?
Yes, init lets you choose local Ollama for embeddings and the VLM.
Related
Open-source personal AI assistant on your own machine: answers in Telegram, Slack, Discord and WhatsApp, extended with skills and plugins
A self-improving agent from Nous Research with a TUI, messaging gateway, cron jobs and skills it writes itself
An open source coding agent for the terminal and desktop with build and plan modes
Open prompt library with a Claude Code plugin, MCP server and CLI: search, fetch and improve prompts and skills from an agent