The AI that remembers you. A personal intelligence with persistent memory, multi-provider AI, and full vault access.
The AI that remembers you.
A sidebar chat for Obsidian with long-term memory, semantic vault search, and safe, scoped access to your notes.
Features • How it works • Installation • Quick start • Commands • Troubleshooting
| Feature | What you get | |
|---|---|---|
| 🧠 | Long-term memory | Engram keeps a plain Markdown memory file of facts about you and your projects, and brings it into every chat. |
| 🔍 | Semantic search | Finds notes by meaning, not just keywords. Ask about "times I felt disconnected" and it surfaces entries about numbness or withdrawal. |
| 🔌 | Any model | Works with local models (Ollama, LM Studio, llama.cpp) and cloud providers (OpenAI, Claude, Gemini, and more). |
| 🛠️ | Works with your vault | The AI can search, read, create, edit, move, and organize notes using built-in tools. |
| 🔒 | You stay in control | Limit which folders it sees, choose its edit permission, confirm risky changes, and undo AI edits. |
| 📄 | PDF and image attachments | Attach images or PDFs. PDF pages are rendered locally, with no external servers. |
| 💬 | Chat history that syncs | Each chat is saved as a file in your vault, so it syncs with Obsidian Sync, iCloud, Git, or Dropbox. |
Intelligence/Memory.md by default. It's a normal note you can read and edit./memory to pull key facts from the current chat. You review them before they're saved.save_memory), change (update_memory) or delete (delete_memory) a single entry. Only that entry's line is touched; everything else in the file, including your own headings and text, stays exactly as it is./v1/embeddings endpoint (for example, llama.cpp).Private/**, *.secret.md by default). Excluded files are never indexed, searched, or sent to the model.🔍 Read: search and read only✏️ Append: can only add text to the end of notes⚠️ Full edit: can create, edit, overwrite, move, rename, and delete/ for commands and @ to insert a link to a note ([[Note]]) into your message. The AI can then open it with its read tools. You ask a question
│
▼
┌──────────────────────────────────────────────┐
│ 1. Load your memory file │
│ 2. Find related notes (semantic search) │
│ 3. Add @-mentioned notes and attachments │
└──────────────────────────────────────────────┘
│
▼
Your chosen model replies, and can use tools
(search, read, edit…) within your permissions
│
▼
Answer streams in · used notes shown as chips · new facts saved to memory
Note content is wrapped in [VAULT DATA START] / [VAULT DATA END] markers, and the model is told to treat it as data, not instructions. This reduces the risk of prompt injection from text inside your notes.
https://github.com/PixelAnay/Engram.main.js, manifest.json, and styles.css from the latest release.<YourVault>/.obsidian/plugins/engram-chat/.Go to Settings → Engram, pick a provider, and enter a model name (plus an API key for cloud providers).
💡 Free and local: install Ollama, run
ollama pull llama3, and pick Local — Ollama.
Pick an embedding provider:
ollama pull nomic-embed-text
Ollama runs at http://localhost:11434 by default.
Download a GGUF embedding model, then start the server in embedding mode:
.\llama-server.exe -m "C:\path\to\model.gguf" --port 8080 --embedding
Check that it's running at http://localhost:8080/v1/models.
Use text-embedding-3-small with your OpenAI API key.
Then fill in Settings → Engram → Semantic Search:
| Setting | Example |
|---|---|
| Provider | Ollama, OpenAI, or Custom |
| Model | nomic-embed-text |
| Base URL | http://localhost:11434 (Ollama) or http://localhost:8080 (llama.cpp) |
| API key | OpenAI only |
Click Index Vault and wait for the "Indexed N files" notice. Run it again after adding many notes.
Click the 🧠 icon in the left ribbon and start talking. Semantic search runs automatically once the index is ready.
Slash commands (type in the chat box)
| Command | Action |
|---|---|
/memory |
Propose key facts from this chat; you tick the ones to save |
/forget |
Open the memory file to review or delete entries |
/persona |
Switch the active persona |
/export |
Export this chat to a vault note |
/clear |
Clear the current chat |
/scope |
Show which folders the AI can access |
Command palette
| Command | Action |
|---|---|
| Open Engram sidebar | Open the chat panel |
| Re-index vault | Rebuild the note list (titles, tags). For semantic search, use Index Vault in settings |
| Restore memory from backup | Pick a local backup and restore the memory file |
| Open memory file | Open your memory note |
| Sync chat history from vault | Reload chats saved in the vault |
.obsidian/plugins/engram-chat/data.json.⚠️ API keys are stored in
data.json. Don't commit your.obsidianfolder to a public Git repository.
Check the Base URL and that the embedding server is running. Engram tests the connection before indexing and shows an error if it can't connect.
llama-server is not recognized (Windows)Run .\llama-server.exe (with .\ and .exe) from the folder that contains it, or add that folder to your PATH.
The model returned an empty reply. Try another model or a simpler question. For local models, check that the model is fully loaded and has enough VRAM.
The index is saved between restarts. If it's gone, the embedding model, provider, or URL probably changed, which clears the index on purpose. Re-index once.
git clone https://github.com/PixelAnay/Engram.git
cd Engram
npm install
npm run build # type-check and bundle to main.js
To build and copy the plugin into a test vault:
setx OBSIDIAN_VAULT_PATH "C:\Path\To\Your\Vault" # once, then open a new terminal
npm run deploy
MIT © PixelAnay