swarmvault
About
SwarmVault is a local-first knowledge vault for developers that ingests diverse sources (documents, URLs, code) and writes durable, structured artifacts to disk. It implements an LLM-maintained wiki pattern to create searchable markdown, graphs, dashboards, and retrieval-ready data layers from raw inputs. Use it to build a persistent, AI-enhanced knowledge base directly within your file system.
Quick Install
Claude Code
Recommendednpx skills add swarmclawai/swarmvault -a claude-code/plugin add https://github.com/swarmclawai/swarmvaultgit clone https://github.com/swarmclawai/swarmvault.git ~/.claude/skills/swarmvaultCopy and paste this command in Claude Code to install this skill
Documentation
SwarmVault
Use this skill when the user wants a local-first knowledge vault built on the LLM Wiki pattern — three layers (raw sources, wiki, schema) where the LLM maintains a durable wiki between you and raw sources. Also use it when the project already contains swarmvault.config.json or swarmvault.schema.md.
For onboarding, examples, command references, or troubleshooting, read the bundled README.md, examples/, references/, and TROUBLESHOOTING.md before improvising workflow advice.
Quick checks
- Work from the vault root.
- Use
swarmvault nextwhen you need a read-only orientation command before deciding whether to initialize, ingest, compile, query, review, or refresh. - If the vault does not exist yet, run
swarmvault init. - Use
swarmvault demo --no-servewhen the user wants the fastest zero-config walkthrough before pointing SwarmVault at their own sources. - Use
swarmvault quickstart <file-or-directory-or-github-url>as the beginner-friendly first-run path when the user wants init + ingest + compile + graph viewer in one command. - Use
swarmvault scan <file-or-directory-or-github-url> --no-serve,swarmvault scan <file-or-directory-or-github-url> --no-viz, orswarmvault clone <file-or-directory-or-github-url> --no-vizwhen the user wants the fastest scratch pass over a local file, local repo, public GitHub repo, or docs tree without manually stepping through init + ingest + compile first; for GitHub URLs add--branch,--ref, or--checkout-dirwhen the user needs a pinned checkout. Usescan --mcporclone --mcpwhen the next step should be an MCP stdio server. Useswarmvault graph share --postfor copyable text,swarmvault graph share --svg [path]for a visual card, orswarmvault graph share --bundle [dir]for a portable folder with markdown, post text, SVG, HTML preview, and JSON metadata. - Use
swarmvault context build "<goal>" --target <path-or-node> --budget <tokens>when the next agent, review, or handoff needs a bounded evidence pack instead of a broad vault search. - Use
swarmvault chat "question"when a multi-turn conversation should survive handoff; resume withswarmvault chat --resume <id> "follow-up"and inspect saved transcripts underwiki/outputs/chat-sessions/. - Use
swarmvault export ai --out <dir>when another agent, crawler, or static workflow needsllms.txt, full text, JSON-LD graph data, a manifest, and per-page siblings without startinggraph serve. - Use
swarmvault task start "<goal>" --target <path-or-node>when agent work should leave a durable task ledger with decisions, linked context packs, changed paths, outcomes, and follow-ups. The oldermemorycommand remains a compatibility alias. - Use
swarmvault doctorbefore broad troubleshooting or agent handoff; add--repairwhen the retrieval index can be safely rebuilt. Inswarmvault graph serve, the workbench shows prioritized next actions, every doctor check with details, copyable suggested commands, and safe direct repair where available. - Read
swarmvault.schema.mdbefore compile or query work. It is the vault's operating contract. - If
wiki/graph/report.mdexists, use it before broad repo search. - If
SWARMVAULT_OUTis set, resolve generated artifacts from that output root:raw/,wiki/,state/,agent/, andinbox/live there whileswarmvault.config.jsonandswarmvault.schema.mdstay in the project root.
Core loop
- Run
swarmvault nextwhen the current vault state is unclear; it is read-only and returns paths, checks, and recommended commands. - Initialize a vault with
swarmvault initwhen needed. - Update
swarmvault.schema.mdbefore a serious compile. Use it for naming rules, categories, grounding, freshness expectations, and exclusions. - Use
swarmvault source add <input>when the input is a recurring local file, local directory, public GitHub repo root, or docs hub that should stay registered. For public GitHub repos, use--branch,--ref, or--checkout-dirwhen a branch, tag, commit, or reusable checkout matters. - Ingest one-off inputs with
swarmvault ingest <path-or-url>, or ingest a whole repo tree withswarmvault ingest <directory>. Audio and video files usetasks.audioProviderwhen configured; local video needsffmpeg, public video URLs useswarmvault ingest --video <url>/swarmvault add --video <url>withyt-dlp, and supported YouTube URLs go through direct transcript capture instead of generic URL ingest. - Use
swarmvault ingest --guide,swarmvault source add --guide,swarmvault source reload --guide,swarmvault source guide <id>, orswarmvault source session <id>when the human should integrate one source at a time before canonical pages change. Setprofile.guidedIngestDefault: trueinswarmvault.config.jsonto make guided mode the default; use--no-guideto override. Profiles usingguidedSessionMode: "canonical_review"stage approval-queued canonical edits;insights_onlyprofiles keep exploratory synthesis inwiki/insights/. Use--reviewonly for the lighter review-only path. - Use
swarmvault inbox importfor capture-style batches, thenswarmvault watch --lint --repowhen the workflow should stay automated. Add--code-onlywhen the refresh should stay AST-only and defer non-code semantic re-analysis to a latercompile. On tracked repos, code-only changes take that faster compile path automatically. Installswarmvault hook installwhen git checkouts and commits should trigger the same repo-aware code-only refresh automatically. - Compile with
swarmvault compile, usecompile --max-tokens <n>when the generated wiki must stay inside a bounded context budget, or usecompile --approvewhen changes should go through the local review queue first. - Resolve staged work with
swarmvault review list|show|accept|rejectandswarmvault candidate list|promote|archive. - Ask questions with
swarmvault query "<question>". It saves durable answers intowiki/outputs/by default; add--no-saveonly for ephemeral checks. When an embedding provider is configured, query can merge semantic page matches into local search;retrieval.rerank: truelets the currentqueryProviderrerank the merged top hits before answering. - Use
swarmvault chat "question"for a persisted multi-turn conversation over the compiled wiki, then resume or manage it withswarmvault chat --resume <id>,chat --list, andchat --delete <id>. - Build agent handoff bundles with
swarmvault context build "<goal>" --target <path-or-node> --budget <tokens>. Use--format markdown|json|llmsfor the printed shape, and inspectswarmvault context list|show|deletefor saved packs. - Start a task ledger with
swarmvault task start "<goal>" --target <path-or-node>, update it withswarmvault task update <id> --note|--decision|--changed-path|--context-pack, finish it withswarmvault task finish <id> --outcome <text>, and useswarmvault task resume <id> --format markdown|json|llmsfor the next-agent handoff.query,explore, andcontext buildcan attach work with--task <id>;--memory <id>remains a compatibility alias. - Run
swarmvault export ai --out <dir>when the compiled wiki should be handed to another agent or static crawler asllms.txt, full text, JSON-LD, manifest metadata, and per-page.txt/.jsonsiblings. - Run
swarmvault doctor [--repair]when the vault needs one health summary across graph, retrieval, review queues, watch state, migrations, managed sources, and task state before deeper troubleshooting. - Use
swarmvault explore "<question>" --steps <n>for save-first multi-step research loops, or--format report|slides|chart|imagewhen the artifact should be presentation-oriented. - Run
swarmvault lintwhenever the schema changed, artifacts look stale, or compile/query results drift. Setprofile.deepLintDefault: trueinswarmvault.config.jsonwhen the advisory deep-lint pass should be the default, and use--no-deepwhen you need a structural-only run. Add--webonly when deep lint is enabled and awebSearch.tasks.deepLintProvideradapter is configured; web evidence is scoped to deep lint and does not change compile or query behavior. - Use
swarmvault mcpwhen another agent or tool should browse, search, query, build context packs, manage tasks, and inspect vault or retrieval health from the vault through MCP. - Use
swarmvault graph share --postwhen the user needs a quick copyable summary,swarmvault graph share --svg [path]when they need a 1200x630 visual card,swarmvault graph share --bundle [dir]when they need a portable share kit for posting, linking, or screenshotting,swarmvault graph blast <target>when they want reverse-import impact analysis,swarmvault graph cycleswhen they need directed cycle checks,swarmvault graph status [path]orswarmvault check-update [path]when they need a read-only stale check before deciding betweengraph updateandcompile,swarmvault graph statswhen they need lightweight counts and relation mix,swarmvault graph validate [graph] --strictwhen a graph artifact should be checked before export, merge, push, or publish workflows,swarmvault graph update [path] --forceorswarmvault update [path] --forceonly when a large node/edge shrink is expected,swarmvault watch [path] --once --code-onlywhen one repo root should be refreshed without writing watch config,swarmvault graph query "<seed>" --context calls --evidence extractedwhen traversal should focus on relation groups, evidence classes, node types, or languages,swarmvault graph tree [--output <html>]orswarmvault tree [--output <html>]when they need an interactive source/module/symbol tree with a node inspector,swarmvault graph merge <graph...> --out <path>orswarmvault merge-graphs <graph...> --out <path>when they need to combine SwarmVault or node-link graph JSON,swarmvault graph cluster [--resolution <n>]orswarmvault cluster-only [vault]when they need communities and graph report artifacts recomputed without re-ingest,swarmvault graph servewhen the live workspace, health workbench, Memory dashboard, or bookmarklet clipper will help,swarmvault diffwhen they need a graph-level change summary against the last committed baseline, orswarmvault graph export --html <output>/graph export --report <output>/graph export --callflow <output>when richer sharing will help. The live workbench exposes prioritized next actions, explicit capture modes, title/tag capture fields, context-pack/task token budgets, and action receipts; the bookmarklet sends page titles and selected text into the same capture path.graph exportalso supports--html-standalone,--json,--obsidian,--canvas, and--neo4jfor lighter, Obsidian-native, or Neo4j-ready sharing.
Working rules
- Prefer changing the schema before re-running compile when organization or grounding is wrong.
- Treat
wiki/andstate/as first-class outputs. Inspect them instead of trusting a single chat answer. - Use saved chat transcripts and static AI exports as durable handoff artifacts when the user asks for continuity across sessions or tools.
- Prefer
wiki/graph/report.md,state/graph.json, and saved wiki pages over ad hoc broad search when they already exist. - Use
swarmvault graph status [path]orswarmvault check-update [path]before refreshing a tracked repo when you need to know whether a code-onlygraph update/updateis enough or a fullcompileis required. - Use
swarmvault graph validate [graph] --strictbefore sharing, merging, pushing, or publishing graph artifacts when reference integrity matters. - Use
source addfor recurring files, directories, public GitHub repo roots, and docs hubs. Useingestandaddfor deliberate one-off inputs. - When the vault lives in a git repo,
ingest|compile|query --commitcan commitwiki/andstate/changes immediately after the run. - The default heuristic provider is a valid local/offline starting point. Add a model provider only when the user wants richer synthesis quality or optional capabilities such as embeddings, vision, image generation, or audio transcription. The recommended fully-local setup is Ollama + Gemma:
ollama pull gemma4then setproviders.llmto{ type: "ollama", model: "gemma4" }and pointtasks.compileProvider,tasks.queryProvider, andtasks.lintProviderat it. Useswarmvault provider add|list|show|removewhen provider routing should be updated without hand-editing config. - Audio and video ingest need
tasks.audioProviderto resolve to a provider that exposesaudiocapability. For a fully local setup, runswarmvault provider setup --local-whisper --apply— installs thelocal-whisperprovider, downloads a whisper.cpp ggml model into~/.swarmvault/models/, and pointstasks.audioProviderat it. Local video also needsffmpeg; public video URL ingest with--videoneedsyt-dlp. YouTube transcript ingest does not need a provider. Setgraph.communityResolutionwhen the user wants to pin community clustering instead of using the adaptive default and oversized/low-cohesion split pass, or runswarmvault graph cluster --resolution <n>for a one-off recompute. - If an OpenAI-compatible backend cannot satisfy structured generation, reduce its declared capabilities instead of forcing every task through it.
- Keep raw sources immutable. Put corrections in schema, new sources, or saved outputs rather than manually rewriting generated provenance.
Files and artifacts
swarmvault.schema.md: vault-specific compile and query rules.SWARMVAULT_OUT: optional output root for generated artifact directories. When set,raw/,wiki/,state/,agent/, andinbox/are resolved under that directory.raw/sources/andraw/assets/: canonical source storage.wiki/: generated pages plus saved outputs.wiki/outputs/source-briefs/: saved onboarding briefs for managed sources.wiki/outputs/source-sessions/: resumable guided-session anchors plus question/answer history for one-source-at-a-time integration.wiki/outputs/source-reviews/: staged source-scoped review pages.wiki/outputs/source-guides/: staged source-integration guides for one-source-at-a-time workflows.wiki/outputs/chat-sessions/: persisted markdown transcripts forswarmvault chat.wiki/dashboards/: recent sources, reading log, timeline, source sessions, source guides, research map, contradiction, and open-question dashboards.wiki/graph/share-card.md,wiki/graph/share-card.svg, andwiki/graph/share-kit/: post-ready text, visual graph summaries, and a portable HTML-preview share bundle generated on compile.wiki/exports/ai/: default static AI handoff export withllms.txt,llms-full.txt,graph.jsonld,manifest.json,ai-readme.md, and optional per-page siblings.wiki/context/: markdown context-pack companions for agent kickoff, PR review, and handoff.wiki/memory/: task ledger index and markdown task pages.wiki/code/: module pages for ingested JavaScript, JSX, TypeScript (including.mts/.cts), TSX, Bash/shell script (with shebang-based detection for extensionless scripts), Python, Go, Rust, Java, Kotlin, Scala, Dart, Lua, Zig, C#, C, C++ (including.c/.cc/.cpp/.cxxand.h/.hh/.hpp/.hxx), PHP, Ruby, PowerShell (.ps1/.psm1/.psd1), Elixir (.ex/.exs), OCaml (.ml/.mli), Objective-C (.m/.mm), ReScript (.res/.resi), Solidity (.sol), Vue single-file components (.vue), Svelte single-file components (.svelte), HTML (.html/.htm), CSS, Julia (.jl), Verilog/SystemVerilog (.v/.vh/.sv/.svh), R (.r/.R), and SQL (.sql) sources. Julia and Verilog/SystemVerilog use packaged WASM grammars; JS/TS capture static and dynamic imports; SQL adds table/view symbols plus read/write/join/reference graph edges; R emits an explicit diagnostic until a safe packaged parser exists.state/extracts/: extracted markdown and JSON sidecars for PDF, the full Word family (.docx/.docm/.dotx/.dotm), RTF (.rtf), OpenDocument (ODT/ODP/ODS), EPUB, CSV/TSV, the full Excel family (.xlsx/.xlsm/.xlsb/.xls/.xltx/.xltm), the full PowerPoint family (.pptx/.pptm/.potx/.potm), Jupyter notebooks (.ipynb), BibTeX (.bib), Org-mode (.org), AsciiDoc (.adoc/.asciidoc), transcripts, Slack exports, email, calendar, audio transcripts, video transcripts, YouTube transcript captures, and image sources (.png/.jpg/.jpeg/.gif/.webp/.bmp/.tif/.tiff/.svg/.ico/.heic/.heif/.avif/.jxl), plus structured previews for config/data files (JSON/JSONC/JSON5/TOML/YAML/XML/INI/ENV/PROPERTIES/CFG/CONF) and content-sniffed text ingest for developer manifests (package.json,Cargo.toml,go.mod,LICENSE,.gitignore,Dockerfile,Makefile, and similar plaintext files).state/code-index.json: repo-aware code aliases and local import resolution data.wiki/projects/: project rollups over canonical pages.wiki/candidates/: staged concept and entity pages awaiting promotion.state/graph.json: compiled graph.state/context-packs/: saved JSON context-pack artifacts with citations, token-budget accounting, included items, and omitted items.state/chat-sessions/: saved structured chat state for resumable wiki conversations.state/memory/tasks/: saved JSON task ledger records with decisions, changed paths, outcomes, and follow-ups.state/retrieval/: local retrieval index, SQLite FTS shard, and manifest.state/sources.jsonandstate/sources/<id>/: managed-source registry entries plus working sync state.state/approvals/: staged review bundles fromcompile --approve.state/sessions/: canonical session artifacts for compile, query, explore, lint, watch, review, and candidate actions.state/jobs.ndjson: watch-mode run log.
Agent integration
swarmvault install --agent codex|claude|cursor|goose|pi|gemini|opencode|aider|copilot|trae|claw|droid|kiro|kilo|hermes|antigravity|vscode|amp|augment|adal|bob|cline|codebuddy|command-code|continue|cortex|crush|deepagents|devin|firebender|iflow|junie|kilo-code|kimi|kode|mcpjam|mistral-vibe|mux|neovate|openclaw|openhands|pochi|qoder|qwen-code|replit|roo-code|trae-cn|warp|windsurf|zencoderinstalls agent-specific rules into the current project. Agents in the extended roster receive a project-level skill bundle at the tool's conventional skills directory.swarmvault init,quickstart,scan, andcloneleave project-local agent rule files alone by default. Useinstall --agentexplicitly, or setagentsinswarmvault.config.jsonand pass--install-agent-rulesto initialization or scan commands when configured installs are intentional.swarmvault install --agent codex|claude|opencode|gemini|copilot|kilo --hookinstalls graph-first hook or plugin support for the agents that expose project hook APIs. Useswarmvault install status --agent <agent> [--hook]to inspect expected files without writing.swarmvault install --agent aiderinstallsCONVENTIONS.mdand wires.aider.conf.ymlto read it when that config is valid YAML.swarmvault install --agent antigravitywrites.agents/rules/swarmvault.mdand.agents/workflows/swarmvault.md; reinstall removes older fully managed.agent/files.swarmvault mcpexposes tools and resources for page search, page reads, source listing, graph stats, graph clustering refresh, community lookup, hyperedges, query, context-pack build/read/list, task start/update/finish/list/read/resume, compatibility memory tasks, vault doctor, retrieval status/rebuild/doctor, ingest, compile, and lint.
Defaults to preserve
- Keep raw source material immutable under
raw/. - Save useful answers unless the user explicitly wants ephemeral output.
- Prefer reviewable flows such as
compile --approve,review, andcandidatewhen a change should not activate silently. - Treat provider setup as part of serious vault operation. If only
heuristicis configured, say so clearly. - When a vault uses the
profileblock inswarmvault.config.json, respect it as the deterministic behavior layer.swarmvault.schema.mdstill defines the human intent layer.
GitHub Repository
Related Skills
executing-plans
DesignUse the executing-plans skill when you have a complete implementation plan to execute in controlled batches with review checkpoints. It loads and critically reviews the plan, then executes tasks in small batches (default 3 tasks) while reporting progress between each batch for architect review. This ensures systematic implementation with built-in quality control checkpoints.
requesting-code-review
DesignThis skill dispatches a code-reviewer subagent to analyze code changes against requirements before proceeding. It should be used after completing tasks, implementing major features, or before merging to main. The review helps catch issues early by comparing the current implementation with the original plan.
connect-mcp-server
DesignThis skill provides a comprehensive guide for developers to connect MCP servers to Claude Code using HTTP, stdio, or SSE transports. It covers installation, configuration, authentication, and security for integrating external services like GitHub, Notion, and custom APIs. Use it when setting up MCP integrations, configuring external tools, or working with Claude's Model Context Protocol.
web-cli-teleport
DesignThis skill helps developers choose between Claude Code Web and CLI interfaces based on task analysis, then enables seamless session teleportation between these environments. It optimizes workflow by managing session state and context when switching between web, CLI, or mobile. Use it for complex projects requiring different tools at various stages.
