localmind
LocalMind
Give every AI agent perfect memory of your codebase — offline.
LocalMind is a local-first knowledge & context engine for developers and AI coding agents. It indexes your repository into a searchable knowledge base (BM25 + optional embeddings), builds a lightweight import graph, answers questions with citations, and exposes everything through a CLI and an MCP server.
Why LocalMind?
Pain | LocalMind |
AI agents forget project context | Persistent local index + MCP tools |
Cloud RAG leaks private code | 100% local by default (SQLite) |
Grep is not enough for questions | BM25 ranking + extractive / generative answers |
“What depends on this file?” | Import / link knowledge graph |
Works without API keys. Optional OpenAI or Ollama for embeddings and generative answers.
Quick start
Requirements: Node.js ≥ 22.5
Install from npm
npm install -g @ixxrllg/localmind
# in any project
localmind init
localmind index
localmind ask "Where is authentication handled?"
localmind search "jwt middleware"
localmind statusOr without global install:
npx @ixxrllg/localmind init
npx @ixxrllg/localmind index
npx @ixxrllg/localmind ask "Where is authentication handled?"From source
git clone https://github.com/ixxrllg/localmind.git
cd localmind
npm install
npm run build
node dist/bin/localmind.js init --root /path/to/your/projectCLI
Command | Description |
| Create |
| Walk repo, chunk files, build inverted index (+ optional embeddings) |
| Force full re-index |
| Ranked code/doc search |
| Q&A with citations |
| Files linked via imports / markdown links |
| Index statistics |
| Start MCP server on stdio |
| Show / update config |
Global options:
-r, --root <path> Project root (default: cwd)
-q, --quiet
--verboseExamples
localmind init --provider ollama
localmind index
localmind search "chunkText overlap" --mode bm25
localmind ask "How are files ignored during indexing?" --extractive
localmind related src/indexer/indexer.ts
localmind status --jsonMCP (Cursor / Claude Code / agents)
localmind mcp --root /path/to/your/projectExample MCP config (Cursor / Claude Desktop):
{
"mcpServers": {
"localmind": {
"command": "node",
"args": [
"/absolute/path/to/localmind/dist/bin/localmind.js",
"mcp",
"--root",
"/absolute/path/to/your/project"
]
}
}
}Replace paths with your clone of ixxrllg/localmind and the project you want indexed.
Tools
Tool | Purpose |
| Semantic/lexical search over the index |
| Question answering with citations |
| Graph neighborhood for a path |
| Dump indexed chunks for a file / line range |
| Stats |
| Incremental or full re-index |
How it works
your repo
│
▼
walker + ignore rules (.gitignore, defaults)
│
▼
line-aware chunker ──► SQLite
│ ├─ files / chunks
│ ├─ BM25 inverted index (terms + postings)
│ ├─ import/link edges
│ └─ optional embeddings
▼
search (BM25 / vector / hybrid) ──► ask (extractive or LLM)
│
▼
CLI · MCP · library APIStorage:
.localmind/localmind.db(Node built-innode:sqlite)Default search: BM25 (no network, no models)
Optional: OpenAI / Ollama embeddings + chat
Configuration
.localmind/config.json (created by init):
{
"version": 1,
"provider": "none",
"include": [],
"exclude": [],
"maxFileBytes": 524288,
"chunkSize": 1200,
"chunkOverlap": 150,
"incremental": true
}Environment (optional)
See .env.example:
Variable | Role |
| Embeddings + generative answers |
| Compatible gateways |
| Chat model (default |
| Default |
| Default |
| Local models |
localmind config --provider openai
# or
localmind config --provider ollamaLibrary API
import {
initConfig,
loadConfig,
runIndex,
openDb,
closeDb,
search,
ask,
} from "@ixxrllg/localmind";
const { config } = initConfig({ root: process.cwd() });
await runIndex(config, { full: true });
const db = openDb(config.root);
const hits = await search(db, "authentication middleware");
const answer = await ask(db, config, "How does auth work?");
closeDb(db);Development
npm install
npm run build
npm test
npm run dev -- init
npm run dev -- index
npm run dev -- ask "What is LocalMind?"Requirements:
Node.js ≥ 22.5 (uses built-in
node:sqlite)
Project layout
src/
bin/localmind.ts CLI entry
cli/ Commander program + formatting
core/ config, paths, SQLite
indexer/ walk, chunk, relations, index pipeline
search/ tokenize, BM25, embeddings, hybrid
ask/ extractive + generative Q&A
graph/ related files
mcp/ MCP server + tools
index.ts public exports
tests/ unit + integrationRoadmap
File watcher / live re-index
Tree-sitter aware chunking
sqlite-vec acceleration
Web UI for exploration
Multi-repo workspaces
Contributing
See CONTRIBUTING.md. Issues and PRs welcome.
License
MIT — see LICENSE.
Author
Maintained by @ixxrllg.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ixxrllg/localmind'
If you have feedback or need assistance with the MCP directory API, please join our Discord server