Skip to content

Apexlify/vaultweaver

Repository files navigation

Vaultweaver — LLM Knowledge Base skill for Claude Code. Drop files, get a knowledge graph. Obsidian compatible.

MIT License  Claude Code Skill  Obsidian Knowledge Base Plugin

Latest Release  GitHub Stars  Issues


Your research disappears into chat sessions. Vaultweaver makes it compound.

Install  •   Quick Start  •   How It Works  •   Commands  •   Why Not RAG?


The Idea

Most LLM token spend goes into throwaway chat responses -- you ask, get an answer, close the tab. Nothing persists.

Vaultweaver flips this. It compiles raw sources into an interconnected wiki that grows richer with every source you add. The wiki becomes a persistent, compounding artifact -- not a disposable conversation.


What Makes It Different

Without Vaultweaver

  • Chat answers vanish after the session
  • 20 papers = 20 isolated summaries
  • Re-explain context every conversation
  • No cross-references between ideas
  • Knowledge doesn't compound

With Vaultweaver

  • Knowledge persists as markdown files
  • 20 papers = interconnected knowledge graph
  • Wiki provides full context automatically
  • [[wiki-links]] connect everything
  • Every source makes the whole wiki richer

Install

git clone https://github.com/Apexlify/vaultweaver.git
cd vaultweaver
bash install.sh

That's it. Start a new Claude Code session and you have /wiki.

 Manual install
cp -r . ~/.claude/skills/vaultweaver
cp SKILL.md ~/.claude/commands/wiki.md

Quick Start

/wiki init "My Research"

Drop files into raw/ -- papers, articles, notes, screenshots, anything.

/wiki ingest
/wiki compile
/wiki query "How does X relate to Y?"

Or skip the commands -- just talk:

"I dropped 3 papers in raw, process them"
"What do we know about attention scaling?"
"Check the wiki for issues"

Vaultweaver triggers automatically.


How It Works

flowchart LR
    subgraph YOU
        A[Drop files\nin raw/]
        B[Ask\nquestions]
        C[Say\n'file it']
    end

    subgraph CLAUDE
        D[Ingest\n10-15 pages\nper source]
        E[Query\nwith citations]
        F[Compound\ninto wiki]
    end

    subgraph WIKI["wiki/"]
        G[sources/]
        H[concepts/]
        I[entities/]
        J[queries/]
        K[index.md]
    end

    A --> D
    D --> G & H & I & K
    B --> E
    E --> B
    C --> F
    F --> J & K

    style YOU fill:#1a1a2e,stroke:#e94560,color:#e0e0e0
    style CLAUDE fill:#1a1a2e,stroke:#53a8b6,color:#e0e0e0
    style WIKI fill:#1a1a2e,stroke:#7c3aed,color:#e0e0e0
Loading

The Three Layers

Layer What Owner
raw/ Source documents -- papers, articles, notes, images You (immutable)
wiki/ Compiled knowledge -- summaries, concepts, entities, queries Claude (writes everything)
SKILL.md Schema -- conventions, triggers, workflows Vaultweaver

Commands

Command Description LLM
/wiki init "Topic" Create wiki structure --
/wiki ingest Process raw/ sources -- 10-15 pages per source Yes
/wiki compile Build missing concept + entity articles Yes
/wiki query "Q" Answer from wiki with [[citations]] Yes
/wiki lint Find broken links, gaps, contradictions Yes
/wiki search "term" BM25 ranked search (instant, local) --
/wiki status File counts + recent activity --
/wiki serve Web search UI on localhost:5000 --

Auto-Pilot

Two hooks run automatically -- zero commands needed:

sequenceDiagram
    participant U as You
    participant C as Claude Code
    participant W as Wiki

    Note over C: Session Start
    C->>W: check-wiki-drift.sh
    W-->>C: "2 unprocessed files in raw/"
    C-->>U: Drift alert

    Note over U: During session...
    U->>W: Drop new files in raw/
    U->>C: Ask questions, do work

    Note over C: Session End
    C->>W: Auto-ingest new raw/ files
    C->>W: Update concepts, entities, index
    W-->>C: Wiki updated silently
Loading

The Ingest Pipeline

Each source goes through a 7-step pipeline, touching 10-15 wiki pages:

flowchart TD
    A[raw/paper.md] --> B[READ\nExtract claims, entities,\nconcepts, data points]
    B --> C[WRITE SOURCE\nwiki/sources/paper.md]
    C --> D[CREATE CONCEPTS\nwiki/concepts/*.md]
    C --> E[CREATE ENTITIES\nwiki/entities/*.md]
    C --> F[CROSS-REFERENCE\nUpdate existing pages]
    C --> G[UPDATE INDEX\nwiki/index.md]
    C --> H[APPEND LOG\nwiki/log.md]

    style A fill:#e94560,stroke:#e94560,color:#fff
    style B fill:#1a1a2e,stroke:#53a8b6,color:#e0e0e0
    style C fill:#1a1a2e,stroke:#7c3aed,color:#e0e0e0
    style D fill:#1a1a2e,stroke:#53a8b6,color:#e0e0e0
    style E fill:#1a1a2e,stroke:#53a8b6,color:#e0e0e0
    style F fill:#1a1a2e,stroke:#f59e0b,color:#e0e0e0
    style G fill:#1a1a2e,stroke:#10b981,color:#e0e0e0
    style H fill:#1a1a2e,stroke:#10b981,color:#e0e0e0
Loading

Why 10-15 pages? A paper mentions dozens of concepts. If you only write a summary, you get an isolated note. Create concept pages, entity pages, and cross-references, and you get a knowledge graph where every future source plugs into existing connections. Your 20th paper is 10x more valuable than your 1st.


Querying

User: /wiki query "What are the tradeoffs between
       exact and approximate attention?"

Claude: Based on [[concepts/flash-attention]],
        [[concepts/linformer]], and [[concepts/performer]]:

        | Method          | Exact? | Complexity | Memory |
        |-----------------|--------|------------|--------|
        | Full attention  | Yes    | O(n^2)     | O(n^2) |
        | Flash Attention | Yes    | O(n^2)     | O(n)   |
        | Linformer       | No     | O(n)       | O(n)   |
        | Performer       | No     | O(n)       | O(n)   |

        Want me to file this into the wiki?

User: yes

Claude: --> wiki/queries/exact-vs-approximate-attention.md

Filed answers compound. Next time you query about attention, this synthesis is already part of the wiki.


Health Checks

/wiki lint runs seven checks:

CheckWhat it findsAuto-fix?
ContradictionsConflicting claims across pagesReports for judgment
Stale claimsSuperseded by newer sourcesPartial
Orphan pagesNo inbound [[links]]Adds cross-refs
Missing conceptsMentioned often, no articleCreates stubs
Broken links[[links]] to non-existent pagesCreates stubs
Data gapsPartially covered topicsSuggests sources
Thin pagesToo little contentPartial

Lint tells you what to research next. It turns the wiki from a static collection into a research roadmap.

 Link normalization rules

All of these resolve to the same page:

Input Resolves to
[[gpt-series]] gpt-series.md
[[GPT_series]] gpt-series.md
[[GPT Series]] gpt-series.md
[[concepts/gpt-series]] gpt-series.md
[[gpt-series|GPT Family]] gpt-series.md

BM25 Search

Instant local search -- no LLM, no API calls:

python search.py wiki/ "attention mechanism"       # CLI search
python search.py wiki/ --json "transformer"        # JSON output
python search.py wiki/ --serve                     # Web UI
python search.py wiki/ --stats                     # Index stats

Web UI at localhost:5000 -- dark theme, score badges, click-through to pages.


Why Not RAG?

RAGVaultweaver
StructureFlat chunks in a vector DBInterconnected [[wiki-links]] graph
Cross-refsNone -- chunks are isolatedEvery page links to related pages
ContradictionsHidden (chunks conflict silently)Explicitly noted in articles
CompoundingEach query starts from scratchAnswers filed back improve future queries
BrowsabilityNeed a special UIOpen in Obsidian or any editor
InfrastructureVector DB + embeddingsPlain markdown files
Best for1K-1M documents10-500 sources (personal research)

RAG retrieves. Vaultweaver compiles.

Wiki Structure

my-project/
|
|-- raw/                         You own this (immutable)
|   |-- paper-on-transformers.md
|   |-- blog-post-on-bert.md
|   +-- architecture-diagram.png
|
|-- wiki/                        Claude owns this
|   |-- index.md                 Categorized page catalog
|   |-- log.md                   Parseable activity log
|   |-- overview.md              High-level synthesis
|   |-- schema.md                Wiki conventions
|   |-- sources/                 One summary per raw file
|   |-- concepts/                Encyclopedic articles
|   |-- entities/                People, orgs, tools
|   +-- queries/                 Filed Q&A
|
+-- search.py                    BM25 search engine

Obsidian Integration

Open wiki/ in Obsidian for:

Graph View -- visual knowledge map showing all concepts and their [[connections]]

Backlinks -- every page shows what links to it

Live Reload -- watch the wiki grow as Claude writes pages

Dataview -- query YAML frontmatter across all pages

Every page has structured frontmatter:

---
title: "Self-Attention"
type: concept
tags: [attention, mechanism, transformer]
created: 2026-04-07
sources: [raw/transformers.md, raw/bert-paper.md]
---

Page Conventions

Element Convention
Wikilinks [[hyphenated-lowercase]] -- link liberally
First paragraph 1-2 sentence summary of the page
Citations According to [[sources/paper-name]]...
Contradictions Always noted explicitly, never silently resolved
Sources section Every concept/entity page ends with ## Sources
Log entries ## [YYYY-MM-DD] operation | title -- parseable with grep

Repo Structure

vaultweaver/
|-- SKILL.md               The brain: triggers, decision tree, operations
|-- hooks.json             Auto-pilot: Stop + SessionStart hooks
|-- settings.json          Registry metadata: name, version, tags
|-- scripts/
|   |-- check-wiki-drift.sh   Detects unprocessed raw/ files
|   +-- search.py              BM25 engine + Flask web UI
|-- references/
|   +-- operations.md          Detailed 10-step workflows
|-- assets/
|   +-- banner.svg             README header graphic
|-- install.sh             One-command install
|-- uninstall.sh           Clean removal
|-- LICENSE                MIT
+-- README.md              You are here

Uninstall

bash uninstall.sh

Removes the skill. Your wiki data is never touched.


Credits


Built by Apexlify


Claude Code

The AI backbone powering
wiki compilation
Obsidian

The perfect viewer for
interconnected markdown
Community

The open-source community
that set the standard



If Vaultweaver is useful, give it a star.


Built with Claude Code. Viewed in Obsidian. Knowledge that compounds.


About

Drop files. Get a knowledge graph. No database required. Claude Code skill that compiles raw sources into interconnected Obsidian-compatible markdown wikis with auto-ingest, concept extraction, BM25 search, and drift detection.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors