Multi-project markdown wiki and memory control plane for LLM agents.
Project description
REEFIKI
AI agents are fast, but they are bad at remembering project context: decisions stay buried in chats, useful procedures disappear, and the next agent starts from zero again.
REEFIKI solves that problem as a local wiki memory for AI agents: it keeps only the knowledge that is likely to be useful again, not the whole session noise.
Русский · 中文 · Quick Start · Commands
About this repository. This is the public REEFIKI product. Development happens in a separate private contour; filtered snapshots are published here — so the public history is short and intentionally trails by one snapshot cycle. What is included, what is excluded, and how it is refreshed: see docs/SNAPSHOT.md.
Trust map. Canonical source: github.com/NeAGI/Reefiki. PyPI package: pypi.org/project/reefiki. To verify a release, compare the commit SHA in the PyPI Trusted Publishing provenance against a tag in this repository — they must match. Note: the provenance
publisherfield may readkisslex2013-alt/Reefiki(the legacy publisher identity) while pointing at the same commit; this is expected and does not indicate a substituted artifact.
The Problem
AI-agent work often breaks not because of code, but because of memory.
After a few threads, the same issues appear:
- an important decision is stuck in a chat and cannot be found;
- a new agent does not know why the project is shaped this way;
- a useful trick was discovered once but never became a reusable skill;
- links, notes, and conclusions get mixed with drafts and noise;
- agent memory becomes either too short or too dirty.
A normal note-taking system does not fully solve this either: it is easy to save everything, but hard to separate reusable knowledge from accidental context.
What REEFIKI Is
REEFIKI is a local multi-project distillation wiki for AI agents.
In practice:
- every project has its own wiki;
- the agent saves decisions, skills, conclusions, and sources there;
- weak or temporary material is deferred instead of polluting the base;
- everything is stored as markdown files with git history;
- workflow rules live in
AGENTS.md, so different agents can follow them.
REEFIKI is not another chatbot, cloud memory service, or archive of every message. It is a filter that turns working chaos into short, verifiable, portable project memory.
Why REEFIKI
The space of memory tools is filling up, and "markdown memory" on its own is no longer a differentiator. Different jobs call for different tools; here is where REEFIKI differs by design.
- A filter, not a warehouse. REEFIKI does not index everything: material goes through distillation — inbox → selection → types (decisions, skills, concepts, sources). What stays is reusable knowledge, not a full log.
- Memory is human-readable and lives in git. Everything is stored as markdown under version control: you can read it, review it in a PR, roll it back. There is no hidden vector index as the single source of truth.
- Zero infrastructure. All you need is files and git — no vector DB, server, or cloud. Portability across agents comes through
AGENTS.md: any agent that reads files can follow the rules.
| REEFIKI | Mem0 / OpenMemory | memsearch | Letta / Zep | |
|---|---|---|---|---|
| Storage | Markdown + git, human-readable | Vectors/graph + dashboard | Markdown + vector DB (Milvus) | Inside a framework runtime / service |
| Knowledge selection | Distillation: inbox → filter → types | Automatic fact extraction | Index everything | Auto-extraction / temporal graph |
| Dependencies | None (files + git) | Server/cloud | Vector DB | Framework (LangGraph/Letta) / service |
| Portability across agents | AGENTS.md — any file-reading agent |
Via MCP clients | Claude Code / Codex | Inside its own runtime |
| Governance / auditability | Health/lint, journal, git history, public/private layers | Dashboard | — | — |
About the tools compared: Mem0/OpenMemory — memory via vectors/graph and MCP; memsearch — markdown + vector search (Milvus) for Claude Code/Codex; Letta — memory inside an agent framework; Zep — memory on a temporal knowledge graph. This compares tools by design, without benchmarks.
Project Profiles
Not every REEFIKI project is the same. When creating or connecting a project, you can tell the agent which profile it is:
| Profile | Use for | Examples |
|---|---|---|
agent_surface |
rules, skills, adapters, diagnostics, and recovery for agent/IDE/runtime environments | Codex, Claude Code, Gemini, Mimo, Hermes |
product |
product decisions, delivery evidence, UX, and release knowledge | Metrica |
knowledge_domain |
topic/domain knowledge without a primary runtime layer | Suno, Instagram, Security Guidance |
reefiki_core |
REEFIKI rules and governance | reefiki |
This is a manual onboarding label, not a required schema field. Details: docs/PROJECT_PROFILES.md.
Why It Exists
REEFIKI is useful when you work with AI agents regularly and want them to:
- continue with awareness of past decisions;
- avoid repeating mistakes that were already solved;
- recover project context quickly;
- save procedures as reusable skills;
- separate private memory from public material;
- hand work off between Codex, Claude Code, Cursor, Windsurf, and other agents.
The core idea: an agent should not only finish a task, but also leave a reusable trace behind.
How It Works
REEFIKI follows a simple cycle:
- Capture: a link, file, decision, or conclusion enters the project inbox.
- Filter: the agent checks whether it can be applied again.
- Save: useful material becomes a wiki page, skill, decision, or synthesis.
- Link: pages get links, an index entry, and a log record.
- Recall later: the next agent answers from the accumulated wiki, not from guesses.
REEFIKI uses a few durable memory types:
| Type | What it stores |
|---|---|
sources |
where an idea or material came from |
concepts |
reusable understanding |
decisions |
a decision and its reason |
skills |
a reproducible procedure |
synthesis |
conclusions from a session or project stage |
Rifiki
Rifiki is a small reef crab archivist: a keeper of the reef wiki who does not drag every grain of sand into memory, but selects the useful shells. In the README, Rifiki is a metaphor: session noise on the left, distillation in the center, clean project memory on the right.
Quick Start
Shortest trial without installing permanently:
pipx run reefiki first-run
Permanent install:
pipx install reefiki
reefiki first-run
first-run creates or reuses ~/reefiki-workspace, runs a health check, and shows 1-2 next actions.
Details: QUICKSTART.md and docs/INSTALL.md.
Working After Setup
After the first run, work with plain phrases:
| You say | The agent does |
|---|---|
| "put this in the inbox" | saves material for later processing |
| "process the inbox" | turns useful material into wiki pages |
| "remember this as a decision" | saves a durable decision |
| "save this as a skill" | records a reusable procedure |
| "connect this project to the wiki" | creates a separate wiki and bridge only after explicit confirmation |
| "what did we decide about sync?" | answers only from the accumulated wiki |
| "capture the session conclusions" | saves a synthesis |
What It Can Do Today
- Separate wiki projects under
projects/<name>/. - Connect an existing code project through
_wiki. - Capture -> process -> query -> harvest workflow.
- Agent-agnostic rules through
AGENTS.md. - Manual project profiles for agent/runtime, product, and knowledge-domain projects.
- Local markdown files instead of closed cloud storage.
- Wiki log and index.
- Health/lint checks to keep the base from becoming a dump.
- Handoff context for the next agent.
- Clear boundaries between local/private memory and material that can be shared publicly.
Full capability map: COMMANDS.md.
What REEFIKI Is Not
REEFIKI is intentionally not:
- a storage system for every chat message;
- a replacement for git, Obsidian, or an issue tracker;
- an automatic cloud sync service;
- a vector database "just in case";
- a system that writes anywhere without project boundaries.
If material cannot be applied again, it should not become durable wiki memory.
Safety
REEFIKI is local-first by default:
- user wiki projects stay local;
raw/is treated as an immutable archive;- secrets, binaries, and oversized files are not saved automatically;
- public material is separated from local wiki projects and checked before publishing;
- the agent changes only explicitly selected project files.
In short: REEFIKI makes memory useful without blurring project boundaries.
For Agents
Agents do not need to remember internal commands. They read AGENTS.md and follow the project contract:
- from the REEFIKI root, they can create and connect projects;
- inside
projects/<name>/, they can save and process knowledge; - old
wiki/log.mdentries are never rewritten; raw/is not edited;- all durable writes must be explainable and reproducible.
That makes REEFIKI portable across Codex, Claude Code, Cursor, Windsurf/Cascade, Cline, and other LLM agents.
If a project is an agent/IDE/runtime environment such as Codex, Claude Code, Gemini, Mimo, or Hermes, treat it as an agent_surface: preserve portable procedures, adapters, diagnostics, and recovery notes, but do not merge wikis or copy skills automatically.
Token Economy
REEFIKI reduces token waste not by magically compressing everything, but by making the agent read less junk.
- Instead of the whole chat, the agent recalls short
decisions,skills,concepts, andsynthesispages. - Projects are isolated, so unrelated context does not leak into the current task.
wiki/index.mdand the log help find relevant pages without rereading the whole base.- The handoff pack builds a bounded context bundle for the next agent.
- Weak material stays in the inbox or refusal path instead of becoming permanent memory.
Rule of thumb, not a guarantee: one short decision or skill page is often around 500-2,000 tokens and can replace 5,000-30,000 tokens of old chat context. A practical handoff pack usually stays around 2,000-8,000 tokens instead of tens of thousands of history tokens.
On repeat tasks, this often means roughly 50-90% fewer context-reading tokens; for returning to one decision or skill, the reduction can be 70-95%.
Details: docs/TOKEN_ECONOMY.md#english.
Next
- QUICKSTART.md: first run without knowing the CLI.
- COMMANDS.md: all REEFIKI operations.
- docs/TOKEN_ECONOMY.md: how REEFIKI saves tokens.
- docs/INSTALL.md: CLI install and smoke test.
- docs/obsidian-setup.md: safe Obsidian setup.
- docs/PUBLIC_DEMO.md: public demo and boundaries.
- docs/RECOVERY.md: recovery after failures.
Public roadmap: docs/PUBLIC_ROADMAP.md. Public backlog: docs/PUBLIC_BACKLOG.md.
Documentation status map: docs/STATUS.md.
License
REEFIKI code is distributed under Apache License 2.0. See LICENSE.
Wiki-project content belongs to the user who created or added it.
Acknowledgements and design influences
REEFIKI is an independent implementation. The materials and tools below are not imported as REEFIKI codebases and are not copied source code. They influenced the product as ideas, vocabulary, architecture patterns, and operating constraints.
- Karpathy's LLM Wiki gist: the idea of a compact, agent-readable wiki instead of repeatedly replaying chat history; distillation over raw archiving.
- REEF protocol: the
capture -> distillation -> telemetryloop; cheap capture, deliberate processing, and later reuse as separate stages. - Vannevar Bush's "As We May Think": Memex, associative trails, durable personal memory, and connected knowledge instead of isolated notes.
- Markdown wiki and Obsidian-style workflows: local markdown files, wikilinks, graph/viewer thinking, and readable knowledge without a cloud service. REEFIKI is not an Obsidian clone: its source of truth stays in the repository and agent-aware rules.
- Git worktree workflow: isolated task work, reviewable changes, and careful separation between local/private content and the public snapshot.
memoir: short working memory and preferences as a separate layer. In REEFIKI it is an optional short-memory provider; durable truth remains in the markdown wiki.- Graphify and graph-based retrieval: a graph of code, files, and documents as a navigation and candidate-selection layer. REEFIKI does not become a graph database; it uses graph ideas for relationships and compact context.
- CodeGraph-style navigation: disposable impact/callgraph/relationship queries over code as a developer aid, not as durable memory.
- Agent/IDE runtimes: Codex, Claude Code, Cursor, Windsurf/Cascade, Cline, Gemini, Mimo, and Hermes influenced the vendor-neutral
AGENTS.md, project profiles, portable rules, and reusable runbooks. - Local-first security practice: explicit project boundaries, public-material checks, append-only logs, immutable
raw/, and avoiding broad save-everything behavior as REEFIKI-specific safety infrastructure.
The practical goal of REEFIKI is to combine wiki, agent workflow, short memory, graph navigation, and Git discipline into one local-first process where knowledge can be verified, transferred, and published safely.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reefiki-0.2.1.tar.gz.
File metadata
- Download URL: reefiki-0.2.1.tar.gz
- Upload date:
- Size: 348.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0779a75ef49808ef3a4f912e2db92b3c220073bc1e22cf6751685a40c3bae5f2
|
|
| MD5 |
3d85f101a5ef9492ba9c9dd2e2fbd7ec
|
|
| BLAKE2b-256 |
4b0764ce05418796d0d228b3f1d40b3c41c6744928f08e022fd1afadbf34577c
|
Provenance
The following attestation bundles were made for reefiki-0.2.1.tar.gz:
Publisher:
publish-python.yml on NeAGI/Reefiki
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reefiki-0.2.1.tar.gz -
Subject digest:
0779a75ef49808ef3a4f912e2db92b3c220073bc1e22cf6751685a40c3bae5f2 - Sigstore transparency entry: 2153011080
- Sigstore integration time:
-
Permalink:
NeAGI/Reefiki@92696092af4def27cf8768d4a8825e13e995452f -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/NeAGI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-python.yml@92696092af4def27cf8768d4a8825e13e995452f -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file reefiki-0.2.1-py3-none-any.whl.
File metadata
- Download URL: reefiki-0.2.1-py3-none-any.whl
- Upload date:
- Size: 277.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbf9b4f7cadee623bd3697ecae16d76cb028842e0ad88a98ae7d651ab078cc36
|
|
| MD5 |
d0c33f3c0c1d5541b7b9fc9b0f6eae09
|
|
| BLAKE2b-256 |
2c9adc7105611354de0222ec83354d9ecf1250c011744ab2c8615b61e9461d29
|
Provenance
The following attestation bundles were made for reefiki-0.2.1-py3-none-any.whl:
Publisher:
publish-python.yml on NeAGI/Reefiki
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reefiki-0.2.1-py3-none-any.whl -
Subject digest:
cbf9b4f7cadee623bd3697ecae16d76cb028842e0ad88a98ae7d651ab078cc36 - Sigstore transparency entry: 2153011128
- Sigstore integration time:
-
Permalink:
NeAGI/Reefiki@92696092af4def27cf8768d4a8825e13e995452f -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/NeAGI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-python.yml@92696092af4def27cf8768d4a8825e13e995452f -
Trigger Event:
workflow_dispatch
-
Statement type: