AI Project Memory
tudoumashu/ai-memory-skillpack
Maintain bounded, durable AI project memory in a repository's docs/ai/ pack.
Persistent memory across sessions via the BrainDB agent. An agent skill from dimknaf/braindb.
$ npx skills add dimknaf/braindb --skill braindb-agent -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dimknaf/braindb braindb-agent --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/dimknaf/braindb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/braindb-agent .claude/skills/braindb-agent && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "braindb-agent" agent skill from https://github.com/dimknaf/braindb/tree/main/skills/braindb-agent into .claude/skills/braindb-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "braindb-agent", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/dimknaf/braindb/tree/main/skills/braindb-agentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add dimknaf/braindb --skill braindb-agent -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dimknaf/braindb braindb-agent --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dimknaf/braindb.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/braindb-agent .agents/skills/braindb-agent && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "braindb-agent" agent skill from https://github.com/dimknaf/braindb/tree/main/skills/braindb-agent into .agents/skills/braindb-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "braindb-agent", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dimknaf/braindb --skill braindb-agent -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dimknaf/braindb braindb-agent --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dimknaf/braindb.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/braindb-agent .cursor/skills/braindb-agent && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "braindb-agent" agent skill from https://github.com/dimknaf/braindb/tree/main/skills/braindb-agent into .cursor/skills/braindb-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "braindb-agent", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/dimknaf/braindb.git --path skills/braindb-agent--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add dimknaf/braindb --skill braindb-agent -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dimknaf/braindb braindb-agent --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dimknaf/braindb.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/braindb-agent .gemini/skills/braindb-agent && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "braindb-agent" agent skill from https://github.com/dimknaf/braindb/tree/main/skills/braindb-agent into .gemini/skills/braindb-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "braindb-agent", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install dimknaf/braindb braindb-agentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add dimknaf/braindb --skill braindb-agent -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/dimknaf/braindb.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/braindb-agent .github/skills/braindb-agent && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "braindb-agent" agent skill from https://github.com/dimknaf/braindb/tree/main/skills/braindb-agent into .github/skills/braindb-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "braindb-agent", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dimknaf/braindb --skill braindb-agent -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dimknaf/braindb braindb-agent --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dimknaf/braindb.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/braindb-agent .opencode/skills/braindb-agent && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "braindb-agent" agent skill from https://github.com/dimknaf/braindb/tree/main/skills/braindb-agent into .opencode/skills/braindb-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "braindb-agent", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
braindb-agentPersistent memory across sessions via the BrainDB agent. An agent skill from dimknaf/braindb.
Braindb Agent is an agent skill from dimknaf/braindb. Persistent memory across sessions via the BrainDB agent. Use at conversation start and whenever you need to recall what you know about the user or save new information to long-term memory.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering Agent memory and LLM wikis. The repository describes itself as: An "LLM wiki" upgraded to a real database — typed entities, graph relations, HTTP API, and a built-in natural-language agent. The licence is Apache-2.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 99cd121. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curldockerFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl and docker, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Braindb Agent loads about 3.2k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 1,611 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
et `AGENT_VERBOSE=true` in the server's `.env` (default is `false`). When enabled, every tool call the agent makes is loallowed-tools: Bash, ReadAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from dimknaf/braindb at commit 99cd121, republished under its Apache-2.0 licence (© dimknaf). 1,611 words, ~3,216 tokens.
.claude/skills/braindb-agent/SKILL.md (or your agent's skills folder).BrainDB has its own internal agent (LiteLLM with pluggable provider via LLM_PROFILE; defaults to deepinfra/google/gemma-4-31B-it) that handles all memory operations. You don't call individual endpoints — you ask the agent in plain English via one endpoint: POST http://localhost:8000/api/v1/agent/query.
!curl -sf http://localhost:8000/health > /dev/null 2>&1 && echo "OK" || echo "BRAINDB_DOWN"
If the output contains BRAINDB_DOWN, the memory database is not running. Do this:
docker-compose.yml at the rootbraindb/main.pypyproject.toml with name = "braindb"
Search in: current dir, parent dirs (up to 3 levels), common locations like ~/source/repos/**/braindb/.cd <braindb-path> && docker compose up -decho "<braindb-path>" > ~/.claude/skills/braindb-agent/.repo_pathcurl -sf http://localhost:8000/health for up to 30 seconds.The agent has a clear order of tools it should reach for. When you phrase a request, lean into the sophisticated tools — don't ask it to "run SQL" for anything to do with recall or understanding.
/memory/context (keyword-mediated fuzzy + embedding + graph + ranking,
with diversity quotas). The default for ALL discovery and understanding.view_tree returns a
nested JSON tree (root keyed by entity_type, children arrays per
node, 1-N hops out, keyword + retired-wiki noise filtered by default,
_truncated marker if more remain). Especially useful when an entity
ID is already in hand — often sharper than another query about the
same entity. On hub entities pass max_depth=3 for narrative chains.view_entity_relations, get_entity, list_entities
for narrow questions.search_sql ⚠ exception only — for explicit aggregates (counts,
GROUP BY, activity-log joins). Never for finding / understanding /
"what's related to" — those are jobs for the tools above.If you're tempted to phrase a request as "run a SQL query that finds…" for finding or understanding something, stop — that's the recall or tree path's job. Ask in plain English.
Wikis are first-class memory entities curated by an internal maintainer + writer pipeline. The agent surfaces them through recall automatically when relevant — you don't have to ask for them explicitly, and you don't have to trigger anything to make new ones. Saving facts with the right keywords is enough; the scheduler runs maintain → write on its 60s tick and the wikis materialise on their own.
Internally the agent now researches from short previews and reads a full body only by id (paging large ones, or delegating big documents to a subagent), so its context stays clean — just ask in natural language ("read and summarise datasource X"); it handles the chunking itself.
Ask the agent in natural language. It handles keyword formulation, multi-query search, graph traversal, and summarization.
Encoding note: When constructing the curl JSON body, use ASCII characters only — plain hyphens (
-), straight quotes (",'), no em-dashes (—) or smart quotes. On Windows shells these get mangled in the JSON body and the server returns 400 Bad Request.
curl -s -X POST http://localhost:8000/api/v1/agent/query \
-H "Content-Type: application/json" \
-d '{"query":"Tell me who the user is - role, expertise, preferences, recent projects."}'For topic-specific recall:
curl -s -X POST http://localhost:8000/api/v1/agent/query \
-H "Content-Type: application/json" \
-d '{"query":"What do you know about the user React frontend experience?"}'Read the answer field from the response. Use the summary to inform your response. Never paste raw JSON into the conversation.
Describe what you learned in natural language. The agent decides the entity type, picks keywords, generates embeddings, creates relations.
curl -s -X POST http://localhost:8000/api/v1/agent/query \
-H "Content-Type: application/json" \
-d '{"query":"Save: the user just told me they prefer simple code over abstractions. Source: user-stated. Connect to existing preference entities."}'The pattern is RECALL → ASK → SAVE:
When the user shares something that might be worth remembering (a name, role, project, preference, decision, your own inference about them), RECALL first via the agent to check if it's already known.
If it's net-new, ASK the user:
"I haven't seen this before — should I save it to BrainDB? I'd file it as a [fact / thought / rule] tagged with [keywords]."
Only on a 'yes', issue the save request to the agent.
Don't pre-save without confirmation. The user has the final say on what becomes long-term memory. User-confirmed memory is higher-signal and lets the user catch judgement-call mistakes early.
Exception: when the user explicitly framed it as a rule ("from now on, always X"; "never do Y"), save it without an extra confirmation — they already said it — but surface the action: "Saving that as a rule."
thought,
source=agent-inference) — ASK before persisting these too; an inference
is still memory.The goal is to capture what the user gives you in conversation that isn't already in BrainDB — not to scrape every utterance. Information already in recall doesn't need saving again; ephemeral task details ("currently debugging X") don't need saving at all.
| Situation | Query to send to the agent |
|---|---|
| Start of conversation | "Tell me who the user is - role, expertise, preferences, recent projects." |
| User mentions a topic | "What do you know about the user ML experience and AI projects?" |
| User asks about past work | "What has the user shipped recently? Check facts with source=user-stated from the last month." |
| Need to find duplicates | "Find near-duplicate entities in memory." |
| Explore the graph | "What are the densest topics in memory? Which entities have the most connections?" |
| Situation | What Claude says to the user first | What Claude sends to the agent (on a 'yes') |
|---|---|---|
| User mentions something net-new | "I noticed you just said you're working on the IR pipeline multilingual extraction — that looks worth saving. Should I?" | "Save: user is working on the IR pipeline multilingual extraction. Connect to existing IR entities." |
| User shares a preference | "Should I save that as a long-term preference?" | "Save as fact: user prefers simple code over abstractions. Source: user-stated. Keywords: user-preference, code-style." |
| User explicitly states a rule | (no confirmation — they framed it as a rule) "Saving that as a rule." | "Save as rule: always prefer simple code over abstractions. Source: user-stated. Category: behavior." |
| You drew an inference about the user | "I'm getting the sense you're senior in ML — should I save that as a thought?" | "Save as thought: user appears senior in ML based on the depth of their question. Source: agent-inference. Certainty: 0.6." |
To keep the agent's main context clean and your conversation uncluttered, you can explicitly tell it to delegate heavy tasks. Just include "use a subagent" or "delegate this" in the query — the agent has a delegate_to_subagent tool that runs a fresh agent instance in its own context and returns only a summary.
# Find duplicates without seeing intermediate results
curl -s -X POST http://localhost:8000/api/v1/agent/query \
-H "Content-Type: application/json" \
-d '{"query":"Delegate to a subagent: find near-duplicate facts and return top 10 pairs with their IDs."}'
# Deep search on a topic
curl -s -X POST http://localhost:8000/api/v1/agent/query \
-H "Content-Type: application/json" \
-d '{"query":"Use a subagent: explore every entity tagged with investor-relations and return a clean summary of what is there."}'
# Create relations in bulk
curl -s -X POST http://localhost:8000/api/v1/agent/query \
-H "Content-Type: application/json" \
-d '{"query":"Spawn a subagent: find orphaned user-profile facts and create tagged_with links to relevant keyword entities."}'Delegation is 1 level deep — subagents cannot spawn more subagents.
If the user wants a local file (article, transcript, note, document) ingested into BrainDB, don't ask the agent to do it. Instead, copy the file into the repo's data/sources/ directory and the system handles the rest:
braindb_watcher sidecar polls data/sources/ every ~7 seconds.datasource entities (content + hash + word count).fact entities derived from the document and links them back via derived_from relations.data/sources/ingested/; on failure to data/sources/failed/ with a sidecar .error.txt.What this means for you (Claude) and the user:
data/sources/ on the BrainDB repo. The watcher will pick it up within a few seconds and you'll see the facts appear in recall a minute or two later."/agent/query like "Save this file..." with the file contents pasted into the prompt — that bloats the LLM context and bypasses the proper extraction pipeline. The watcher path produces structured facts + derived_from relations + keyword auto-tagging; pasting bypasses all of it.docker logs braindb_watcher -fYou'll see ingested NEW: <filename> -> <id> words=N then later extraction complete for <id>: N facts total. After that the new facts surface naturally in /agent/query recall — no extra steps.
Edge cases:
data/sources/failed/, read the sidecar .error.txt next to it to see what went wrong.Set AGENT_VERBOSE=true in the server's .env (default is false). When enabled, every tool call the agent makes is logged to stdout with args and result preview. Watch it live:
docker logs braindb_api -fThe HTTP response itself is unchanged (just {"answer": "..."}). Logs go to the server stdout only — clean separation between the response payload and operational logging.
--max-time 600 to long curl calls.© dimknaf, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/braindb-agent of dimknaf/braindb.
Open the folder on GitHubat commit 99cd121
Braindb Agent next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Braindb Agent this skilldimknaf/braindb | 110 | — | ~3.2k | Automated safety check: Notes | Apache-2.0 | |
| AI Project Memorytudoumashu/ai-memory-skillpack | 411 | — | ~1.1k | Automated safety check: Pass | MIT | |
| LLM WikiYeachan-Heo/oh-my-claudecode | 40k | — | ~721 | Automated safety check: Pass | MIT | |
| Agent Wiki Guideline ExtractorAgentToolkit/altk-evolve | 122 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Swarmvaultswarmclawai/swarmvault | 708 | — | ~6.1k | Automated safety check: Pass | MIT | |
| MemPalace Memory SearchMemPalace/mempalace | 59k | — | ~1.4k | Automated safety check: Pass | MIT |
tudoumashu/ai-memory-skillpack
Maintain bounded, durable AI project memory in a repository's docs/ai/ pack.
Yeachan-Heo/oh-my-claudecode
Keeps a persistent markdown wiki of project and session knowledge that the agent can ingest into, query, lint and read across sessions.
AgentToolkit/altk-evolve
Reads a normalized Claude Code trajectory JSON and turns its errors and solutions into reusable guideline pages in wiki-twobatch/guidelines.
swarmclawai/swarmvault
Use SwarmVault when the user needs a local-first knowledge vault that writes durable markdown, graph, search, dashboard, review, chat-session, context-pack, task-ledger, static AI export, retrieval…
MemPalace/mempalace
Mines project files and conversation exports into a local, searchable memory palace and recalls past work by semantic search through the mempalace CLI.
MemPalace/mempalace
Installs and configures MemPalace as a private local palace, a shared-brain hub or a client of an existing hub, including MCP registration and version-correct initialization.
dimknaf/braindb
How to author a BrainDB custom profile — prompt add/replace fragments and an optional keyless ingestor — that shapes wiki naming/structure and feeds a custom ingestion source, with zero effect on…
dimknaf/braindb
Memory recall and save. An agent skill from dimknaf/braindb.
Categories
Persistent memory across sessions via the BrainDB agent. An agent skill from dimknaf/braindb. Braindb Agent is an agent skill from dimknaf/braindb. Persistent memory across sessions via the BrainDB agent.
Braindb Agent fits situations like: tasks that involve Agent memory; tasks that involve LLM wikis.
Run `npx skills add dimknaf/braindb --skill braindb-agent -a claude-code`. Or copy the skill folder (skills/braindb-agent in dimknaf/braindb) into .claude/skills/braindb-agent in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dimknaf/braindb --skill braindb-agent -a codex`. Or copy the skill folder (skills/braindb-agent in dimknaf/braindb) into .agents/skills/braindb-agent in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dimknaf/braindb --skill braindb-agent -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/braindb-agent, .gemini/skills/braindb-agent, .github/skills/braindb-agent and .opencode/skills/braindb-agent in your project.
Going by SKILL.md and its folder, Braindb Agent needs the command-line tools its instructions call (curl and docker). Our summary lists: Docker. Its frontmatter pre-approves these tools: Bash, Read.
SKILL.md contains no URLs. Its commands use curl and docker, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file; pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Braindb Agent is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Braindb Agent: AI Project Memory (tudoumashu/ai-memory-skillpack, 411 stars), LLM Wiki (Yeachan-Heo/oh-my-claudecode, 40k stars), Agent Wiki Guideline Extractor (AgentToolkit/altk-evolve, 122 stars) and Swarmvault (swarmclawai/swarmvault, 708 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dimknaf (a GitHub user) maintains it in dimknaf/braindb, which has 110 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 12, 2026.
Source: dimknaf/braindb on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.