wenlan-mcp 0.19.1 → 0.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +156 -257
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,13 +1,14 @@
1
1
  <p align="center">
2
2
  <picture>
3
3
  <source media="(max-width: 600px)" srcset="./docs/assets/readme-banner-mobile.png">
4
- <img src="./docs/assets/readme-banner.png" alt="Wenlan: A living personal wiki. AI organizes. You stay in control." width="100%">
4
+ <img src="./docs/assets/readme-banner.png" alt="Wenlan: A living personal wiki" width="100%">
5
5
  </picture>
6
6
  </p>
7
7
 
8
- Wenlan turns your documents, notes, and AI conversations into editable pages with links to their sources, so you and your AI tools can keep building on them.
9
-
10
- As sources change, you can ask AI to update the pages or enable background updates. If you’ve edited a page, Wenlan proposes revisions for you to review instead of automatically overwriting your work.
8
+ <p align="center">
9
+ Wenlan turns your scattered documents, AI chats, and coding sessions into one local wiki with citations:<br>
10
+ a source of truth for you and your AI tools that keeps up as they change.
11
+ </p>
11
12
 
12
13
  <p align="center">
13
14
  English | <a href="./README.zh-Hans.md">简体中文</a> | <a href="./README.zh-Hant.md">繁體中文</a> | <a href="./README.es-ES.md">Español</a>
@@ -15,293 +16,233 @@ As sources change, you can ask AI to update the pages or enable background updat
15
16
 
16
17
  <p align="center">
17
18
  <a href="https://github.com/wenlan-app/wenlan/actions/workflows/ci.yml?query=branch%3Amain"><img alt="CI" src="https://github.com/wenlan-app/wenlan/actions/workflows/ci.yml/badge.svg?branch=main&event=push"></a>
18
- <a href="https://github.com/wenlan-app/wenlan/releases/latest"><img alt="Latest release" src="https://img.shields.io/github/v/release/wenlan-app/wenlan?sort=semver&label=release"></a>
19
+ <a href="https://github.com/wenlan-app/wenlan/releases/latest"><img alt="Latest release" src="https://img.shields.io/github/v/release/wenlan-app/wenlan?label=release"></a>
19
20
  <a href="#license"><img alt="License: Apache-2.0 and AGPL-3.0" src="https://img.shields.io/badge/license-Apache--2.0%20%2B%20AGPL--3.0-blue.svg"></a>
20
21
  </p>
21
22
 
22
23
  <p align="center">
23
24
  <a href="#start-in-30-seconds">Get&nbsp;started</a> ·
24
- <a href="#what-does-wenlan-build">What&nbsp;is&nbsp;this?</a> ·
25
- <a href="#what-can-it-do">Capabilities</a> ·
26
- <a href="#how-does-it-work">Daily&nbsp;workflow</a> ·
27
- <a href="#evaluation">Evaluation</a> ·
28
- <a href="#learn-more">Learn&nbsp;more</a>
25
+ <a href="#what-can-i-bring-in">Capabilities</a> ·
26
+ <a href="#learn-more">Docs</a> ·
27
+ <a href="https://discord.gg/nmzVTTU3HG">Discord</a>
29
28
  </p>
30
29
 
31
- https://github.com/user-attachments/assets/35f06749-00e5-484d-a9f4-5e462de8d11e
30
+ <!-- R113 walkthrough: approved 0.5-second cover; 1080p; original video/audio and masters retained. -->
32
31
 
33
- <p align="center">
34
- <sub>The opening frame is a composed preview, not a native three-pane view. The rest shows the app in use, including pages and source citations.</sub>
35
- </p>
32
+ https://github.com/user-attachments/assets/5e661389-d7ea-4a36-a645-2b1ec2a92d32
36
33
 
37
- <a id="quickstart"></a>
38
- <a id="start-in-30-seconds"></a>
34
+ <p>Cover: localized composite of App views with demo data; the graph is illustrative, not a native three-column layout.</p>
39
35
 
40
- ## Get started
36
+ <a id="why-wenlan"></a>
41
37
 
42
- <a id="start-with-the-app"></a>
43
- <a id="open-the-wiki"></a>
44
- <a id="desktop-app"></a>
38
+ <br>
45
39
 
46
- ### 1. Download and open Wenlan
40
+ ## Why Wenlan
47
41
 
48
- [Download the app](https://github.com/wenlan-app/wenlan/releases/latest), then open it:
42
+ I started Wenlan out of anxiety about my own knowledge: notes, documents, and AI chats scattered everywhere, always changing. Keeping an Obsidian vault from rotting within three months took plugins, a workflow, and constant upkeep, and LLM-wiki setups weren't much easier day to day. I wanted an AI-native knowledge base app that stays useful without the hassle.
49
43
 
50
- - **macOS (Apple Silicon):** open the `.dmg` and drag Wenlan to Applications. The app is signed and notarized.
51
- - **Windows x64:** run the `-setup.exe`. It is not signed yet. If SmartScreen warns you, confirm you downloaded it from the official Releases page before choosing "More info" → "Run anyway".
52
- - **Linux:** no desktop build yet; follow the [setup guide](docs/setup-with-ai.md#install-the-runtime) to use Wenlan with your AI tools without the app.
53
-
54
- First launch downloads a model for local search, so keep an internet connection until setup finishes. [Download and privacy details](docs/PRIVACY.md#when-wenlan-reaches-the-network).
44
+ - **Everything in one place:** Documents, Markdown files, Obsidian vaults, web links, and exported AI chats come into one wiki.
45
+ - **One wiki for all your AI tools:** Claude Code, Codex, Cursor, and other MCP clients work from the same pages.
46
+ - **Built in, not bolted on:** Saving, organizing, citing, and updating pages live in one app, with no maze of plugins to wire up.
55
47
 
48
+ <a id="quickstart"></a>
49
+ <a id="start-in-30-seconds"></a>
50
+ <a id="start-with-the-app"></a>
51
+ <a id="open-the-wiki"></a>
52
+ <a id="desktop-app"></a>
56
53
  <a id="claude-code-in-30-seconds"></a>
57
-
58
54
  <a id="codex-plugin"></a>
59
-
60
55
  <a id="mcp-setup"></a>
61
56
  <a id="mcp-clients"></a>
62
57
 
63
- ### 2. Start with your own note
64
-
65
- Choose **Open notes** to enter Wenlan, then create a page of your own. The welcome screen also offers a sample to explore first. You can start writing without importing material, connecting an AI tool, or setting up an AI model.
66
-
67
- ### 3. Bring in sources when you want
68
-
69
- You can [import notes or ChatGPT / Claude conversation exports](#what-can-i-bring-in) whenever you are ready. Import is optional; you can begin with a page of your own.
58
+ <br>
70
59
 
71
- ### 4. Connect AI tools when you want AI help
60
+ ## Get started
72
61
 
73
- Connect Claude Code, Codex, or other supported AI tools when you want them to use the same knowledge. A connected AI can write pages without an additional local language model.
62
+ Save your material in Wenlan so your everyday AI tools can use it to answer questions and get work done.
74
63
 
75
- <details>
76
- <summary>Need help connecting? Ask your AI</summary>
64
+ ### 1. Download and open Wenlan
77
65
 
78
- Restart your AI tool if prompted. For help with setup, paste this into Claude Code, Codex, or another tool that can follow a setup guide:
66
+ [Download the desktop app](https://github.com/wenlan-app/wenlan/releases/latest) (macOS Apple Silicon or Windows x64), install it, and open it.
79
67
 
80
- ```text
81
- Connect this AI tool to Wenlan by following:
82
- https://raw.githubusercontent.com/wenlan-app/wenlan/main/docs/setup-with-ai.md
68
+ Prefer the terminal? [Use Wenlan through the CLI or AI tools](docs/setup-and-data.md#installation).
83
69
 
84
- Reuse my existing Wenlan installation if available.
85
- Set up only this AI tool, then check that it can save and find a test memory.
86
- ```
70
+ ### 2. Create a page or import existing material
87
71
 
88
- </details>
72
+ Create a page in Wenlan, connect an Obsidian vault, or import earlier AI conversations and memories. [Import guide](docs/import-guide.md).
89
73
 
90
- To organize a topic with a connected AI, open a work conversation worth keeping and ask:
74
+ ### 3. Connect an AI tool when you want
91
75
 
92
- > Turn the conclusions, reasoning, and sources about [topic] in this conversation into a Wenlan page with source citations.
76
+ | AI tool | Connection | Setup |
77
+ |---|---|---|
78
+ | Claude Code / Claude Desktop | Plugin / MCP | [Claude guide](docs/setup-with-ai.md#claude-code) |
79
+ | ChatGPT Desktop (Codex), Codex CLI | Plugin | [Codex guide](docs/setup-with-ai.md#codex) |
80
+ | Cursor, VS Code, Gemini CLI, Muse Code | MCP | [MCP guide](docs/setup-with-ai.md#mcp-only-setup-and-other-clients) |
93
81
 
94
- You can also ask your AI to organize a topic from material you imported into a page.
82
+ After installing a plugin, start a new AI session and run `/wenlan` (`$wenlan` in Codex). It checks that Wenlan works and sets it up when needed.
95
83
 
96
- When it's ready, open the new page in Wenlan, click a citation to check its source, and add your own thoughts. Next time you work on that topic, ask your AI to read this page before continuing.
84
+ Imported material is ready to use right away, and you can turn it into pages whenever you want. Ask your AI:
97
85
 
98
- Background organization and automatic updates are optional and need a [configured model](#models-and-privacy). For terminal installation, other platforms, and updates, see the [setup guide](docs/setup-and-data.md#installation).
86
+ > /recall my earlier notes and decisions on this, then help me: …
99
87
 
100
- Need help? [Setup guide](docs/setup-with-ai.md) · [Report a problem](https://github.com/wenlan-app/wenlan/issues). Issues are public: redact secrets, credentials, access tokens, identifiers, private or personal content from anything you share, including logs.
88
+ In Codex, use `$recall`. With an MCP-only tool, just ask: “Check Wenlan for my earlier notes and decisions on this, then help me: …”
101
89
 
90
+ Later, you can turn on [Steep](#steep-keep-knowledge-useful-as-it-changes) with a [local model](docs/steep.md#enable-steep) to organize memories and update pages in the background.
102
91
 
103
92
  <a id="what-does-wenlan-build"></a>
104
93
  <a id="why-it-compounds"></a>
105
-
106
94
  <a id="what-is-this"></a>
95
+ <a id="what-you-get"></a>
96
+ <a id="what-can-it-do"></a>
97
+ <a id="what-can-i-bring-in"></a>
98
+ <a id="knowledge-graph"></a>
107
99
 
108
- ## Your wiki, for you and your AI
100
+ <a id="browse-and-organize-your-knowledge"></a>
109
101
 
110
- - **Turn scattered material into connected topics.** Bring documents, notes, and AI conversations together in linked pages, with citations you can open and check.
111
- - **Read it yourself. Use it with your AI.** Read and edit your pages, or ask Claude Code or Codex to use them for your next task.
112
- - **Maintain knowledge without starting over.** Track source changes, update related pages, and keep their history. AI proposes revisions to pages you've edited for you to review.
102
+ <a id="connect-your-knowledge"></a>
113
103
 
114
- Your pages are local Markdown files you can read, edit, and take with you.
104
+ <br>
115
105
 
116
- <p align="center">
117
- <picture>
118
- <source media="(max-width: 900px)" srcset="./docs/assets/wenlan-system-mobile.png">
119
- <img src="./docs/assets/wenlan-system.png" alt="Sources and memories feed an illustrative Agent Loop page. It combines retry guidance with a concrete lesson: tests passed, but a line still covered a mobile label. Desktop and mobile visual checks become part of the completion criteria for later work with Claude or Codex." width="100%">
120
- </picture>
121
- </p>
106
+ ## Organize scattered material into knowledge
122
107
 
123
- <a id="what-wenlan-is-not"></a>
108
+ **Sources** preserve documents and conversations; **memories** keep the decisions, lessons, and reasons worth reusing. Combine them in editable **Markdown pages with citations**, connect pages with `[[wikilinks]]`, and follow citations back to the originals.
124
109
 
125
- The illustration shows a reusable working rule, not customer results or an automated page-generation test. [How sources, memories, and pages work together](docs/knowledge-guide.md#sources-and-pages).
110
+ - **Atomic memories:** Following [Zettelkasten’s principle of atomicity](https://zettelkasten.de/posts/create-zettel-from-reading-notes/), keep findings independently retrievable and reusable without loading an entire conversation or page.
111
+ - **Shared topics:** With an enrichment model configured, LLM entity extraction and entity resolution link mentions of the same person, project, or concept across documents and conversations, retaining their memories and sources.
112
+ - **Knowledge communities:** Group connected topics to reveal related knowledge across your material. Label Propagation runs by default; Leiden is available as an opt-in algorithm. [Graph details](docs/technical-foundations.md#graph-data-and-entity-resolution).
126
113
 
127
- <a id="knowledge-graph"></a>
114
+ ### Sources and imports
128
115
 
129
- ### Follow the connections behind a page
116
+ | Bring in | How you can use it |
117
+ | --- | --- |
118
+ | Markdown, text, text-based PDFs, or a folder | Search and cite the imported text; refresh connected file sources from disk. |
119
+ | An Obsidian vault | Search and cite existing notes through a read-only connection. Refresh on demand; nothing is written back. |
120
+ | Web excerpts with a URL | Paste the text and its URL to save searchable material with a link to the original. |
121
+ | ChatGPT or Claude export ZIPs | Retrieve earlier conversation text and cite it as context; imports are snapshots, not live account connections. |
122
+ | Existing memories as text | Save preferences, decisions, or lessons as individual memories. |
130
123
 
131
- The Agent Loop example connects a retry rule, a lesson from a UI review, and an acceptance checklist you can reuse.
124
+ Scanned PDFs need text extraction first; chat attachments are not imported. [Import guide](docs/import-guide.md).
125
+
126
+ <a id="explore-your-personal-knowledge-graph"></a>
132
127
 
133
128
  <p align="center">
134
- <picture>
135
- <source media="(max-width: 900px)" srcset="./docs/assets/wenlan-knowledge-network-mobile.png">
136
- <img src="./docs/assets/wenlan-knowledge-network.png" alt="Illustrative Agent Loop page citing an agent-design guide and UI-review note; named memories include retry guidance and a visual-check lesson, linked to a reusable acceptance checklist and related concepts and tools." width="100%">
137
- </picture>
129
+ <img src="./docs/assets/wenlan-personal-graph.png" alt="Wenlan knowledge graph with illustrative regions for personal interests, research, and development" width="100%">
138
130
  </p>
131
+ <p>App nodes and connections; translated labels and illustrative regions.</p>
139
132
 
140
- <a id="retrieval"></a>
141
- <a id="retrieval-across-words-meaning-and-connections"></a>
142
-
143
- Follow a page to related concepts and evidence. [How graph and search work](docs/knowledge-guide.md#graph-and-search).
133
+ <a id="daily-workflow"></a>
144
134
 
145
- <a id="what-makes-wenlan-distinct"></a>
146
- <a id="why-is-wenlan-different"></a>
147
- <a id="two-lifecycles"></a>
148
- <a id="two-lifecycles-one-maintained-knowledge-system"></a>
135
+ <br>
149
136
 
150
- ### Knowledge changes. History stays.
137
+ ## In everyday use
151
138
 
152
- New experience improves your notes without hiding earlier decisions. This example replaces “tests passed, so the UI is done” with “check tests and the desktop and mobile views,” keeping the reason and evidence for the change.
139
+ Save new findings and progress as you work, then pick up where you left off next time.
153
140
 
154
141
  <p align="center">
155
- <picture>
156
- <source media="(max-width: 900px)" srcset="./docs/assets/wenlan-lifecycle-mobile.png">
157
- <img src="./docs/assets/wenlan-lifecycle.png" alt="Illustrative before and after: “tests passed, so the UI is done” becomes “check tests and desktop and mobile views”; the evidence is a mobile label obscured despite passing tests. During automatic refresh, changes to a page you edited are proposed for your review." width="100%">
158
- </picture>
142
+ <img src="./docs/assets/wenlan-daily-workflow.png" alt="Sources and saved memories accumulate in Wenlan; use them in the App or AI tools, then save new memories and work progress for later." width="100%">
159
143
  </p>
160
144
 
161
- <a id="local-markdown"></a>
162
- <a id="atomic-memory"></a>
163
- <a id="maintained-page"></a>
164
- <a id="local-markdown-that-works-with-obsidian"></a>
165
-
166
- Review applies to AI updates; direct file edits and forced regeneration follow different rules. [Updates, review, and local files](docs/knowledge-guide.md#updates-and-history).
145
+ Simplified workflow. Plugin commands and page organization are optional, with no fixed sequence.
167
146
 
168
- ### Already using Obsidian with AI plugins?
169
-
170
- You can use [Copilot](https://docs.obsidiancopilot.com/agent-mode-and-tools/) for AI-assisted reading and editing, [Smart Connections](https://github.com/brianpetro/obsidian-smart-connections) to find related notes, and [Obsidian Git](https://github.com/Vinzent03/obsidian-git) to keep version history. That gives you flexibility, but choosing how the plugins work together, when to organize new material, and how to update older pages is still a workflow you arrange.
171
-
172
- Wenlan connects topic-page creation, source-change tracking, page updates, and revision history in one workflow, saving you the work of assembling and maintaining those steps yourself. You can read the resulting knowledge directly or let Claude Code, Codex, and other tools build on it.
173
-
174
- Ask your connected AI to update a page, or [configure a model](#models-and-privacy) to enable background updates. When AI updates a page you've edited, Wenlan proposes a revision for you to review.
175
-
176
- Connect your existing Obsidian vault as a read-only source without moving your notes. Wenlan does not modify the vault or sync changes back to it.
177
-
178
-
179
- <a id="what-you-get"></a>
180
- <a id="what-can-it-do"></a>
181
- <a id="what-can-i-bring-in"></a>
182
-
183
- ## Capabilities
184
-
185
- ### Bring your material in
186
-
187
- - **Keep useful AI conversations:** Import ChatGPT or Claude export ZIPs without duplicating conversations already imported.
188
- - **Bring your existing notes:** Import Markdown, text files, or text-extractable PDFs, by file or folder; connect an Obsidian vault as a source. Scanned PDFs need text extraction first.
189
- - **Quick Capture:** Save a thought or decision directly in the desktop app without opening an AI chat.
190
- - **[Capture decisions with your AI](https://wenlan.app/learn/ai-work-memory):** Ask your AI tool to save decisions, lessons, corrections, preferences, and facts, with their sources and what they replace.
191
- - **Bring in another wiki:** Import an external OKF wiki through the CLI or API, preserving source references and links. Reimporting Wenlan's own OKF exports is not supported.
192
-
193
- ### Explore your personal wiki
194
-
195
- - **[Editable, source-linked Pages](https://wenlan.app/docs/source-backed-pages):** Turn related documents and Memories into Markdown Pages with citations and links to other Pages.
196
- - **Cards or lists:** Browse Pages, Entities, and Spaces in the view that suits you.
197
- - **[Knowledge graph](docs/technical-foundations.md#graph-data-and-entity-resolution):** Explore connections between people, projects, claims, and the Memories supporting them.
198
-
199
- ### Use it with your AI tools
200
-
201
- - **[Pick up in another AI tool](https://wenlan.app/docs/architecture):** Connected Claude Code, Codex, and other MCP clients can use the same local Pages and Memories as the desktop app and CLI.
202
- - **[Search by words and meaning](docs/technical-foundations.md#retrieval-pipeline):** Combine exact matches with local semantic search; graph connections can add relevant context.
203
- - **[Optional deeper search](docs/technical-foundations.md#optional-channels-and-defaults):** Search Pages and finer-grained Memories, with optional reranking to refine results.
204
- - **[Keep projects separate](https://wenlan.app/docs/spaces):** Use Spaces to choose which work, personal, client, or repository knowledge your AI searches.
205
- - **Web access (experimental):** Connect a supported web AI client to your whole library, or to one Space you choose, while your computer is online. Queries and results pass through a relay; see [how access works and its privacy limits](docs/PRIVACY.md#pre-release-standalone-wenlan-relay-connector).
206
- - **Connect your own tools:** Send prepared text, webpage content, or Memories through the local HTTP API. It accepts content, not URLs to fetch.
207
-
208
- ### Keep knowledge current
209
-
210
- Optional background organization and Page updates need a [configured model](#models-and-privacy).
211
-
212
- - **Incremental sync:** File and folder Sources track changes in the background. Obsidian vaults stay read-only and resync on demand.
213
- - **[Organize saved knowledge](docs/technical-foundations.md#typed-memory-schema):** A configured model can add types, structured details, relevant dates, tags, search cues, and graph links to Memories.
214
- - **Updates backed by sources:** Automatic refresh rejects drafts with insufficient citations. AI-generated Pages can update; changes to Pages you have edited become review proposals.
215
- - **[Review where judgment matters](https://wenlan.app/docs/review-and-trust):** Review protected conflicts, Page revisions, entity merges, and new vocabulary.
216
- - **See what is happening:** Check progress and blockers in Activity. Configured sync, Steep (background enrichment), and eligible Page updates can continue after the app window closes while the local service runs.
217
-
218
- ### Keep ownership and control
219
-
220
- - **[Local, inspectable knowledge](https://wenlan.app/learn/local-first-ai-memory):** Keep Markdown Pages, citations, revisions, and Obsidian exports; Memories and graph data live in local libSQL.
221
- - **Take your wiki with you:** Export eligible Pages across Spaces as an OKF v0.2 wiki from Settings or the CLI. This is a wiki export, not a full database backup.
222
- - **[Model choice](docs/technical-foundations.md#model-roles):** Base retrieval stays local. Steep, the optional background enrichment and synthesis, can use on-device Qwen, a local endpoint, or a cloud model; remote providers receive the content needed for their tasks.
223
- - **Health checks and reviewed repairs:** [Doctor](https://wenlan.app/docs/diagnostics-and-issue-reports) and [lint](plugin/skills/lint/SKILL.md) report problems without rewriting knowledge. For supported findings, the app lets you preview and explicitly apply a repair, then verify it.
224
-
225
- **Start with a note you want to keep.** [Get started](#start-in-30-seconds). Star this repo if you'd like to come back and try it later.
147
+ - **Work in the App.** Add material, write or edit pages, follow citations, and review proposed changes without connecting AI.
148
+ - **Use your knowledge and write new pages.** Ask your AI to find relevant sources and memories for the task (`/recall`). It can also write cited pages or update existing ones from their current version, then save them to Wenlan.
149
+ - **Keep what you learn.** Save a decision or lesson, with its reasons and sources, in the App or through your AI (`/capture`).
150
+ - **Pause and resume.** Save findings and a session log, update affected pages, and record progress and next steps in the project Brief (`/handoff`). Pick up that context next time (`/brief`).
226
151
 
152
+ **Organize accumulated memories when needed:** Synthesize or refresh cited pages from related memories (`/wenlan distill`); writing a new page does not require this step. [Plugin commands](plugin/skills/README.md).
227
153
 
228
154
  <a id="how-wenlan-works"></a>
229
155
  <a id="how-does-it-work"></a>
230
156
 
231
- ## Daily workflow
157
+ <a id="what-wenlan-is-not"></a>
158
+ <a id="retrieval"></a>
159
+ <a id="retrieval-across-words-meaning-and-connections"></a>
232
160
 
233
- Once your AI tool is connected, you can ask in plain language:
161
+ <a id="use-your-knowledge-with-ai"></a>
234
162
 
235
- With the Wenlan plugin installed, you can also use the slash commands below.
163
+ <br>
236
164
 
237
- ### Before starting a task
165
+ ## Put your knowledge to work with AI
238
166
 
239
- > Find what I've saved in Wenlan about [topic], including earlier decisions and their sources.
167
+ Once your material is in Wenlan, your AI tools can build on it: retrieve earlier decisions with their supporting material, save new work, and keep using it as the evidence changes.
240
168
 
241
- Shortcut: `/recall [topic]`
169
+ **Use it for:**
242
170
 
243
- ### When you reach a useful conclusion
171
+ - **Development:** Bring earlier technical decisions, lessons, and acceptance criteria into implementation and debugging.
172
+ - **Products and websites:** Use customer research, positioning, and design principles to draft specifications or build pages.
173
+ - **Research and learning:** Turn reading material and saved findings into cited reports or study notes you can reuse.
244
174
 
245
- > Save this decision and why we made it in Wenlan, with its sources.
175
+ **Retrieval and connections:** Plugins guide retrieval and saving; MCP connections expose the tools for your AI to call.
246
176
 
247
- Shortcut: `/capture [decision, reasons, and sources]`
177
+ - **[Local hybrid retrieval](docs/technical-foundations.md#retrieval-pipeline):** Find exact terms and similar meaning with SQLite FTS5 and BGE embeddings, fused by weighted Reciprocal Rank Fusion (RRF); base search needs no API key.
178
+ - **Graph-assisted ranking:** Shared-entity links boost related memories even when their wording differs. Optional cross-encoder reranking compares each candidate with the question to refine the order.
179
+ - **Space-scoped retrieval:** Select a Space to limit returned knowledge to the relevant project or personal collection.
248
180
 
249
- ### When a topic deserves a page
181
+ **Coming soon:** Coding repository support in Spaces.
250
182
 
251
- > Create or update a Wenlan page on [topic] from the material we've saved. Keep the citations.
183
+ Turn on **Web access** in Settings to let supported web AI clients such as Claude, ChatGPT, or Muse search your library or a chosen Space while your computer is online. When you allow an app, choose search only or search and write; a write app can also add, edit and delete, and AI apps can ask you before each change. This feature is experimental; queries and results pass through a relay. See the [privacy limits](docs/PRIVACY.md#pre-release-standalone-wenlan-relay-connector).
252
184
 
253
- To organize saved knowledge into pages: `/distill`
185
+ <a id="what-makes-wenlan-distinct"></a>
186
+ <a id="why-is-wenlan-different"></a>
187
+ <a id="two-lifecycles"></a>
188
+ <a id="two-lifecycles-one-maintained-knowledge-system"></a>
189
+ <a id="local-markdown"></a>
190
+ <a id="atomic-memory"></a>
191
+ <a id="maintained-page"></a>
192
+ <a id="local-markdown-that-works-with-obsidian"></a>
254
193
 
255
- Open the page in Wenlan to read, edit, and check its sources. Next time, ask your AI to use it for your next task.
194
+ <a id="keep-knowledge-current-and-preserve-history"></a>
256
195
 
257
- ### When you wrap up
196
+ <br>
258
197
 
259
- > Save this session's progress, decisions, and open questions in Wenlan so we can pick up next time.
198
+ ## Steep: keep knowledge useful as it changes
260
199
 
261
- Shortcut: `/handoff`
200
+ Saving material is only the start. **Steep prepares it for reuse and keeps supported pages current**, so you and your AI can build on earlier findings instead of repeatedly working through the originals.
262
201
 
263
- <details>
264
- <summary>Plugin commands and maintenance</summary>
202
+ - **Enrich memories:** Add types, structured details, search cues, and graph links so individual findings are easier to retrieve in context.
203
+ - **Follow the evidence:** Changed sources or memories flag dependent pages for refresh; new memories can enrich eligible pages. Refresh keeps the saved page if a draft fails citation checks. Passing these checks does not establish factual correctness.
204
+ - **Keep control and history:** Background refresh updates eligible AI-maintained pages; your authored or edited pages receive proposed revisions. Explicit memory replacements hide or archive earlier memories while preserving their links. Page revisions remain inspectable.
265
205
 
266
- - **Read the project summary:** `/brief [topic]` reads the current Space's project summary; an optional topic adds related context from that Space.
267
- - **Check and review:** `/lint` checks knowledge health; `/curate` reviews pending captures or revisions.
206
+ [Steep guide: triggers, review rules, and model setup](docs/steep.md). Choose an on-device model, a local server, or a cloud provider; model-backed background work is optional.
268
207
 
269
- These shortcuts are available through the Wenlan plugins. Other connected clients use the equivalent MCP tools. Optional background organization and Page updates need a [configured model](#models-and-privacy).
208
+ <p align="center">
209
+ <img src="./docs/assets/wenlan-updates-history.png" alt="Illustrative flow: a finding in a source document updates memory from V1 to V2, then informs a page that is either updated automatically or sent for review." width="100%">
210
+ </p>
211
+ <p>Illustration based on current update behavior; not an App screenshot.</p>
270
212
 
271
- [Full command reference](plugin/skills/README.md).
213
+ <a id="architecture"></a>
272
214
 
273
- </details>
215
+ <br>
274
216
 
275
- <a id="offline-queue-outbox"></a>
217
+ ## Architecture
276
218
 
277
- [CLI offline writes and replay](docs/setup-and-data.md#offline-queue).
219
+ **One local knowledge base.** App, CLI, and connected AI tools read and write through Wenlan’s local service. Pages are Markdown files; memories, relationships, and search indexes live in local libSQL.
278
220
 
279
- <a id="models-and-privacy"></a>
280
-
281
- ### Models and privacy
282
-
283
- Use your connected AI to write pages without installing an additional local language model. Background organization and automatic updates are optional and need a configured model.
221
+ <p align="center">
222
+ <img src="./docs/assets/wenlan-architecture.png" alt="Architecture overview: App and AI tools share a local knowledge base, with optional background enrichment models." width="100%">
223
+ </p>
284
224
 
285
- - **Search stays local.** The search model downloads at first launch and runs on your machine, without an API key.
286
- - **Connected AI can receive your knowledge.** A cloud AI client can send retrieved content to its provider. Choosing a cloud model for background organization also sends the material needed for that task. Local storage does not make those interactions local.
287
- - **Usage statistics are off by default.** If you opt in, Wenlan sends limited operation counts, version, and platform, not your knowledge content or an installation ID. [Details](docs/PRIVACY.md#telemetry).
225
+ Architecture overview. [Retrieval, evidence, and models](docs/technical-foundations.md).
288
226
 
289
- See [network and privacy details](docs/PRIVACY.md#when-wenlan-reaches-the-network) for downloads, update checks, remote images, and optional remote access.
227
+ <a id="models-and-privacy"></a>
290
228
 
291
- [Model choices and configuration](docs/setup-and-data.md#models).
229
+ <br>
292
230
 
293
- ### Your data and uninstall
231
+ ## Data and privacy
294
232
 
295
- Your pages and session notes are Markdown files; memories and the graph live in a local database. You can keep your knowledge when you uninstall the app.
233
+ **Export your wiki:** Export eligible pages as an Open Knowledge Format (OKF) wiki.
296
234
 
297
- [File locations, backup, and removal](docs/setup-and-data.md#backup-and-removal).
235
+ A cloud AI client may send retrieved knowledge to its provider, and a cloud model receives the material it processes. Local storage does not keep those interactions local. Usage statistics are off by default.
298
236
 
237
+ [File locations, backup, and removal](docs/setup-and-data.md#backup-and-removal) · [Network and privacy details](docs/PRIVACY.md#when-wenlan-reaches-the-network).
299
238
 
300
239
  <a id="evaluation"></a>
301
240
 
241
+ <br>
242
+
302
243
  ## Evaluation
303
244
 
304
- This is a retrieval-only snapshot, not a claim about end-to-end answer quality. Method, environment receipts, and the update workflow live in [docs/eval](docs/eval/README.md).
245
+ These LongMemEval (LME) snapshots measure retrieval of saved knowledge, not AI answer quality. Recall@5 measures how much relevant material appears in the top five results.
305
246
 
306
247
  <!-- EVAL_SNAPSHOT_START -->
307
248
  | Benchmark | Recall@5 | MRR | NDCG@10 |
@@ -310,94 +251,52 @@ This is a retrieval-only snapshot, not a claim about end-to-end answer quality.
310
251
  | LME_S (deep, 90 Q) | 87.7% | 0.815 | 0.822 |
311
252
  <!-- EVAL_SNAPSHOT_END -->
312
253
 
254
+ [Evaluation method and benchmark details](docs/eval/README.md).
313
255
 
314
256
  <a id="learn-more"></a>
315
257
 
316
- ## Learn more
317
-
318
- More detailed documentation, concepts, and comparisons:
319
-
320
- ### Docs
321
-
322
- - [Get started](https://wenlan.app/docs/get-started): install and verify the first local loop.
323
- - [Daily workflow](https://wenlan.app/docs/daily-workflow): brief, capture, recall, handoff, distill, lint, and curate.
324
- - [MCP clients](https://wenlan.app/docs/mcp-clients): connect Claude Code, Codex, Cursor, Claude Desktop, and other clients.
325
-
326
- ### Workflow guides
327
-
328
- - [Build your first LLM Wiki](https://wenlan.app/learn/distilled-wiki-pages-ai-memory): work through a three-source example, check its citations, and review what changes when a source is updated.
329
- - [Build a client project knowledge base for consulting](https://wenlan.app/learn/build-client-project-knowledge-base-for-consulting)
330
- - [Build an investment research knowledge base](https://wenlan.app/learn/build-investment-research-knowledge-base)
331
- - [Build a product research knowledge base before writing a PRD](https://wenlan.app/learn/build-product-research-knowledge-base-for-prd)
332
- - [Build an SRE incident knowledge base](https://wenlan.app/learn/build-sre-incident-knowledge-base)
333
- - [Build a business metric definition knowledge base](https://wenlan.app/learn/build-business-metric-definition-knowledge-base): turn approved KPI specifications into a source-backed data dictionary with formula text, grain, exclusions, owners, revisions, and review state.
334
-
335
- ### Concepts
258
+ <a id="offline-queue-outbox"></a>
336
259
 
337
- - [Why a living wiki, not just AI memory](https://wenlan.app/learn/ai-work-memory): the problem and product model in depth.
338
- - [MCP memory server](https://wenlan.app/learn/mcp-memory-server): how Wenlan exposes knowledge across AI tools.
339
- - [Local-first AI memory](https://wenlan.app/learn/local-first-ai-memory): data, privacy, and control.
340
- - [Markdown and local index](https://wenlan.app/learn/local-first-ai-memory): storage, retrieval, and ownership.
341
- - [AI agent handoff loop](https://wenlan.app/learn/ai-agent-handoff-loop): carrying work cleanly into the next session.
342
- - [Research knowledge base from papers](https://wenlan.app/learn/source-backed-research-knowledge-base): build an inspectable literature matrix and source-backed synthesis from papers you already have.
260
+ <br>
343
261
 
344
- ### Comparisons
262
+ ## Learn more
345
263
 
346
- - [Wenlan vs Basic Memory](https://wenlan.app/learn/wenlan-vs-basic-memory)
347
- - [Wenlan vs claude-mem](https://wenlan.app/learn/wenlan-vs-claude-mem)
348
- - [Wenlan vs Superlocal Memory](https://wenlan.app/learn/wenlan-vs-superlocal-memory)
264
+ - [Get started and install](docs/setup-and-data.md#installation)
265
+ - [Connect an AI tool](docs/setup-with-ai.md)
266
+ - [Sources and imports](docs/import-guide.md)
267
+ - [Local files, backups, and offline use](docs/setup-and-data.md)
268
+ - [Privacy](docs/PRIVACY.md)
269
+ - [Doctor and issue reports](https://wenlan.app/docs/diagnostics-and-issue-reports)
270
+ - [Full documentation index](docs/README.md)
349
271
 
272
+ <br>
350
273
 
351
274
  ## Contributing
352
275
 
353
- Bug fixes, eval cases, docs, and features are welcome. Installing Wenlan does not require building from source. For local development, run these commands from this repository's root:
354
-
355
- ```bash
356
- # daemon crates (default-members — the desktop app is not compiled)
357
- cargo build
358
- cargo test
359
-
360
- # desktop app (Cargo target and root-level frontend tooling)
361
- pnpm install
362
- pnpm dev:all
363
- pnpm build:all
364
- ```
365
-
366
- `pnpm dev:all` is the supported development entry point for the desktop app. It keeps development ports, data, process ownership, app identity, MCP sockets, and Remote Access state separate from the installed production runtime; a debug app started without that isolation refuses to run. See this repository's [AGENTS.md](AGENTS.md) and [CONTRIBUTING.md](.github/CONTRIBUTING.md), plus the in-tree [app/AGENTS.md](app/AGENTS.md), for the complete development workflow. Security reports: [SECURITY.md](.github/SECURITY.md). Privacy policy: [PRIVACY.md](docs/PRIVACY.md). Please also read the [Code of Conduct](.github/CODE_OF_CONDUCT.md).
276
+ Join the [Discord community](https://discord.gg/nmzVTTU3HG). Report bugs or request features in [GitHub issues](https://github.com/wenlan-app/wenlan/issues); issues are public, so redact secrets and personal information.
367
277
 
278
+ For code and docs, see [Contributing](.github/CONTRIBUTING.md), [Security](.github/SECURITY.md), and the [Code of Conduct](.github/CODE_OF_CONDUCT.md).
368
279
 
369
280
  <a id="code-signing-policy"></a>
370
281
 
371
- ## Code signing policy
282
+ <br>
372
283
 
373
- macOS desktop releases are Developer ID signed and notarized. Windows installers are not signed yet.
374
-
375
- Releases are built from tagged commits by this repository's release workflow on GitHub-hosted runners. Maintainers must use multi-factor authentication on GitHub.
376
-
377
- [Platform signing details](docs/code-signing.md) · [Privacy policy](docs/PRIVACY.md).
284
+ ## Code signing policy
378
285
 
286
+ See the [platform signing and notarization details](docs/code-signing.md).
379
287
 
380
288
  <a id="license"></a>
381
289
 
382
- ## License
383
-
384
- Wenlan uses two licenses, one per part of the repository.
290
+ <br>
385
291
 
386
- - **Apache-2.0** ([`LICENSE`](LICENSE)) covers the local runtime, CLI, MCP server, shared types, and the Claude Code and Codex plugin files. Build on these freely.
387
- - **AGPL-3.0-only** ([`app/LICENSE`](app/LICENSE)) covers the desktop app: the `app/` crate and the React frontend it ships. If you run a modified version of the app as a network service, the AGPL asks you to offer that modified source to its users.
388
-
389
- The split is deliberate. Apache-2.0 code may be used inside an AGPL-3.0 program, so the desktop app builds on the runtime without either license being violated.
292
+ ## License
390
293
 
294
+ The local runtime, CLI, MCP server, shared types, and plugins use [Apache-2.0](LICENSE). The desktop app and its frontend use [AGPL-3.0-only](app/LICENSE); modified versions run as a network service must offer their source to users.
391
295
 
392
296
  <a id="acknowledgments"></a>
393
297
 
394
- ## Lineage and peers
395
-
396
- Wenlan (文瀾) takes its name from 文瀾閣, an imperial library that held 四庫全書 as part of one of China's largest book collections.
298
+ <br>
397
299
 
398
- Wenlan's llm-wiki v2 model is its own product direction, informed by the LLM-wiki and agent-memory lineages:
300
+ ## Lineage and peers
399
301
 
400
- - [Karpathy's LLM-wiki note](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) established the raw-source-to-maintained-wiki pattern.
401
- - [Rohitg00's LLM Wiki v2 proposal](https://gist.github.com/rohitg00/2067ab416f7bbe447c1977edaaa681e2) extends that pattern with memory lifecycle, confidence, graph, and retrieval mechanisms. [agentmemory](https://github.com/rohitg00/agentmemory) is its concrete agent-memory implementation.
402
- - [nashsu/llm_wiki](https://github.com/nashsu/llm_wiki) is a full desktop implementation of the document-centered LLM-wiki pattern.
403
- - [basic-memory](https://github.com/basicmachines-co/basic-memory), [obsidian-mind](https://github.com/breferrari/obsidian-mind), [mcp-memory-service](https://pypi.org/project/mcp-memory-service/), [Memoria](https://github.com/matrixorigin/Memoria), and [OpenMemory](https://github.com/CaviraOSS/OpenMemory) explore adjacent local knowledge and agent-memory shapes.
302
+ Wenlan takes its name from Wenlan Pavilion. Its direction builds on the LLM-wiki and agent-memory lineages: [Karpathy’s LLM-wiki note](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f), [Rohitg00’s proposal](https://gist.github.com/rohitg00/2067ab416f7bbe447c1977edaaa681e2), and [nashsu/llm_wiki](https://github.com/nashsu/llm_wiki).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wenlan-mcp",
3
- "version": "0.19.1",
3
+ "version": "0.19.3",
4
4
  "description": "MCP server for Wenlan, a living knowledge base your agents build as they work",
5
5
  "keywords": [
6
6
  "mcp",