swarmvault
Use SwarmVault when the user needs a local-first knowledge vault that writes durable markdown, graph, search, dashboard, review, and MCP artifacts to disk from books, notes, transcripts, exports, datasets, slide decks, files, URLs, code, and recurring source workflows.
install
source · Clone the upstream repo
git clone https://github.com/swarmclawai/swarmvault
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/swarmclawai/swarmvault "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/swarmvault" ~/.claude/skills/swarmclawai-swarmvault-swarmvault && rm -rf "$T"
manifest:
skills/swarmvault/SKILL.mdsource content
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.
- If the vault does not exist yet, run
.swarmvault init - Use
when the user wants the fastest zero-config walkthrough before pointing SwarmVault at their own sources.swarmvault demo --no-serve - Use
when the user wants the fastest scratch pass over a local repo or docs tree without manually stepping through init + ingest + compile first.swarmvault scan <directory> --no-serve - Read
before compile or query work. It is the vault's operating contract.swarmvault.schema.md - If
exists, use it before broad repo search.wiki/graph/report.md
Core loop
- Initialize a vault with
when needed.swarmvault init - Update
before a serious compile. Use it for naming rules, categories, grounding, freshness expectations, and exclusions.swarmvault.schema.md - Use
when the input is a recurring local file, local directory, public GitHub repo root, or docs hub that should stay registered.swarmvault source add <input> - Ingest one-off inputs with
, or ingest a whole repo tree withswarmvault ingest <path-or-url>
. Audio files useswarmvault ingest <directory>
when configured, and supported YouTube URLs go through direct transcript capture instead of generic URL ingest.tasks.audioProvider - Use
,swarmvault ingest --guide
,swarmvault source add --guide
,swarmvault source reload --guide
, orswarmvault source guide <id>
when the human should integrate one source at a time before canonical pages change. Setswarmvault source session <id>
inprofile.guidedIngestDefault: true
to make guided mode the default; useswarmvault.config.json
to override. Profiles using--no-guide
stage approval-queued canonical edits;guidedSessionMode: "canonical_review"
profiles keep exploratory synthesis ininsights_only
. Usewiki/insights/
only for the lighter review-only path.--review - Use
for capture-style batches, thenswarmvault inbox import
when the workflow should stay automated. Addswarmvault watch --lint --repo
when the refresh should stay AST-only and defer non-code semantic re-analysis to a later--code-only
. On tracked repos, code-only changes take that faster compile path automatically. Installcompile
when git checkouts and commits should trigger the same repo-aware code-only refresh automatically.swarmvault hook install - Compile with
, useswarmvault compile
when the generated wiki must stay inside a bounded context budget, or usecompile --max-tokens <n>
when changes should go through the local review queue first.compile --approve - Resolve staged work with
andswarmvault review list|show|accept|reject
.swarmvault candidate list|promote|archive - Ask questions with
. It saves durable answers intoswarmvault query "<question>"
by default; addwiki/outputs/
only for ephemeral checks. When an embedding provider is configured, query can merge semantic page matches into local search;--no-save
lets the currentsearch.rerank: true
rerank the merged top hits before answering.queryProvider - Use
for save-first multi-step research loops, orswarmvault explore "<question>" --steps <n>
when the artifact should be presentation-oriented.--format report|slides|chart|image - Run
whenever the schema changed, artifacts look stale, or compile/query results drift. Setswarmvault lint
inprofile.deepLintDefault: true
when the advisory deep-lint pass should be the default, and useswarmvault.config.json
when you need a structural-only run. Add--no-deep
only when deep lint is enabled and a--web
adapter is configured; web evidence is scoped to deep lint and does not change compile or query behavior.webSearch.tasks.deepLintProvider - Use
when another agent or tool should browse, search, and query the vault through MCP.swarmvault mcp - Use
when the user wants reverse-import impact analysis,swarmvault graph blast <target>
when the live workspace or bookmarklet clipper will help,swarmvault graph serve
when they need a graph-level change summary against the last committed baseline, orswarmvault diff
/swarmvault graph export --html <output>
when sharing will help.graph export --report <output>
also supportsgraph export
,--html-standalone
,--json
, and--obsidian
for lighter or Obsidian-native sharing.--canvas
Working rules
- Prefer changing the schema before re-running compile when organization or grounding is wrong.
- Treat
andwiki/
as first-class outputs. Inspect them instead of trusting a single chat answer.state/ - Prefer
,wiki/graph/report.md
, and saved wiki pages over ad hoc broad search when they already exist.state/graph.json - Use
for recurring files, directories, public GitHub repo roots, and docs hubs. Usesource add
andingest
for deliberate one-off inputs.add - When the vault lives in a git repo,
can commitingest|compile|query --commit
andwiki/
changes immediately after the run.state/ - 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:
then setollama pull gemma4
toproviders.llm
and point{ type: "ollama", model: "gemma4" }
,tasks.compileProvider
, andtasks.queryProvider
at it.tasks.lintProvider - Audio ingest needs
to resolve to a provider that exposestasks.audioProvider
capability. For a fully local setup, runaudio
— installs theswarmvault provider setup --local-whisper --apply
provider, downloads a whisper.cpp ggml model intolocal-whisper
, and points~/.swarmvault/models/
at it. YouTube transcript ingest does not need a provider. Settasks.audioProvider
when the user wants to pin community clustering instead of using the adaptive default.graph.communityResolution - 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
: vault-specific compile and query rules.swarmvault.schema.md
andraw/sources/
: canonical source storage.raw/assets/
: generated pages plus saved outputs.wiki/
: saved onboarding briefs for managed sources.wiki/outputs/source-briefs/
: resumable guided-session anchors plus question/answer history for one-source-at-a-time integration.wiki/outputs/source-sessions/
: staged source-scoped review pages.wiki/outputs/source-reviews/
: staged source-integration guides for one-source-at-a-time workflows.wiki/outputs/source-guides/
: recent sources, reading log, timeline, source sessions, source guides, research map, contradiction, and open-question dashboards.wiki/dashboards/
: module pages for ingested JavaScript, JSX, TypeScript (includingwiki/code/
/.mts
), TSX, Bash/shell script (with shebang-based detection for extensionless scripts), Python, Go, Rust, Java, Kotlin, Scala, Dart, Lua, Zig, C#, C, C++ (including.cts
/.c
/.cc
/.cpp
and.cxx
/.h
/.hh
/.hpp
), PHP, Ruby, PowerShell (.hxx
/.ps1
/.psm1
), Elixir (.psd1
/.ex
), OCaml (.exs
/.ml
), Objective-C (.mli
/.m
), ReScript (.mm
/.res
), Solidity (.resi
), Vue single-file components (.sol
), HTML (.vue
/.html
), and CSS sources..htm
: extracted markdown and JSON sidecars for PDF, the full Word family (state/extracts/
/.docx
/.docm
/.dotx
), RTF (.dotm
), OpenDocument (ODT/ODP/ODS), EPUB, CSV/TSV, the full Excel family (.rtf
/.xlsx
/.xlsm
/.xlsb
/.xls
/.xltx
), the full PowerPoint family (.xltm
/.pptx
/.pptm
/.potx
), Jupyter notebooks (.potm
), BibTeX (.ipynb
), Org-mode (.bib
), AsciiDoc (.org
/.adoc
), transcripts, Slack exports, email, calendar, audio transcripts, YouTube transcript captures, and image sources (.asciidoc
/.png
/.jpg
/.jpeg
/.gif
/.webp
/.bmp
/.tif
/.tiff
/.svg
/.ico
/.heic
/.heif
/.avif
), 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 (.jxl
,package.json
,Cargo.toml
,go.mod
,LICENSE
,.gitignore
,Dockerfile
, and similar plaintext files).Makefile
: repo-aware code aliases and local import resolution data.state/code-index.json
: project rollups over canonical pages.wiki/projects/
: staged concept and entity pages awaiting promotion.wiki/candidates/
: compiled graph.state/graph.json
: local search index.state/search.sqlite
andstate/sources.json
: managed-source registry entries plus working sync state.state/sources/<id>/
: staged review bundles fromstate/approvals/
.compile --approve
: canonical session artifacts for compile, query, explore, lint, watch, review, and candidate actions.state/sessions/
: watch-mode run log.state/jobs.ndjson
Agent integration
installs agent-specific rules into the current project.swarmvault install --agent codex|claude|cursor|goose|pi|gemini|opencode|aider|copilot|trae|claw|droid|kiro|hermes|antigravity|vscode
installs graph-first hook or plugin support for the agents that expose project hook APIs.swarmvault install --agent claude|opencode|gemini|copilot --hook
installsswarmvault install --agent aider
and wiresCONVENTIONS.md
to read it when that config is valid YAML..aider.conf.yml
exposes tools and resources for page search, page reads, source listing, query, ingest, compile, and lint.swarmvault mcp
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
, andreview
when a change should not activate silently.candidate - Treat provider setup as part of serious vault operation. If only
is configured, say so clearly.heuristic - When a vault uses the
block inprofile
, respect it as the deterministic behavior layer.swarmvault.config.json
still defines the human intent layer.swarmvault.schema.md