A personal knowledge architect that runs entirely locally. Ingest notes and articles, build a concept graph across sessions, and synthesize what you've captured into coherent understanding.
Not a note-taking app. Not RAG. A knowledge architect that forces you to organize what you learn and tells you what you still don't know.
Load the built plugin folder in LM Studio.
| Field | Default | Description |
|---|---|---|
| Data Path | ~/knowledge-data/ | SQLite database location |
Notes are raw material — text from any source. Each note has a title, content, source, and tags.
Concepts are the organizing nodes — named themes, frameworks, people, or questions you return to. A concept grows as you link more notes to it.
Synthesis is the output — when you ask "what do I know about X?", the plugin loads all notes linked to that concept and produces a structured synthesis: core thesis, recurring themes, contradictions, gaps.
| Tool | Kind | What it does |
|---|---|---|
ingest_note | Store-write | Save a note with title, content, source, and tags |
ingest_url | Effect + Store-write | Fetch a URL, extract text, save as a note |
update_note | Store-write | Update fields on an existing note by ID |
delete_note | Store-write | Permanently delete a note and its concept links |
get_note | Store-read | Get full note content with linked concepts |
list_notes | Store-read | List notes filtered by tag or date |
search_notes | Store-read | Full-text search across all notes |
| Tool | Kind | What it does |
|---|---|---|
upsert_concept | Store-write | Create or update a concept by name |
link_note_to_concept | Store-write | Associate a note with a concept |
unlink_note_from_concept | Store-write | Remove a note-concept association |
get_concept | Store-read | Get a concept with all its linked notes |
list_concepts | Store-read | List all concepts sorted by note count |
| Tool | Kind | What it does |
|---|---|---|
generate_synthesis | Scaffold | Load notes on a concept or topic and return a synthesis prompt payload |
knowledge_review | Store-read | Surface recent notes, orphans, empty concepts, and next steps |
Saving an idea:
"Save this: the key insight from Thinking Fast and Slow is that System 2 is lazy — it defaults to System 1 whenever possible"
ingest_note(title="System 2 laziness — Kahneman", content="...", source="Thinking Fast and Slow", tags=["cognition", "decision-making"])
Ingesting an article:
"Ingest this article: https://example.com/article"
ingest_url(url="...", tags=["AI", "research"]) → saves page text as a note
Organizing notes:
"I have 5 notes on cognitive biases. Create a concept and link them."
upsert_concept(name="Cognitive Biases", description="Systematic errors in human judgment") → link_note_to_concept × 5
Synthesizing:
"What do I know about cognitive biases?"
get_concept(name="Cognitive Biases") → generate_synthesis(conceptName="Cognitive Biases", focusQuestion="What patterns emerge across these notes?") → structured synthesis
Weekly review:
"What's been added this week?"
knowledge_review(daysSince=7) → shows recent notes, orphans, and what to link or synthesize
All data is local. Nothing leaves your machine.
cd knowledge-plugin
npm install
npm run build
Notes ──── linked to ────► Concepts
│ │
│ (many-to-many) │
└──────────────────────────── ┘
~/knowledge-data/
knowledge.db ← SQLite: notes, concepts, note_concepts, notes_fts (full-text search)