by aouicher
Local-first code intelligence for AI assistants. Turns your codebase into a knowledge graph your AI can query, navigate, and remember. 25 MCP tools.
# Add to your Claude Code skills
git clone https://github.com/aouicher/graphmindgraphmind is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by aouicher. Local-first code intelligence for AI assistants. Turns your codebase into a knowledge graph your AI can query, navigate, and remember. 25 MCP tools. It has 129 GitHub stars.
graphmind's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/aouicher/graphmind" and add it to your Claude Code skills directory (see the Installation section above). graphmind ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
graphmind is primarily written in Rust. It is open-source under aouicher 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 graphmind against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Before using Grep, find, rg, ag, or reading files to understand code: You MUST query graphmind first. Only fall back to grep/find if graphmind cannot answer (e.g., string literals, config values, non-code patterns).
| Need | Command | MCP tool |
|---|---|---|
| Find a symbol | graphmind fn <symbol> |
gm_fn |
| Search by intent | graphmind search "<query>" |
gm_search |
| File dependencies | graphmind deps <file> |
gm_deps |
| Who calls X | graphmind query <symbol> |
gm_query |
| Blast radius | graphmind fn-impact <symbol> |
gm_fn_impact |
| Git change impact | graphmind diff-impact |
gm_diff_impact |
| Project overview | graphmind map |
gm_map |
| File outline | graphmind outline <file> |
gm_outline |
| Raw file content | graphmind file <file> |
gm_file |
| Who calls chain | — | gm_who_calls_chain |
| Dead code | — | gm_dead_code |
| Cross-project | graphmind cross query <symbol> |
gm_cross_query |
| Memory search | graphmind memory search "<query>" |
gm_memory_search |
Check: graphmind status
Register if not: graphmind register .
Query before touching any code:
graphmind fn <symbol> or MCP gm_fngraphmind deps <file> or MCP gm_depsgraphmind fn-impact <symbol> --no-testsgraphmind diff-impactgraphmind mapgraphmind outline <file> or MCP gm_outlinegm_who_calls_chainQuery for context, decisions, conventions:
graphmind memory search "<query>" or MCP gm_memory_searchAUTO-RECALL: The hook automatically searches memory on each prompt. Use gm_memory_search for deeper/targeted recall.
AUTO-SAVE: When the conversation reveals any of the following, immediately save via gm_memory_add:
Save rules:
project=<slug> for project-specific factsglobal=true for user preferences, team conventions, cross-project knowledgeRead source files only when editing or when the graph doesn't have the answer.
When a symbol or pattern might exist in another project:
graphmind cross query <symbol> or MCP gm_cross_query
Start of session: run graphmind session start → loads graph summary + recent memory
End of session: run graphmind session save → saves decisions and progress to memory
git merge with structural changesgraphmind build (fast, SHA256-cached)~/.graphmind/Your codebase has a shape. Now your AI can see it. And remember it.
GraphMind turns your codebase into a knowledge graph your AI can query, navigate, and remember. Ask about dead code, dependencies, or blast radius — and get answers grounded in your actual architecture.
Up to 5,700× fewer tokens than raw search (~10M tokens saved per session). Works with Claude Code, Cursor, Windsurf, Cline, Zed, Continue, and any MCP-compatible AI assistant.
Every new AI session starts from zero. Your assistant re-reads the entire codebase, re-discovers architecture, and forgets every decision you explained last time. Across multiple projects, there's zero visibility into shared dependencies.
graphmind fixes this with four layers:
Everything runs locally. No cloud. No open ports by default. No telemetry.

Comparison of token usage: grep -r (raw file search) vs graphmind search for the same query on a ~100k LOC codebase. graphmind returns ranked, structured results in under 300 tokens vs 1.5M+ for raw grep output.
Download the .dmg from Releases. The app installs the CLI for you and runs a guided onboarding that configures MCP, hooks, skill, and embeddings — no terminal needed.

| Platform | Asset |
|---|---|
| macOS (Apple Silicon) | GraphMind-macos-arm64.dmg |
| macOS (Intel) | GraphMind-macos-x64.dmg |
Linux / Windows: CLI only — use the shell script or direct download below.
curl -fsSL https://raw.githubusercontent.com/aouicher/graphmind/main/scripts/install.sh | bash
Then run graphmind setup once to configure Claude Code, hooks, and skill.
brew install aouicher/graphmind/graphmind # CLI
brew install --cask aouicher/graphmind/graphmind # Desktop app (macOS only)
curl -fsSL https://github.com/aouicher/graphmind/releases/latest/download/graphmind-cli-linux-x64 -o ~/.local/bin/graphmind
chmod +x ~/.local/bin/graphmind
git clone https://github.com/aouicher/graphmind
cd graphmind
cargo build --release -p graphmind-cli
cp target/release/graphmind ~/.local/bin/
graphmind setup # once — configures Claude Code, Claude Desktop, hooks, skill
cd ~/projects/myapp
graphmind init # per project — registers, installs git hooks, builds graph
That's it. Claude Code, Claude Desktop, Cursor, and VS Code will use graphmind automatically.
graphmind setup (once, global)Configures your machine so all AI tools can use graphmind:
~/.zshenv, ~/.zshrc, ~/.bashrc)/gm + 19 sub-skills)~/Library/Application Support/Claude/claude_desktop_config.json)~/.claude/settings.json)~/.config/opencode/opencode.jsonc)~/.cursor/mcp.json) — available in all Cursor projects~/.claude/CLAUDE.md)graphmind init (per project)Registers and indexes a project, then writes MCP config for editors that support project-level config:
~/.claude.json under projects.<path>.mcpServers (local scope)<project>/.vscode/mcp.jsoncd ~/projects/api && graphmind init
cd ~/projects/web && graphmind init
cd ~/projects/lib && graphmind init
Both commands are idempotent — safe to re-run.
claude mcp add graphmind -- graphmind mcp
Or manually in ~/.claude/settings.json:
{
"mcpServers": {
"graphmind": {
"command": "/home/user/.graphmind/bin/graphmind",
"args": ["mcp"],
"env": { "PATH": "/home/user/.graphmind/bin:/usr/local/bin:/usr/bin:/bin" }
}
}
}
graphmind init writes this automatically to ~/.claude.json:
{
"projects": {
"/absolute/path/to/project": {
"mcpServers": {
"graphmind": {
"type": "stdio",
"command": "/home/user/.graphmind/bin/graphmind",
"args": ["mcp"],
"env": { "PATH": "/home/user/.graphmind/bin:/usr/local/bin:/usr/bin:/bin" }
}
}
}
}
}
Claude Desktop does not inherit your shell PATH. Use the full path:
{
"mcpServers": {
"graphmind": {
"command": "/opt/homebrew/bin/graphmind",
"args": ["mcp"],
"env": { "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin" }
}
}
}
Config file location:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonTip: Run
which graphmindto find the correct path on your system.
graphmind setup writes this automatically to ~/.cursor/mcp.json:
{
"mcpServers": {
"graphmind": {
"command": "/home/user/.graphmind/bin/graphmind",
"args": ["mcp"],
"env": { "PATH": "/home/user/.graphmind/bin:/usr/local/bin:/usr/bin:/bin" }
}
}
}
graphmind init writes this automatically to <project>/.vscode/mcp.json:
{
"servers": {
"graphmind": {
"type": "stdio",
"command": "/home/user/.graphmind/bin/graphmind",
"args": ["mcp"],
"env": { "PATH": "/home/user/.graphmind/bin:/usr/local/bin:/usr/bin:/bin" }
}
}
}
graphmind install hook-claude
Registers hooks in ~/.claude/settings.json for:
graphmind search, provides graph results for Grep/Glob/LS toolsBuilt-in intelligence:
grep -c, pipes to wc/sort and lets them throughgraphmind install skill
graphmind sync # updates CLAUDE.md in current project
graphmind sync --all # updates CLAUDE.md for all registered projects
graphmind install hook-git
┌─────────────────────────────────────────────┐
│ Claude Code / MCP Client │
├─────────────────────────────────────────────┤
│ MCP Server (rmcp SDK, stdio) — 27 tools │
│ gm_query · gm_fn · gm_file · gm_deps │
│ gm_outline · gm_who_calls_chain · gm_dead │
│ gm_export · gm_similar · gm_listeners │
│ gm_memory_search · gm_cross_query │
│ gm_status · gm_context · gm_diff_impact │
├─────────────────────────────────────────────┤
│ Layer 1: Structural Graph (SQLite + FTS5) │
│ Symbols · Edges · Call sites │
├─────────────────────────────────────────────┤
│ Layer 2: Semantic Embeddings (SQLite) │
│ Cosine search · Graph expansion · RRF │
├─────────────────────────────────────────────┤
│ Layer 3: Semantic Memory (JSONL) │
│ Decisions · Patterns · Conventions │
├─────────────────────────────────────────────┤
│ Layer 4: Cross-Project Links (JSONL) │
│ Shared symbols · Inferred relationships │
├─────────────────────────────────────────────┤
│ Rust Core (tree-sitter + napi-rs) │
│ Multi-language parsing · Symbol extraction │
└─────────────────────────────────────────────┘
graphmind search combines three retrieval strategies into a single ranked result:
graphmind search "<query>" # hybrid search (FTS + semantic + graph)
graphmind search "<q1>; <q2>" # multi-query with RRF ranking
graphmind search "<query>" --kind function