By anortham
Local SQLite-backed code intelligence, content search, and workspace freshness for coding agents.
Use when tracing cross-language Miller bridge paths, especially TypeScript or Vue URL literals to ASP.NET endpoints, DTOs, entities, or tables.
Use when Miller search misses expected results, ranks surprising hits, returns noisy output, or needs mode/content/region troubleshooting.
Use when auditing registered Miller workspaces for dangerous strings, deprecated APIs, compatibility markers, secrets-like terms, or other exact text across source, docs, logs, external files, and web imports.
Use when querying another registered workspace with Miller, comparing repos, opening a workspace, or routing search/inspect/context/impact/trace through workspace_id.
Use before changing existing indexed files with Miller edit, especially symbol rewrites, text replacements, renames, or refactors.
Admin access level
Server config contains admin-level keywords
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Miller is a local code-intelligence server for coding agents. It keeps a current SQLite-backed view of a workspace, then answers structural questions through MCP and a matching CLI: find symbols, inspect files, build focused context, trace relationships, assess change impact, and check workspace freshness without asking an agent to grep and reread the repo by hand.
Miller is the free local core in the Miller/Eros product split. It stays deterministic, lexical/structural, daemon-light, and embedding-free. Eros sits above it for higher-level guidance, semantic/vector workflows, confidence/evidence views, and commercial orchestration.
The practical difference from a one-time graph dump is that Miller is built for active agent work:
MILLER_SEARCH_SIDECAR=0 when debugging the in-memory fallback;Current release: v0.5.4. Miller ships as agent plugins, self-contained per-platform release archives, and a source-checkout workflow.
Website: anortham.github.io/miller · Release: v0.5.4
Most Claude Code and Codex users should start with the agent plugin. Cursor is different: use a global
~/.cursor/mcp.json entry that passes the active workspace root to Miller. The plugin launcher downloads the
matching Miller release archive, verifies its .sha256 sidecar, caches it under ~/.miller/plugin-cache/, and
starts miller serve as an MCP server.
Claude Code:
/plugin marketplace add anortham/miller
/plugin install miller@miller
Cursor global MCP install:
version=v0.5.4
base="https://raw.githubusercontent.com/anortham/miller/$version"
launcher_root="$HOME/.miller/plugin-cache/cursor-global-miller"
mkdir -p "$launcher_root/bin" "$HOME/.cursor"
curl -fsSL "$base/bin/miller-plugin-launcher.cjs" -o "$launcher_root/bin/miller-plugin-launcher.cjs"
curl -fsSL "$base/miller-plugin.json" -o "$launcher_root/miller-plugin.json"
cat > ~/.cursor/mcp.json <<'JSON'
{
"mcpServers": {
"miller": {
"type": "stdio",
"command": "node",
"args": [
"${userHome}/.miller/plugin-cache/cursor-global-miller/bin/miller-plugin-launcher.cjs"
],
"env": {
"MILLER_WORKSPACE_ROOT": "${workspaceFolder}"
}
}
}
}
JSON
$version = "v0.5.4"
$base = "https://raw.githubusercontent.com/anortham/miller/$version"
$launcherRoot = "$env:USERPROFILE\.miller\plugin-cache\cursor-global-miller"
New-Item -ItemType Directory -Force "$launcherRoot\bin", "$env:USERPROFILE\.cursor"
Invoke-WebRequest -Uri "$base/bin/miller-plugin-launcher.cjs" -OutFile "$launcherRoot\bin\miller-plugin-launcher.cjs"
Invoke-WebRequest -Uri "$base/miller-plugin.json" -OutFile "$launcherRoot\miller-plugin.json"
@'
{
"mcpServers": {
"miller": {
"type": "stdio",
"command": "node",
"args": [
"${userHome}/.miller/plugin-cache/cursor-global-miller/bin/miller-plugin-launcher.cjs"
],
"env": {
"MILLER_WORKSPACE_ROOT": "${workspaceFolder}"
}
}
}
}
'@ | Set-Content -Encoding utf8 "$env:USERPROFILE\.cursor\mcp.json"
Reload Cursor after installing. MILLER_WORKSPACE_ROOT="${workspaceFolder}" is required for a user-wide Cursor
install: Cursor may start global MCP servers from the home directory or an empty/global window, and Miller refuses
to index those broad roots. The launcher ignores an unresolved ${workspaceFolder} value and fails closed if Cursor
has no real project root, instead of indexing the launcher cache or a system path. Do not use
~/.cursor/plugins/local/miller as the normal Cursor install path; Cursor can start plugin MCP servers before a
workspace exists and can also auto-import Claude plugin copies, leaving duplicate or stale errored Miller rows.
After installing, open a code workspace and ask your agent to search, inspect, build context, trace, or check
impact with Miller. Miller writes its local index under that workspace's .miller/ directory.
Use this path when your MCP client does not use Miller's plugin package.
Download the archive for your platform from the
v0.5.4 release, plus the matching .sha256
sidecar:
miller-0.5.4-aarch64-apple-darwin.tar.gzmiller-0.5.4-x86_64-apple-darwin.tar.gzmiller-0.5.4-x86_64-unknown-linux-gnu.tar.gzmiller-0.5.4-x86_64-pc-windows-msvc.zipnpx claudepluginhub anortham/miller --plugin millerCode intelligence server: search, navigation, and refactoring across 34 languages
Cross-client MCP memory with checkpoints, recall, briefs, and standups for AI-assisted development
Miller-powered development workflow with subagent-driven execution, inline review, and Miller-first codebase orientation.
Agent memory persistence - remember and recall across sessions
Composite workflows that orchestrate Julie (code intelligence), Sherpa (workflow guidance), and Goldfish (persistent memory) for powerful development patterns. Includes TDD Powerhouse, Bug Detective, Smart Session Start, and more.
Intelligent draw.io diagramming plugin with AI-powered diagram generation, multi-platform embedding (GitHub, Confluence, Azure DevOps, Notion, Teams, Harness), conditional formatting, live data binding, and MCP server integration for programmatic diagram creation and management.
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Persistent file-based planning for AI coding agents. Crash-proof markdown plans (task_plan.md, findings.md, progress.md) that survive context loss and /clear, with an opt-in completion gate and multi-agent shared state. Manus-style. Works with Claude Code, Codex CLI, Cursor, Kiro, OpenCode and 60+ agents via the SKILL.md standard. Includes Arabic, German, Spanish, and Chinese (Simplified and Traditional).
Permanent coding companion for Claude Code — survives any update. MCP-based terminal pet with ASCII art, stats, reactions, and personality.
Access thousands of AI prompts and skills directly in your AI coding assistant. Search prompts, discover skills, save your own, and improve prompts with AI.
Reliable automation, in-depth debugging, and performance analysis in Chrome using Chrome DevTools and Puppeteer