A semantic code intelligence layer for humans and AI agents. Your AST, indexed and queryable β so AI agents stop grepping.
π English Β· FranΓ§ais
About Β· Quickstart Β· Roadmap Β· Comparison Β· FAQ Β· Support Β· Changelog
Standardoc transforms your code into a structured, queryable knowledge graph β language ASTs are normalized into a canonical IR, indexed live, and exposed through MCP and LSP.
AI agents stop guessing. They query.
Code β Language Providers β Canonical IR β SQLite Graph β MCP / LSP β Humans + AI
- AI agents query structure β
find_symbol("createUser")thenget_context(fqdn, depth=1|2). ~100 tokens instead of 30k ofgrep + read. - Cross-language graph β Rust β TypeScript edges (CALLS / IMPORTS / EXTENDS / IMPLEMENTS / β¦) resolved automatically.
- Live index β file watcher keeps the graph in sync; no rescan dance.
- Local-first β SQLite under
.standardoc/, no SaaS, no telemetry.
Warning
Official binaries are distributed only through GitHub Releases and official editor marketplaces. Always verify the repository owner before downloading binaries.
Rust toolchain (CLI + MCP + LSP daemon, single binary stdoc) :
cargo install standardoc-cli
stdoc --versionVSCode extension (auto-spawns the daemon, registers MCP for Claude Code in VSCode + Copilot Chat) :
Search "Standardoc" in the VSCode Extensions panel, or grab the latest VSIX from
releases. On first activation
you get an Initialize this workspace? prompt β opt in to write .mcp.json,
generate the AI agent skill, and start the daemon.
See QUICKSTART.md for the full 5-minute walkthrough.
When you initialize a workspace, Standardoc writes
.claude/skills/standardoc/SKILL.md. Claude Code auto-loads it and the AI uses
Standardoc as the first reflex for any code task β find_symbol /
get_context before Read / Grep / Glob.
The skill pre-approves the two MCP tools so they run without per-call permission
prompts. Re-run Standardoc: Regenerate AI agent skill from the VSCode command
palette to refresh after upgrades.
flowchart TD
A[Source code] --> B[Language providers<br/>Rust: syn Β· TS: swc]
B --> C[Canonical IR]
C --> D[SQLite graph<br/>+ FTS5 index]
D --> E1[LSP daemon<br/>writer, fs lock]
D --> E2[MCP daemon<br/>read-only]
E1 --> F1[VSCode / IDE]
E2 --> F2[Claude Code Β· Cursor Β· Continue]
The LSP daemon is the primary writer (acquires the workspace fs lock, runs
the indexer). MCP daemons run --readonly and share the SQLite index
concurrently β no contention.
Beta.1 focuses on Rust + TypeScript with a single binary stdoc, a
file watcher, and 2 honest MCP tools. Documentation rendering (MDX/React),
additional languages, and cross-language bridges land in later milestones.
β See TODO-LIST.md for the full per-version checkbox roadmap.
- Code is the source of truth
- Structure is derived
- Understanding is a system
Standardoc Core (this repo) β CLI, LSP, MCP, language providers, VSCode extension. FSL-1.1-MIT β converts to plain MIT on April 26, 2028. Free for any non-competing use today, fully MIT after that.
The focus stays on the open-source Core. As long as Standardoc has no cloud/server component that would justify recurring infrastructure, there is no reason to offer a subscription β and none is planned. If a companion tool ever ships (e.g. a GitBook-style local doc UI that runs on your machine, no hosting), it would ship under a one-time lifetime license. Either way, the Core stays OSS and the MIT conversion date above is locked.
If Standardoc helps you rethink how software is understood :
π Star the repo Β· OpenCollective Β· Other ways
FSL-1.1-MIT β Functional Source License v1.1 with MIT future license. Each release converts to plain MIT on its second anniversary; the first release converts on April 26, 2028.