Dump
unlistedby Omar Shahine
Dump URLs, podcasts, and text into a cross-linked knowledge base maintained by AI
Dump
An Obsidian plugin that turns dumped URLs, podcasts, and text into a cross-linked wiki maintained by an AI agent.
Based on Andrej Karpathy's LLM Wiki idea: instead of bookmarking and searching, have an AI maintain a living knowledge base that synthesizes everything you capture.
Philosophy
Bookmarking is a graveyard. You save articles, podcasts, and notes "for later" and never read them again. Search is barely better — you have to remember the right keywords years after the fact.
Dump flips it: every capture goes through an AI agent that reads the source, distills the key ideas, drops them into wiki pages, and cross-links them with everything else you've ever dumped. The wiki gets smarter every time you feed it. You ask questions of your own knowledge base and get answers grounded in your sources.
How it works
- You dump a URL, a podcast link, or some text.
- The plugin extracts the content (Readability for articles, Whisper for podcasts).
- An AI agent saves the raw source, creates or updates wiki pages, and cross-references them.
- The index and log are updated automatically.
Commands
| Command | Description |
|---|---|
| Dump URL | Open a modal to paste a URL or text |
| Dump clipboard | Grab clipboard content and ingest |
| Dump selection | Dump selected text from the active note |
| Query knowledge base | Search and synthesize answers from dumped content |
| Lint wiki | Audit for orphans, broken links, and contradictions |
| Process inbox | Manually process queued inbox files |
| Show status | Display KB stats (sources, pages, categories) |
Vault structure
Dump/
├── inbox/ # New captures, awaiting processing
├── raw/ # Immutable source captures (YYYY-MM-DD-slug.md)
│ └── assets/ # Images, screenshots
├── wiki/ # AI-maintained wiki pages (slug.md)
│ ├── index.md # Master index by category
│ └── log.md # Chronological operation log
└── outputs/ # Reports, query answers, lint results
Raw files are immutable. Wiki pages are living documents that grow as you add more sources. Every claim cites its source.
Install
Via BRAT (recommended for now)
- Install BRAT from Community Plugins
- In BRAT settings, click "Add Beta plugin"
- Enter:
omarshahine/obsidian-dump-llm-wiki - Enable the plugin in Community Plugins
Manual
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create
<vault>/.obsidian/plugins/dump-llm-wiki/ - Copy the files there
- Enable in Community Plugins
Setup
Pick one of two modes — they're not mutually exclusive, you can configure both and the plugin will fall back from CLI to API if needed.
CLI mode (recommended)
If you have Claude Code installed, the plugin will shell out to it for processing. This is the default and the most powerful option — Claude Code can use Read, Write, Edit, Glob, Grep, Bash, and WebFetch to maintain the wiki.
- Install Claude Code
- In Settings > Dump, set "CLI tool" to Claude
- Pick a model (Opus, Sonnet, or Haiku)
No API key required. The plugin auto-detects the CLI on macOS, including Homebrew and nvm install paths.
API mode
If you'd rather use the Anthropic or OpenAI API directly:
- Open Settings > Dump
- Pick Anthropic or OpenAI
- Enter your API key (stored per-provider in your OS keychain via SecretStorage, never synced)
- Click the refresh icon next to Model to load available models from the API
Optional: podcast transcription
To dump podcasts, add an OpenAI API key under "Transcription". Whisper or gpt-4o-transcribe will transcribe the audio before ingest.
Settings
| Setting | What it does |
|---|---|
| CLI tool | Claude Code is the primary processor when installed |
| CLI model | Opus, Sonnet, or Haiku — passed to Claude Code |
| Provider | Anthropic or OpenAI for API fallback |
| API key | Stored in OS keychain, never in data.json |
| Dump folder | Folder name within your vault (default: Dump) |
| Auto-lint interval | Disabled, daily, weekly, or monthly health checks |
| Max files per session | Safety cap to prevent runaway processing costs |
| Auto-process delay | Wait after Obsidian boot before processing the inbox |
| Whisper model | whisper-1 or gpt-4o-transcribe |
| Max tool iterations | Safety limit for the API agent loop |
Design decisions
| Decision | Why |
|---|---|
| Inbox/raw split | Captures land in inbox/ instantly, then move to raw/ after processing. Raw is immutable; the inbox is your queue. |
| CLI before API | Claude Code has more capabilities (Bash, WebFetch with extraction tools) and lower latency. API is the fallback. |
| Per-provider API keys | Stored in OS keychain via Obsidian's SecretStorage. Never synced, never in data.json. |
| Two API providers | Anthropic and OpenAI cover the best models. No bloat. |
| Session caps | Prevents one runaway dump from torching your API budget. |
| Desktop only | The CLI integration uses Node child_process, which isn't available on mobile. |
Development
git clone https://github.com/omarshahine/obsidian-dump-llm-wiki.git
cd obsidian-dump-llm-wiki
npm install
npm run dev # Watch mode
npm run build # Production build
Symlink into your vault for testing:
ln -s /path/to/obsidian-dump-llm-wiki /path/to/vault/.obsidian/plugins/dump-llm-wiki
Credits
Inspired by Andrej Karpathy's LLM Wiki concept.
License
MIT
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.