by ArihantDeva
A lightweight CPU only memory approach with ranked retrieval. Simple, yet effective.
# Add to your Claude Code skills
git clone https://github.com/ArihantDeva/heimdallLast scanned: 8/26/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-08-26T04:39:23.642Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how heimdall compares with popular alternatives.
heimdall is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by ArihantDeva. A lightweight CPU only memory approach with ranked retrieval. Simple, yet effective. It has 65 GitHub stars.
Yes. heimdall passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/ArihantDeva/heimdall" and add it to your Claude Code skills directory (see the Installation section above).
heimdall is primarily written in JavaScript. It is open-source under ArihantDeva on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh heimdall against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Your agent keeps rebuilding work you already did. Heimdall makes it stop.
Heimdall gives AI coding agents persistent memory across every repository and project you work on so the question "did I already solve this in another project?" gets answered by one verified search instead of twenty minutes of grep, find, and ls loops.
1. Memory that doesn't live in one repository. Every other memory tool is per-project. But your work isn't: the optimized functions you built in one project could be useful somewhere else. Heimdall indexes everything you touch into one semantic graph, so knowledge follows you across repositories, languages, and months.
2. Orientation time, cut to seconds. A fresh agent session burns dozens of bash commands just figuring out the lay of the land — ls, grep, re-reading files it read last week. Heimdall injects the relevant prior work into the session's first prompt and backs a single kb_search call: ranked, scoped, verified. Fewer commands, fewer tokens, faster first useful action.
3. Zero token spend. Memory maintenance is a local daemon: file watching, tree-sitter AST parsing, sqlite. Indexing a file costs CPU only — never an LLM call. Retrieval is hybrid ranked search (lexical + semantic + graph walk) over locally-computed embeddings. Your context window stays for your actual work. You can also use your GPU for up to 3.4x speeds.
4. Retrieval you can act on. Semantic memory tools return plausible matches, but Heimdall also verifies it at runtime.
STRONG — path exists on disk, strong lexical coverage, and the file's actual content answers the query (content-aware scoring)WEAK — semantic match only; plausible but unverifiedREBUILT — file moved; Heimdall found it and re-anchored automaticallySTALE / REMOVED — dead path, logged and pruned so it stops rankingAn agent acting on a dead path is worse than no answer. Ranked retrieval is trustworthy enough to act on. Gives the real picture, instead of the best guess.
Without Heimdall:
$ grep -r "portfolio optimization" . # wrong repo, 40s
$ find ~/work -name "*.py" | xargs grep -l optimizer # 2 min
$ ls ~/work/... ; cat notes.md ; ... # 15 commands later
With Heimdall:
$ kb_search "portfolio optimization jam optimizer"
1. [STRONG] portfolio optimizer — ~/work/quant-bot/src — EV-optimizer entry point
2. [STRONG] excel report builder — ~/work/reports/excel — 276-session tracking table
One call. Verified paths. Straight to work.
Architecture-level comparison of shipped defaults — not benchmark claims. "LLM extraction" etc. describe each project's default pipeline as documented; self-hosted or configured-differently deployments vary.
| Heimdall | mem0 | Zep (Graphiti) | Letta (MemGPT) | LangMem / LangChain Memory | Vector-DB RAG | Claude Memory | cAST / grep | |
|---|---|---|---|---|---|---|---|---|
| Scope | All your repos, one graph | per-app/per-user memories | per-user/session graph | per-agent | per-app/thread | per-corpus/index | per-conversation/account | per-repo |
| Runs on CPU only | yes | LLM+embeddings in the loop | LLM extraction for entities/edges | LLM-in-the-loop memory management | LLM extraction + embeddings | embeddings (GPU-friendly) | cloud | yes |
| Token cost of indexing | zero (tree-sitter + local embeddings) | LLM extraction per memory op | LLM calls per episode | LLM calls throughout | LLM extraction per write | embedding tokens only | LLM summarization | zero but manual |
| Trust verdicts on results | STRONG / WEAK / REBUILT / STALE | none | none | none | none | similarity score only | none | none |
| Self-healing (moved files re-anchored) | yes | no | no | no | no | no (stale chunks rank) | no | no |
| Convergent state (idempotent re-index) | yes (level-triggered reconciler) | append-oriented | event-sourced episodes | conversation-scoped | append-oriented | re-ingest to update | opaque | n/a |
| Reads private source locally | yes, never leaves disk | sent to extraction LLM | sent to extraction LLM | stays local w/ local models | sent to extraction LLM | local if self-hosted | cloud | yes |
| Harness integrations | pi, Claude Code, Codex, Cursor, Windsurf | SDK/API | SDK/API + Graphiti | SDK/API | LangChain-native | DIY per stack | Claude products | editor plugins |
By design, not by benchmark — these follow from the architecture:
Zero-LLM indexing instead of extraction pipelines. mem0, Zep, Letta, and LangMem all use LLMs to write facts: every remembered fact costs extraction tokens, adds latency, and means your code/notes are processed by a cloud provider unless you wire your own. Heimdall's ingest is tree-sitter plus local CPU embeddings. It cannot leak data, nor does it cost anything.
Verified hits vs plausible hits. RAG returns nearest neighbors with a similarity score; nothing checks that the chunk still exists, let alone that it answers the question. Heimdall re-verifies every result against the live filesystem at query time (path exists? content still matches?) and labels it STRONG/WEAK/REBUILT/STALE. Agents can act on STRONG without a confirmation round-trip.
Self-healing vs stale corpora. In vector-RAG, a moved file leaves orphaned chunks ranking forever until someone re-runs ingestion. Heimdall's level-triggered reconciler converges: moved files re-anchor automatically (REBUILT), deletions retract exactly their own nodes, and re-indexing twice is identical to once.
Cross-repo scope without a corpus pipeline. Classic RAG needs you to define, chunk, and refresh a corpus per app. Heimdall watches working trees continuously — new repos join the graph on their own, and personal context (prompt logs, notes, now even email via heimdall ingest-email) lands in the same graph your code lives in.
What they win back. Fair's fair: mem0/Zep/Letta excel at conversational fact curation across chat products, multi-user serving, and hosted APIs; LLM extraction summarizes messy prose better than regexes. Heimdall is making the opposite bet, that a single developer's machine-wide workspace where the unit of memory is verified file-level knowledge, not chat utterances.
Heimdall is the only one built for the real indie developer workflow: many repos, many months, one agent session at a time, on hardware you already own. Best for people with tons of side projects.
Does my code leave my machine? No. Indexing is tree-sitter parsing + local embeddings on CPU. Search runs against your local daemon. Nothing phones home.
Do I need a GPU? No. The embedding model (bge-m3) runs on Apple Silicon / any modern CPU.
How is this different from grep? Grep finds strings you already know exist. Heimdall answers "have I solved anything like this before?" across every project you've touched, ranked and verified against what's actually on disk right now.
What if a file moves or gets deleted? The reconciler notices on its next pass. Moved files are re-homed automatically (REBUILT verdict); deletions retract exactly their own nodes. A stale path never ranks again.
Does it work with my agent? One command wires it into pi, Claude Code, Codex, Cursor, or Windsurf. Anything that can run a CLI can use search/insert directly.
Is it production-ready? It runs daily on this author's machine across ~12,800 live nodes with a 166-test suite guarding the concurrency invariants. v0.2.0. LongMemEval benchmark harness is in bench/ (in progress).
bench/ (baseline S 0.740 reproduced)npm i -g (postinstall) and heimdall setup; no separate init --backend flagPRs welcome — see CONTRIBUTING.md. The concurrency invariants are tested; break them and the suite goes red before you do.
npm i -g @arihantdeva/heimdall
heimdall init --harness claude-code # or pi | codex | cursor | windsurf | all
That's it for install + harness wiring (init, insert work immediately).
npm i -g auto-builds the graft backend during install when prerequisites
are present
(macOS — Xcode Command Line Tools + brew install cmake pkg-config libyaml sqlite;
Debian/Ubuntu — apt install cmake pkg-config build-essential git libsqlite3-dev libyaml-dev;
Fedora/Amazon Linux — dnf install gcc gcc-c++ make cmake git pkgconf-pkg-config sqlite-devel libyaml-devel;
git required — llama.cpp is cloned at first build);
first build takes a few minutes (log: ~/.heimdall/bootstrap.log). If
prerequisites are missing, SETUP NEEDED prints and the install still
succeeds — run heimdall setup to build later. Opt out:
HEIMDALL_NO_BUILD=1 npm i -g @arihantdeva/heimdall. Defaults: model
bge-m3, accel auto (Metal on Apple Silicon, CUDA when nvidia-smi
present, else CPU), thr