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/graphmindGuides for using ai agents skills like graphmind.
Last scanned: 7/2/2026
{
"issues": [
{
"file": "CLAUDE.md",
"line": 39,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://raw.githubusercontent.com/aouicher/graphmind/main/scripts/ins\"",
"severity": "medium"
},
{
"file": "README.md",
"line": 57,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://raw.githubusercontent.com/aouicher/graphmind/main/scripts/ins\"",
"severity": "low"
}
],
"status": "PASSED",
"scannedAt": "2026-07-02T07:32:11.023Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how graphmind compares with popular alternatives.
graphmind 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 218 GitHub stars.
Yes. graphmind 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/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!
From $49 · 30 days · terms & refunds
⚠️ 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.
Automated security scan — not a certification.
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 facts (or the absolute path of the checkout — in a git worktree, its path selects its own graph and the repo's shared memory)global=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 for zsh, ~/.bashrc for bash, ~/.profile otherwise), after a backup of that profile. On Windows, ~/.graphmind/bin goes on the user PATH and into your PowerShell profile instead. A profile that can't be read as text is left unchanged, and setup prints the folder to add to PATH yourself~/.claude/settings.json; a settings.json that can't be read or parsed is left unchanged/gm + 19 sub-skills)claude_desktop_config.json; the location per OS is under Manual setup)projects.<path>.mcpServers.graphmind in ~/.claude.json, or $CLAUDE_CONFIG_DIR/.claude.json when that is set, under the path Claude Code reads for the repository, usually its main checkout; see MCP server for Claude Code): rewrites an entry that points at a moved binary or carries an env block, moves an entry earlier versions wrote under a worktree's or a subfolder's own path (which Claude Code never reads) to the repository's, and replaces a user-scope graphmind entry that runs graphmind with entries for the registered projects, in one write. Entries are added when a project is registered (graphmind init, graphmind register, the desktop app); a .claude.json that doesn't parse is left as is, and setup runs again later~/.config/opencode/opencode.jsonc)~/.cursor/mcp.json) — available in all Cursor projects.vscode/mcp.json of registered projects that already have one~/.claude/CLAUDE.md); a block you edited is left as you set itsetup re-runs automatically after the binary is updated, when its configuration changed.
graphmind init (per project)Registers and indexes a project:
projects.<path>.mcpServers.graphmind in ~/.claude.json, through claude mcp add -s local when the claude CLI is on PATH), and VS Code's (<project>/.vscode/mcp.json), only in projects that already have a .vscode/ foldercd ~/projects/api && graphmind init
cd ~/projects/web && graphmind init
cd ~/projects/lib && graphmind init
Both commands are idempotent — safe to re-run.
/gm outside a projectClaude Code's MCP entries are per repository (see MCP server for Claude Code), so a session opened outside every registered project has no graphmind MCP tools. /gm runs the graphmind CLI and works there too: in a session opened outside any indexed project (graphmind which prints nothing and exits 1), it still answers questions about a registered project. It runs graphmind list, picks the project the question is about (asking you only when several could match), and passes it to every command with --slug <project>, for example graphmind fn dispatch_tool --slug myapp. Every query command takes --slug, except list and cross query, which span all projects. A slug that isn't registered is an error. Questions about an unregistered folder go to the agent's normal tools.
Claude Code gets graphmind per project, with one entry per repository, under the path Claude Code reads for it when started anywhere in the repository:
a repository's main checkout, for the checkout, its linked worktrees and their subfolders;
the bare repository (repo.git), for the worktrees of a bare repository;
the submodule's root, for a submodule and its subfolders, and <superproject>/.git/modules/<name> for a worktree of a submodule;
the work tree's root, for a repository created with --separate-git-dir;
the folder itself, outside git.
Registering a project (graphmind init, graphmind register, or adding it in the desktop app) writes or confirms that entry. From a worktree or a subfolder, it says which path it used.
Unregistering a project removes the entry, unless another registered project uses it. For a project whose folder was deleted, the entry is the graphmind entry under its path or a parent that no registered project uses; when more than one could be, all are left and graphmind says so.
A graphmind entry you set up by hand (its command isn't a graphmind binary) is left alone.
A .claude.json that doesn't parse is left as is and the reason shown; the project is registered anyway.
By hand, in that path (the main checkout, for most repositories):
claude mcp remove -s local graphmind # only to replace an existing entry: `claude mcp add` refuses a name that exists
claude mcp add -s local graphmind -- "$(command -v graphmind)" mcp
which writes this to ~/.claude.json ($CLAUDE_CONFIG_DIR/.claude.json when that is set), under that path:
{
"projects": {
"/home/user/projects/myapp": {
"mcpServers": {
"graphmind": {
"type": "stdio",
"command": "/home/user/.local/bin/graphmind",
"args": ["mcp"],
"env": {}
}
}
}
}
}
The command is the absolute path of your binary. command -v graphmind finds it on PATH (~/.local/bin/graphmind for the install script, $(brew --prefix)/bin/graphmind