LLM Knowledge Bases
LLM wiki kit
First committed by rvk7895
Published in rvk7895/llm-knowledge-bases. Publisher page
35 GitHub stars
What it is
Claude Code plugin for building LLM-maintained Obsidian wikis from raw research — compile, query, lint, and evolve your personal knowledge base. Inspired by Karpathy's knowledge base workflow.
AutoGineer overview, from the brain’s own files
LLM Knowledge Bases is a plugin for Claude Code designed to automate the creation and maintenance of a personal knowledge base in Obsidian. By treating the LLM as a knowledge compiler, the system ingests raw materials—such as articles, papers, and transcripts—and organizes them into a structured, interlinked wiki. Users interact with the system by feeding raw data into a designated folder, while the agent handles the compilation, indexing, and health maintenance of the vault. It supports multiple query depths, ranging from quick index lookups to deep, multi-agent research pipelines, ensuring that the knowledge base evolves alongside the user's research interests.
How it works
Memory model: LLM wiki
AutoGineer overview, from the brain’s own files
The system operates by ingesting raw source documents from a raw folder. It then compiles these into an Obsidian vault containing summaries, backlinks, and indexes. Users can query the knowledge base at three levels of depth: quick, standard, or deep. The system also performs automated maintenance tasks like linting for broken links or orphans and provides tools for deep research, which involves generating outlines and deploying parallel agents to research specific topics. All outputs are saved to an output folder or integrated back into the wiki.
| Folder | Role | Files |
|---|---|---|
| .claude | agent-config | 1 |
| docs | docs | 2 |
| .claude-plugin | folder | 1 |
| plugins | folder | 12 |
Requirements
Works with: Claude Code, OpenCode
Set it up
This brain runs code automatically: 1 script. Review plugins/kb/setup.sh before opening the folder in Claude Code. No step below turns a hook on for you.
plugins/kb/setup.sh:sh plugins/kb/setup.sh
- Download the brain as a ZIP and unzip it where you keep your notes or project: https://mp-staging.autogineer.com/agent-brains/rvk7895/llm-knowledge-bases/download
Claude Code reads CLAUDE.md from this folder automatically.
cd llm-knowledge-bases && claude
AutoGineer scanned these files at commit 342686f.
- Not scanned by AutoGineerThe author’s README also describes installing it as a Claude Code plugin marketplace. Read its install section: AutoGineer did not scan that path. https://github.com/rvk7895/llm-knowledge-bases/blob/342686f4cdf0e969872601eabbcc10466da91431/README.md#installation
First committed by rvk7895. Published in rvk7895/llm-knowledge-bases. Licence: MIT License.
Usage
AutoGineer overview, from the brain’s own files
- Initialize a new knowledge base structure
- Compile raw research documents into an Obsidian wiki
- Query the knowledge base for information at varying depths
- Perform automated health checks on the wiki
- Execute deep research on specific topics using multi-agent pipelines
- “/kb compile”
- The agent processes all files in the raw/ directory and updates the Obsidian wiki with new summaries and backlinks.
- “/research-deep Artificial Intelligence trends”
- The agent generates a research outline and launches parallel agents to conduct deep research on each item in the outline.
- “/kb lint”
- The agent scans the wiki for broken links, orphans, and inconsistencies, reporting them for resolution.
Documentation by rvk7895
LLM Knowledge Bases
A Claude Code plugin that turns raw research material into an LLM-maintained Obsidian wiki -- inspired by Andrej Karpathy's description of using LLMs as knowledge compilers rather than just code manipulators.
You drop source material into raw/, run a single command, and Claude handles the rest: compiling interlinked wiki articles, maintaining indexes and backlinks, answering complex questions at multiple depth levels, and continuously improving the knowledge base over time.
The LLM owns the wiki. You rarely edit it manually -- just explore in Obsidian and keep feeding it raw data.
How It Works
Ingest -- Raw documents (articles, papers, repos, YouTube transcripts, images, datasets) go into
raw/Compile -- Claude builds a structured Obsidian vault with summaries, backlinks, concept articles, and auto-generated indexes
Query -- Three depth levels:
Quick -- Answers from wiki indexes and summaries alone
Standard -- Cross-references the full wiki, supplements with web search
Deep -- Multi-agent research pipeline with parallel web search agents
Output -- Markdown reports, Marp slides, matplotlib charts -- saved to
output/and optionally filed back into the wikiMaintain -- Automated health checks (broken links, orphans, inconsistencies) and suggestions for new articles and connections
Prerequisites
Claude Code (CLI), installed and authenticated
Obsidian plugins (Dataview, Obsidian Git, etc.) are installed automatically by the setup script during /kb-init.
Installation
In Claude Code, run:
/plugin marketplace add rvk7895/llm-knowledge-bases
/plugin install kb@llm-knowledge-basesAll skills are installed as a single plugin.
Quick Start
# Initialize a new knowledge base
/kb-init
# Add sources to raw/, then compile the wiki
/kb compile
# Query the knowledge base
/kb query
# Run a health check
/kb lint
# Deep multi-agent research on a topic
/research <topic>
/research-deepAvailable Skills
| Skill | Purpose |
|---|---|
kb-init | One-time setup: scaffolds directories, generates config, writes project files |
kb | Main skill with four workflows: compile, query, lint, evolve |
research | Generate a structured research outline for a topic |
research-deep | Launch parallel agents for deep research on each outline item |
research-add-fields | Add field definitions to an existing research outline |
research-add-items | Add research targets to an existing outline |
research-report | Compile deep research results into a markdown report |
Directory Structure (after /kb-init)
raw/ -- Raw source documents
wiki/ -- LLM-compiled Obsidian vault
output/ -- Query results, slides, charts, reports
kb.yaml -- Configuration
CLAUDE.md -- Project instructions for ClaudeX/Twitter Integration (Optional)
To ingest tweets, threads, and bookmarks from X, install Smaug:
npm install -g @steipete/bird
git clone https://github.com/alexknowshtml/smaug && cd smaug && npm install
npx smaug setup # configures X session cookiesOnce configured, paste any x.com link and the kb skill will fetch and compile it automatically. Without Smaug, you can still add X content by pasting tweet text directly or using Thread Reader App for threads.
Note: Smaug uses X session cookies for read-only access to your own data. This is not officially supported by X's TOS. Practical risk for personal use is very low, but be aware.
Attribution
Andrej Karpathy -- Original vision for LLM-maintained knowledge bases
Weizhena -- Deep Research skills adapted for the research pipeline
plugins/kb/skills/research/SKILL.md
user-invocable: true allowed-tools: Read, Write, Glob, WebSearch, Task, AskUserQuestion description: Conduct preliminary research on a target topic and generate a research outline. Used for academic research, benchmark research, technology selection, and similar scenarios.
Attribution: Originally authored by Weizhena. Included with attribution for use in the Deep query workflow.
Research Skill - Preliminary Research
Trigger Method
/research <topic>
Execution Flow
Step 1: Generate Initial Framework Using Model's Internal Knowledge
Based on the topic, use the model's existing knowledge to generate:
A list of main research objects/items in the field
A suggested framework of research fields
Output {step1_output} and use AskUserQuestion to confirm:
Does the items list need additions or removals?
Does the field framework meet the requirements?
Step 2: Web Search Supplement
Use AskUserQuestion to inquire about the time range (e.g., last 6 months, 2024 to present, no limit).
Parameter Collection:
{topic}: Research topic input by user{YYYY-MM-DD}: Current date{step1_output}: Complete output content generated in Step 1{time_range}: Time range specified by user
Hard Constraint: The following prompt must be strictly reproduced, only replacing variables in {xxx}, no rewriting of structure or wording allowed.
Launch 1 web-search-agent (background), Prompt Template:
prompt = f"""## Task
Research Topic: {topic}
Current Date: {YYYY-MM-DD}
Based on the following preliminary framework, supplement the latest items and recommended research fields.
## Existing Framework
{step1_output}
## Objectives
1. Verify if existing items miss important objects
2. Supplement items based on missing objects
3. Continue searching for {topic}-related items within {time_range} and supplement
4. Supplement new fields
## Output Requirements
Return structured results directly (do not write files):
### Supplemented Items
- item_name: Brief explanation (why should it be included)
...
### Recommended Additional Fields
- field_name: Field description (why this dimension is needed)
...
### Information Sources
- [Source 1](url1)
- [Source 2](url2)
"""One-shot Example (assuming research on AI Coding development history):
## Task
Research Topic: AI Coding Development History
Current Date: 2025-12-30
Based on the following preliminary framework, supplement the latest items and recommended research fields.
## Existing Framework
### Items List
1. GitHub Copilot: Developed by Microsoft/GitHub, first mainstream AI programming assistant
2. Cursor: AI-first IDE, based on VSCode
...
### Field Framework
- Basic Info: name, release_date, company
- Technical Features: underlying_model, context_window
...
## Objectives
1. Verify if existing items miss important objects
2. Supplement items based on missing objects
3. Continue searching for AI Coding Development History-related items within 2024 to present and supplement
4. Supplement new fields
## Output Requirements
Return structured results directly (do not write files):
### Supplemented Items
- item_name: Brief explanation (why should it be included)
...
### Recommended Additional Fields
- field_name: Field description (why this dimension is needed)
...
### Information Sources
- [Source 1](url1)
- [Source 2](url2)Step 3: Inquire About User's Existing Fields
Use AskUserQuestion to ask if the user has predefined field files, read and merge if available.
Step 4: Generate Outline (Separate Files)
Merge {step1_output}, {step2_output} and user's existing fields to generate two files:
outline.yaml (items + configuration):
topic: Research topic
items: List of research objects
execution:
batch_size: Number of parallel agents (requires AskUserQuestion confirmation)
items_per_agent: Number of items per agent for research (requires AskUserQuestion confirmation)
output_dir: Results output directory (default ./results)
fields.yaml (field definitions):
Field categories and definitions
Each field's name, description, detail_level
detail_level hierarchy: Minimal → Brief → Detailed
uncertain: List of uncertain fields (preserved fields, automatically filled in deep phase)
Step 5: Output and Confirmation
Create directory:
./{topic_slug}/Save:
outline.yamlandfields.yamlDisplay to user for confirmation
Output Path
{current_working_directory}/{topic_slug}/
├── outline.yaml # items list + execution configuration
└── fields.yaml # field definitionsFollow-up Commands
/research-add-items- Supplement items/research-add-fields- Supplement fields/research-deep- Start deep research
21 files
- .claude-plugin/marketplace.json
- .claude/settings.local.json
- ATTRIBUTION.md
- AUTOGINEER-RUNS.md
- CLAUDE.md
- LICENSE
- README.md
- docs/plans/2026-04-03-kb-skills-design.md
- docs/plans/2026-04-03-kb-skills-implementation.md
- plugins/kb/.claude-plugin/plugin.json
- plugins/kb/references/report-style-guide.md
- plugins/kb/setup.sh
- plugins/kb/skills/kb-init/SKILL.md
- plugins/kb/skills/kb-preferences/SKILL.md
- plugins/kb/skills/kb/SKILL.md
- plugins/kb/skills/research-add-fields/SKILL.md
- plugins/kb/skills/research-add-items/SKILL.md
- plugins/kb/skills/research-deep/SKILL.md
- plugins/kb/skills/research-report/SKILL.md
- plugins/kb/skills/research/SKILL.md
- plugins/kb/skills/research/validate_json.py
Advantages
- Automates the maintenance of interlinked wiki articles and indexes, reducing manual effort. evidence: README.md
- Supports multi-agent research pipelines for deep, parallel investigation of topics. evidence: README.md
Limitations
- Requires Claude Code CLI and Obsidian to function. evidence: README.md
- The LLM owns the wiki, and manual editing of articles outside of the provided workflows is discouraged. evidence: CLAUDE.md
Security
Risk level: Medium risk
This brain runs
Install scripts (1)
plugins/kb/setup.sh:sh plugins/kb/setup.sh· uses the network
Agent instructions that run or fetch something (44)
plugins/kb/skills/kb-init/SKILL.md:After confirming the vault path, run the bundled setup script via Bash tool:plugins/kb/skills/kb-init/SKILL.md:The script is idempotent — safe to re-run.plugins/kb/skills/kb-init/SKILL.md:python -c "import pptx" 2>/dev/null && echo "python-pptx: available" || echo "python-pptx: not installed (needed for slide extraction)"plugins/kb/skills/kb-init/SKILL.md:python -c "import pandas" 2>/dev/null && echo "pandas: available" || echo "pandas: not installed (needed for dataset analysis)"plugins/kb/skills/kb-init/SKILL.md:When the user sets up Smaug (during init or later), save the install path here.plugins/kb/skills/kb-preferences/SKILL.md:If missing, tell the user to run `kb-init` and stop.plugins/kb/skills/kb-preferences/SKILL.md:| Invocation | Mode | Action | |---|---|---| | `/kb-preferences` (bare) | interactive | Show current prefs, ask what to update | | `/kb-preferences init` | init | Re-run the 5 init questions, regenerate all fields from style-guide + user answers | | `/kb-preferences update <field>` | up …[+30 chars]plugins/kb/skills/kb-preferences/SKILL.md:re-ask matching question or accept free-text | | `/kb-preferences add-note "..."` | add-note | Append the quoted string as a new line/paragraph under `notes:` | | `/kb-preferences reflect` | reflect-now | Run the reflection step against the current conversation explicitly | | `/kb-pref …[+164 chars]plugins/kb/skills/kb-preferences/SKILL.md:If missing, tell user to run `/kb-preferences init` first and stop.plugins/kb/skills/kb-preferences/SKILL.md:Confirm loudly: "This will replace all 9 fields with factory defaults and re-run the 5 init questions.plugins/kb/skills/kb/SKILL.md:If missing, tell the user to run `kb-init` and stop.plugins/kb/skills/kb/SKILL.md:Run `/kb-preferences init` to customize."plugins/kb/skills/kb/SKILL.md:After a compile or query finishes writing its output, run a **lightweight reflection step** — only propose preference updates for **high-confidence signals**:plugins/kb/skills/kb/SKILL.md:The user can run `/kb-preferences reflect` manually if they want a forced pass.plugins/kb/skills/kb/SKILL.md:Run lightweight reflection at the end.plugins/kb/skills/kb/SKILL.md:**Detection heuristic:** Run this check for each file:plugins/kb/skills/kb/SKILL.md:Please provide a transcript, or install: pip install openai-whisper"plugins/kb/skills/kb/SKILL.md:Try: `yt-dlp --write-auto-sub --sub-lang en --skip-download --output "/tmp/%(id)s" "<url>"` to get subtitles· uses the networkplugins/kb/skills/kb/SKILL.md:Try extracting with python-pptx: `python -c "from pptx import Presentation;plugins/kb/skills/kb/SKILL.md:For Parquet: `python -c "import pandas as pd;plugins/kb/skills/kb/SKILL.md:Run lightweight reflection at the end (after the answer is delivered;plugins/kb/skills/kb/SKILL.md:Run the appropriate pipeline.plugins/kb/skills/kb/SKILL.md:Run the graph health script if available:plugins/kb/skills/kb/SKILL.md:python plugins/kb/scripts/graph_health.py "<vault_path>" --json --fix-suggestionsplugins/kb/skills/kb/SKILL.md:Run the evaluation script if available:plugins/kb/skills/kb/SKILL.md:python experiments/evaluate.py "<vault_path>" --jsonplugins/kb/skills/kb/SKILL.md:If user approves, execute the improvementsplugins/kb/skills/kb/SKILL.md:Re-run evaluation to measure improvementplugins/kb/skills/kb/SKILL.md:Run: `npx smaug fetch <tweet_id>` then `npx smaug process`plugins/kb/skills/kb/SKILL.md:**Install Smaug** (recommended) — `git clone https://github.com/alexknowshtml/smaug && cd smaug && npm install`, then `npx smaug setup` to configure X session cookies (`auth_token` + `ct0` from browser DevTools → Cookies → x.com).· uses the networkplugins/kb/skills/kb/SKILL.md:After setup, **save the install path to `kb.yaml`** under `integrations.smaug.path`.plugins/kb/skills/kb/SKILL.md:Try to fetch transcript: `yt-dlp --write-auto-sub --sub-lang en --skip-download --output "/tmp/%(id)s" "<url>" 2>&1`· uses the networkplugins/kb/skills/kb/SKILL.md:If yt-dlp not installed: try `pip install yt-dlp` then retryplugins/kb/skills/kb/SKILL.md:Extract video metadata: `yt-dlp --dump-json "<url>" 2>/dev/null | python -c "import sys,json;· uses the networkplugins/kb/skills/kb/SKILL.md:On the next `/kb compile` run (for compile-time context searches)plugins/kb/skills/kb/SKILL.md:Forgetting to dispatch the auto-evolve subagent after a query -- it must always run, even if it usually exits silentlyplugins/kb/skills/research-add-items/SKILL.md:Execute simultaneously:plugins/kb/skills/research-deep/SKILL.md:Execute in batches by batch_size (need user approval to proceed to next batch after completing one)plugins/kb/skills/research-deep/SKILL.md:After completing JSON output, run validation script to ensure complete field coverage:plugins/kb/skills/research-deep/SKILL.md:python ~/.claude/skills/research/validate_json.py -f {fields_path} -j {output_path}plugins/kb/skills/research-deep/SKILL.md:After completing JSON output, run validation script to ensure complete field coverage:plugins/kb/skills/research-deep/SKILL.md:python ~/.claude/skills/research/validate_json.py -f /home/weizhena/AIcoding/aicoding-history/fields.yaml -j /home/weizhena/AIcoding/aicoding-history/results/GitHub_Copilot.jsonplugins/kb/skills/research-report/SKILL.md:**If `kb.yaml` itself is missing:** tell the user to run `kb-init` and stop.plugins/kb/skills/research-report/SKILL.md:Run `python {topic}/generate_report.py`
- Medium risk: runs-install-script-network-variable-host (plugins/kb/setup.sh)
- Medium risk: network-variable-host (plugins/kb/setup.sh:81)
- Medium risk: runs-instruction-instruction-network (plugins/kb/skills/kb/SKILL.md:206)
- Medium risk: runs-instruction-instruction-network (plugins/kb/skills/kb/SKILL.md:571)
- Medium risk: runs-instruction-instruction-network (plugins/kb/skills/kb/SKILL.md:596)
- Medium risk: runs-instruction-instruction-network (plugins/kb/skills/kb/SKILL.md:600)
- Low risk: network-instructions (.claude/settings.local.json:14)
- Low risk: scripts-present (plugins/kb/setup.sh)
- Low risk: network-instructions (plugins/kb/skills/kb/SKILL.md:202)
- Low risk: autonomy-phrase (plugins/kb/skills/kb/SKILL.md:402)
Attribution and licence
- First committed by
rvk7895
- Publisher
- Ritvik Aryan Kalra (Community)
- Source
- rvk7895/llm-knowledge-bases · commit 342686f
- Licence
- MIT License (files served here)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Contributors
- ritvik-sarvam, rvk7895
AutoGineer is not affiliated with or endorsed by rvk7895.
Download
The ZIP holds the files AutoGineer serves, with ATTRIBUTION.md and the licence. Download llm-knowledge-bases.zip