> For the complete documentation index, see [llms.txt](https://evo-5.gitbook.io/evo/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://evo-5.gitbook.io/evo/readme.md).

# Introduction

**Evolving memory for agents — recall before the model thinks, reflect after it answers.**

evo is a provider-neutral memory service that gives AI coding agents durable, cross-session memory. It recalls relevant knowledge into the system prompt before a model step, and reflects completed turns into structured memory afterwards — so an agent keeps what it learned across sessions without you writing it down.

## Why evo?

Local CLI agents (Claude Code, Codex, DeepSeek Harness) are stateless by default: each session starts from zero. User preferences, project conventions, pitfalls stepped into three times — all evaporate when the session ends.

evo solves this by maintaining a **recall + reflect loop**:

* **Recall**: Before each prompt, evo assembles relevant memories into the agent's context
* **Reflect**: After each successful turn, evo distills the conversation into structured memory items

The result: your agent becomes an experienced colleague who remembers the project, not a stranger who needs the same explanations every time.

## Key Features

* **Structured memory**: Every item has a scope, kind (fact, constraint, procedure, skill…), tags, and source tracing back to the session and turn it came from
* **Local by default**: SQLite storage via Node's built-in `node:sqlite` — nothing leaves the machine except reflection model calls
* **Workspace import**: Existing `CLAUDE.md`, `AGENTS.md`, `.codex/`, and similar files are imported as project-scoped memory on first use
* **Provider-neutral**: Works with DeepSeek Harness, Claude Code, and Codex through adapters
* **Batch distillation**: Turns are collected and distilled in batches for better memory quality and fewer model calls

## Supported Hosts

| Host                                                           | Integration                        |
| -------------------------------------------------------------- | ---------------------------------- |
| [DeepSeek Harness](/evo/host-integrations/deepseek-harness.md) | Cordis plugin with web panel       |
| [Claude Code](/evo/host-integrations/claude-code.md)           | Hook plugin via CLI or marketplace |
| [Codex](/evo/host-integrations/codex.md)                       | Hook plugin via CLI or marketplace |

## Quick Links

* [Getting Started](/evo/getting-started/requirements.md) — Requirements and installation
* [How It Works](/evo/concepts/how-it-works.md) — The recall + reflect loop explained
* [Configuration](/evo/configuration/environment-variables.md) — All settings and environment variables
* [HTTP API](/evo/api-reference/http-api.md) — REST endpoints for external integrations

## Status

evo is currently **alpha (0.3.x)**. The core loop is stable and used daily, but APIs may change. The project is MIT-licensed.

## Attribution

Developed by the Paper team.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://evo-5.gitbook.io/evo/readme.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
