wenlan-mcp 0.20.2 → 0.20.4

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 +126 -96
  2. package/package.json +2 -2
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" width="100%">
4
+ <img src="./docs/assets/readme-banner.png" alt="Wenlan: Your living wiki. Free, open source, local-first." width="100%">
5
5
  </picture>
6
6
  </p>
7
7
 
8
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.
9
+ <strong>Notes, code, AI chats into a wiki, checked against sources.</strong><br>
10
+ One source of truth for you and your AI tools, kept up to date as your sources change.<br>
11
+ Your notes stay on your machine and go only to the AI tools you pick.
11
12
  </p>
12
13
 
13
14
  <p align="center">
@@ -15,22 +16,21 @@
15
16
  </p>
16
17
 
17
18
  <p align="center">
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>
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>
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>
21
- </p>
22
-
23
- <p align="center">
19
+ <a href="https://github.com/wenlan-app/wenlan/releases/latest"><strong>Download</strong></a> ·
24
20
  <a href="#start-in-30-seconds">Get&nbsp;started</a> ·
25
- <a href="#what-can-i-bring-in">Capabilities</a> ·
21
+ <a href="#what-can-i-bring-in">Sources</a> ·
26
22
  <a href="#learn-more">Docs</a> ·
27
23
  <a href="https://discord.gg/nmzVTTU3HG">Discord</a>
28
24
  </p>
29
25
 
30
- <!-- R113 walkthrough: approved 0.5-second cover; 1080p; original video/audio and masters retained. -->
26
+ <p align="center">
27
+ <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>
28
+ <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>
29
+ <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>
30
+ </p>
31
31
 
32
32
  <p align="center">
33
- <a href="https://github.com/user-attachments/assets/5e661389-d7ea-4a36-a645-2b1ec2a92d32"><img src="./docs/assets/readme-video-cover-en.png" alt="Watch the Wenlan walkthrough" width="100%"></a>
33
+ <a href="https://youtu.be/vM2GXS6UjyA"><img src="./docs/assets/readme-video-cover-en.png" alt="Watch the Wenlan launch film (1:44)" width="100%"></a>
34
34
  </p>
35
35
 
36
36
  <a id="why-wenlan"></a>
@@ -39,11 +39,13 @@
39
39
 
40
40
  ## Why Wenlan
41
41
 
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.
42
+ I started Wenlan because my notes, documents, and AI chats were scattered and always changing, and keeping a vault from rotting took constant upkeep. I wanted an AI-native knowledge base that stays useful without the hassle.
43
43
 
44
- - **Everything in one place:** Documents, Markdown files, Obsidian vaults, Logseq graphs, 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.
44
+ - **Your AI writes it and keeps it current:** The AI tool you already use turns your notes, files, and AI chats into pages, with no extra model.
45
+ - **It tells you what it can't back up:** A page is refused when most of its citations don't match the source, and each citation opens the original.
46
+ - **It flags what changed:** When a source, page, or code line changes, only the pages that rely on it are flagged.
47
+ - **What you write stays yours:** Wenlan never edits your existing notes without your OK, and pages you wrote are set to **Ask me first**.
48
+ - **Bring what you have, keep it when you switch tools:** Notes, documents, links, and chats come in ([full list](#what-can-i-bring-in)) as local Markdown that works in the AI tools you pick.
47
49
 
48
50
  <a id="quickstart"></a>
49
51
  <a id="start-in-30-seconds"></a>
@@ -59,44 +61,118 @@ I started Wenlan out of anxiety about my own knowledge: notes, documents, and AI
59
61
 
60
62
  ## Get started
61
63
 
62
- Save your material in Wenlan so your everyday AI tools can use it to answer questions and get work done.
63
-
64
64
  ### 1. Download and open Wenlan
65
65
 
66
- [Download the desktop app](https://github.com/wenlan-app/wenlan/releases/latest) (macOS Apple Silicon or Windows x64), install it, and open it.
66
+ [Download the desktop app](https://github.com/wenlan-app/wenlan/releases/latest) for macOS 11 or later on Apple Silicon, or Windows x64. The app is in English, 简体中文, and 繁體中文.
67
67
 
68
- Prefer the terminal? [Use Wenlan through the CLI or AI tools](docs/setup-and-data.md#installation).
68
+ Prefer the terminal? On a Mac, run `npx -y wenlan setup`, or `brew install 7xuanlu/tap/wenlan` and then `wenlan setup`. Linux and Windows: [CLI install guide](docs/setup-and-data.md#installation).
69
69
 
70
- ### 2. Create a page or import existing material
70
+ ### 2. Bring in your material
71
71
 
72
- Create a page in Wenlan, connect an Obsidian vault or a Logseq graph, add a folder, or import earlier AI conversations and memories. [Import guide](docs/import-guide.md).
72
+ Create a page, or bring in an Obsidian vault, a Logseq graph, a folder, or earlier AI chats. [Import guide](docs/import-guide.md).
73
73
 
74
- ### 3. Connect an AI tool when you want
74
+ ### 3. Connect your AI tool
75
75
 
76
76
  | AI tool | Connection | Setup |
77
77
  |---|---|---|
78
78
  | Claude Code / Claude Desktop | Plugin / MCP | [Claude guide](docs/setup-with-ai.md#claude-code) |
79
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) |
80
+ | Cursor, GitHub Copilot, VS Code, Gemini CLI, Antigravity, Windsurf, Kiro, OpenCode, Kimi Code | MCP and skills | [MCP guide](docs/setup-with-ai.md#mcp-only-setup-and-other-clients) |
81
+ | Muse Code and other MCP clients | MCP | [MCP guide](docs/setup-with-ai.md#mcp-only-setup-and-other-clients) |
82
+
83
+ In the App's Settings, **Add a tool** finds the AI tools on your computer and **Connect all** sets them up in one press. Then start a new AI session and ask:
84
+
85
+ > /recall my earlier pages and decisions on this, then help me: …
86
+
87
+ Use `$recall` in Codex; with an MCP-only tool, just ask it to check Wenlan first.
88
+
89
+ When an import finishes, the app offers **Write pages with** your AI tool to turn it into your first cited pages. No command needed.
90
+
91
+ <a id="what-can-i-bring-in"></a>
92
+
93
+ <br>
94
+
95
+ ## Sources and imports
96
+
97
+ | Bring in | How you can use it |
98
+ | --- | --- |
99
+ | Markdown, text, text-based PDFs, DOCX, or a folder | Search and cite the imported text. Import a folder once, or keep it in sync as its files change. |
100
+ | An Obsidian vault or a Logseq graph | Search and cite existing notes. Keep it in sync to follow changes in the background, or import it once. Wenlan never edits your existing notes without your OK: in an Obsidian vault, notes you set to **Ask me first** get AI suggestions you accept or decline. |
101
+ | Web links | Paste a link into a page and it is saved as a source. YouTube, X, Threads, Instagram, and RedNote links show as a card, a playable video, or the original post. Or paste text with its URL to save that excerpt. |
102
+ | Gmail, Notion, Google Drive, Slack, GitHub | Your AI tool reads them with its own connectors and saves what matters to Wenlan with a link to the original. |
103
+ | A code repository | `/wenlan wiki` writes pages tied to the code lines they rely on. [Code wiki](#code-repository-wiki). |
104
+ | An OKF bundle | Connect an Open Knowledge Format folder, such as an OpenWiki or a Wenlan export, as a source. |
105
+ | Your AI chats as you work | Claude Code, Codex, and your other AI tools save the decisions, findings, and progress from each conversation as memories, and pages cite them. Full transcripts are not imported. |
106
+ | ChatGPT or Claude export ZIPs | Retrieve earlier conversation text, including a last message that got no reply, and cite it as context; imports are snapshots, not live account connections. |
107
+ | Existing memories as text | Save preferences, decisions, or lessons as individual memories. |
108
+
109
+ Scanned PDFs need text extraction first; chat attachments are not imported. [Import guide](docs/import-guide.md).
110
+
111
+ <a id="what-makes-wenlan-distinct"></a>
112
+ <a id="why-is-wenlan-different"></a>
113
+ <a id="two-lifecycles"></a>
114
+ <a id="two-lifecycles-one-maintained-knowledge-system"></a>
115
+ <a id="local-markdown"></a>
116
+ <a id="atomic-memory"></a>
117
+ <a id="maintained-page"></a>
118
+ <a id="local-markdown-that-works-with-obsidian"></a>
119
+
120
+ <a id="keep-knowledge-current-and-preserve-history"></a>
121
+
122
+ <br>
123
+
124
+ ## Steep: keep knowledge useful as it changes
125
+
126
+ <p align="center">
127
+ <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%">
128
+ </p>
129
+ <p>Illustration based on current update behavior; not an App screenshot.</p>
130
+
131
+ 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.
132
+
133
+ Choose one of two modes in Settings:
134
+
135
+ - **On demand** (new installs start here): when your AI tool saves or writes into Wenlan, it steeps as it goes, and while it works it hears which pages are out of date and which material is in no page yet. No command needed; `/wenlan steep` is there if you want to catch up on everything at once.
136
+ - **Automatic:** Wenlan steeps in the background with the model you assign.
137
+
138
+ What steep does:
139
+
140
+ - **Enrich memories:** Add types, structured details, search cues, and graph links so individual findings are easier to retrieve in context.
141
+ - **Follow the evidence:** Changed sources, memories, or cited code 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.
142
+ - **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.
143
+ - **Ask me first:** With **Ask me first on pages I wrote** on, as it is for new installs, AI changes to pages you wrote or edited wait for your OK. Each page's **AI changes** setting shows **Allowed** or **Ask me first**. Pages AI wrote keep updating.
144
+
145
+ <a id="what-it-does-on-its-own"></a>
146
+
147
+ ### What it does on its own
148
+
149
+ In both modes, without a model, Wenlan:
150
+
151
+ - **Flags out-of-date pages** when their sources, memories, or cited code change. Repository wiki pages show what changed in the code.
152
+ - **Suggests merging near-duplicate pages** as a card for you or your AI to accept or dismiss.
153
+ - **Tidies links:** lists `[[links]]` that point to no page yet, and drops citations to memories you deleted.
81
154
 
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.
155
+ Rewriting a flagged page takes a model. In Automatic, Wenlan does it in the background. In On demand, your AI tool is told which pages are waiting and can bring them up to date while it works.
83
156
 
84
- Imported material is ready to use right away, and you can turn it into pages whenever you want. Ask your AI:
157
+ [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.
158
+
159
+ <a id="code-repository-wiki"></a>
85
160
 
86
- > /recall my earlier notes and decisions on this, then help me: …
161
+ <br>
87
162
 
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: …”
163
+ ## A wiki for your code repository
89
164
 
90
- To turn imported material into cited pages, run `/wenlan steep` (`$wenlan steep` in Codex). New installs [steep](#steep-keep-knowledge-useful-as-it-changes) On demand, with your AI tool; switch to Automatic with a [model](docs/steep.md#enable-steep) to organize memories and update pages in the background.
165
+ Run `/wenlan wiki` (`$wenlan wiki` in Codex) in a repository. Your AI tool plans the wiki from the repository itself: an overview that lists every page, then one page for each part or flow a newcomer needs. A small tool gets a few pages, a large monorepo many more. A rerun writes only the pages that are missing.
91
166
 
92
- Not sure what to ask? Open **What your AI can do** in the App for the exact text to type in your AI tool.
167
+ - **Tied to the code:** Each page records the code lines it was read from. When that code changes, the page shows what changed with one Review button, and steep brings the page up to date.
168
+ - **In the repository as a pull request:** The GitHub button on a Space connects it to its repository and puts the pages that rely on that code in the repository's `wiki/` folder as a pull request. Run it from the button, or turn on the daily update: it runs your own AI tool on your computer, or runs on GitHub Actions with your AI tool's key saved as a repository secret, so your computer can stay off. The same pull request fixes sentences in the repository's own docs that the code no longer agrees with, for you to review.
169
+ - **Your edits stay:** A wiki page someone edited in the repository keeps that edit. Pages that cite your memories or chats stay out of the repository.
93
170
 
94
171
  <a id="what-does-wenlan-build"></a>
95
172
  <a id="why-it-compounds"></a>
96
173
  <a id="what-is-this"></a>
97
174
  <a id="what-you-get"></a>
98
175
  <a id="what-can-it-do"></a>
99
- <a id="what-can-i-bring-in"></a>
100
176
  <a id="knowledge-graph"></a>
101
177
 
102
178
  <a id="browse-and-organize-your-knowledge"></a>
@@ -120,25 +196,13 @@ Not sure what to ask? Open **What your AI can do** in the App for the exact text
120
196
  - **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.
121
197
  - **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).
122
198
 
123
- ### Sources and imports
124
-
125
- | Bring in | How you can use it |
126
- | --- | --- |
127
- | Markdown, text, text-based PDFs, or a folder | Search and cite the imported text. Import a folder once, or keep it in sync as its files change. |
128
- | An Obsidian vault or a Logseq graph | Search and cite existing pages through a read-only connection. Keep it in sync to follow changes in the background, or import it once; nothing is written back. |
129
- | Web excerpts with a URL | Paste the text and its URL to save searchable material with a link to the original. |
130
- | ChatGPT or Claude export ZIPs | Retrieve earlier conversation text, including a last message that got no reply, and cite it as context; imports are snapshots, not live account connections. |
131
- | Existing memories as text | Save preferences, decisions, or lessons as individual memories. |
132
-
133
- Scanned PDFs need text extraction first; chat attachments are not imported. [Import guide](docs/import-guide.md).
134
-
135
199
  <a id="daily-workflow"></a>
136
200
 
137
201
  <br>
138
202
 
139
203
  ## In everyday use
140
204
 
141
- Save new findings and progress as you work, then pick up where you left off next time.
205
+ Save new findings and progress as you work, and start the next session with them.
142
206
 
143
207
  <p align="center">
144
208
  <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%">
@@ -146,8 +210,8 @@ Save new findings and progress as you work, then pick up where you left off next
146
210
 
147
211
  Simplified workflow. Plugin commands and page organization are optional, with no fixed sequence.
148
212
 
149
- - **Work in the App.** Add material, write or edit pages, follow citations, and review proposed changes without connecting AI.
150
- - **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. When a page cites its sources as `[n]`, Wenlan checks the cited source supports each sentence, and does not save the page when too many citations fail.
213
+ - **Work in the App.** Add material, write or edit pages, follow citations, and review proposed changes without connecting AI. The menu bar (or tray) icon opens a small panel with what needs you, your latest pages, and Quick capture.
214
+ - **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. When a page cites its sources as `[n]`, Wenlan compares each cited sentence with its source and refuses the page when most of its citations don't match.
151
215
  - **Keep what you learn.** Save a decision or lesson, with its reasons and sources, in the App or through your AI (`/capture`).
152
216
  - **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`).
153
217
 
@@ -168,68 +232,26 @@ Simplified workflow. Plugin commands and page organization are optional, with no
168
232
 
169
233
  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.
170
234
 
235
+ <a id="if-you-already-use-claude-code-on-your-notes"></a>
236
+
237
+ ### If you already use Claude Code or Codex on your notes
238
+
239
+ Keep doing that. Wenlan connects to the same AI tool and adds the checks a folder of Markdown can't do by itself: a page refused when most of its citations don't match the source, flags when sources change, review for AI edits to pages you wrote, and it never edits your existing notes without your OK.
240
+
171
241
  **Use it for:**
172
242
 
173
243
  - **Development:** Bring earlier technical decisions, lessons, and acceptance criteria into implementation and debugging.
174
244
  - **Products and websites:** Use customer research, positioning, and design principles to draft specifications or build pages.
175
- - **Research and learning:** Turn reading material and saved findings into cited reports or study notes you can reuse.
245
+ - **Research and learning:** Turn reading material and saved findings into cited reports or study guides you can reuse.
176
246
 
177
247
  **Retrieval and connections:** Plugins guide retrieval and saving; MCP connections expose the tools for your AI to call.
178
248
 
179
- - **[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.
249
+ - **[Local hybrid retrieval](docs/technical-foundations.md#retrieval-pipeline):** Find exact terms and similar meaning with SQLite FTS5 and BGE embeddings in a libSQL DiskANN vector index, fused by weighted Reciprocal Rank Fusion (RRF); base search needs no API key.
180
250
  - **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.
181
251
  - **Space-scoped retrieval:** Select a Space to limit returned knowledge to the relevant project or personal collection.
182
252
 
183
253
  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).
184
254
 
185
- <a id="code-repository-wiki"></a>
186
-
187
- <br>
188
-
189
- ## A wiki for your code repository
190
-
191
- Run `/wenlan wiki` (`$wenlan wiki` in Codex) in a repository. Your AI tool plans the wiki from the repository itself: an overview that lists every page, then one page for each part or flow a newcomer needs. A small tool gets a few pages, a large monorepo many more. A rerun writes only the pages that are missing. `/wenlan wiki` replaces `/wenlan map`, with no alias for the old name.
192
-
193
- - **Tied to the code:** Each key sentence records the code lines it was read from. When that code changes, the page shows what changed with one Review button, and steep brings the page up to date.
194
- - **In the repository as a pull request:** The GitHub button on a Space connects it to its repository and puts the pages that rely on that code in the repository's `wiki/` folder as a pull request. Run it from the button, or turn on the daily update. The same pull request fixes sentences in the repository's own docs that the code no longer agrees with, for you to review.
195
- - **Your edits stay:** A wiki page someone edited in the repository keeps that edit. Pages that cite your memories or chats stay out of the repository.
196
-
197
- <a id="what-makes-wenlan-distinct"></a>
198
- <a id="why-is-wenlan-different"></a>
199
- <a id="two-lifecycles"></a>
200
- <a id="two-lifecycles-one-maintained-knowledge-system"></a>
201
- <a id="local-markdown"></a>
202
- <a id="atomic-memory"></a>
203
- <a id="maintained-page"></a>
204
- <a id="local-markdown-that-works-with-obsidian"></a>
205
-
206
- <a id="keep-knowledge-current-and-preserve-history"></a>
207
-
208
- <br>
209
-
210
- ## Steep: keep knowledge useful as it changes
211
-
212
- <p align="center">
213
- <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%">
214
- </p>
215
- <p>Illustration based on current update behavior; not an App screenshot.</p>
216
-
217
- 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.
218
-
219
- Choose one of two modes in Settings:
220
-
221
- - **On demand** (new installs start here): when your AI tool saves or writes into Wenlan, it steeps as it goes, with no command needed. To finish the rest at once, run `/wenlan steep`: it writes new pages from imported material and brings out-of-date pages up to date.
222
- - **Automatic:** Wenlan steeps in the background with the model you assign.
223
-
224
- What steep does:
225
-
226
- - **Enrich memories:** Add types, structured details, search cues, and graph links so individual findings are easier to retrieve in context.
227
- - **Follow the evidence:** Changed sources, memories, or cited code 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.
228
- - **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.
229
- - **Review lock:** With **Lock pages I've written** on, as it is for new installs, AI changes to pages you wrote or edited wait for your review. Pages AI wrote keep updating.
230
-
231
- [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.
232
-
233
255
  <a id="architecture"></a>
234
256
 
235
257
  <br>
@@ -238,6 +260,8 @@ What steep does:
238
260
 
239
261
  **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.
240
262
 
263
+ **Built with** Rust for the local service, CLI, and MCP server, and Tauri with React and TypeScript for the desktop app.
264
+
241
265
  <p align="center">
242
266
  <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%">
243
267
  </p>
@@ -271,9 +295,14 @@ These LongMemEval (LME) snapshots measure retrieval of saved knowledge, not AI a
271
295
  | LME_S (deep, 90 Q) | 87.7% | 0.815 | 0.822 |
272
296
  <!-- EVAL_SNAPSHOT_END -->
273
297
 
298
+ On a 10,000-page test (generated pages, M2 Pro with 16 GB, v0.20.0), App search answered in 11 to 50 ms, restart took under 0.3 s, and memory peaked at about 1.2 GB. With the search fix in 0.20.1, AI-tool search found all 30 rare test words in that library.
299
+
300
+ Importing a 10,000-note Obsidian vault in 0.20.2 (invented notes, M2 Pro Mac with 16 GB, debug build, Claude Code writing the pages): searchable in 15 s, the first page in about 2 minutes, and 8 cited pages in about 4 minutes.
301
+
274
302
  [Evaluation method and benchmark details](docs/eval/README.md).
275
303
 
276
304
  <a id="learn-more"></a>
305
+ <a id="whats-new"></a>
277
306
 
278
307
  <a id="offline-queue-outbox"></a>
279
308
 
@@ -287,6 +316,7 @@ These LongMemEval (LME) snapshots measure retrieval of saved knowledge, not AI a
287
316
  - [Local files, backups, and offline use](docs/setup-and-data.md)
288
317
  - [Privacy](docs/PRIVACY.md)
289
318
  - [Doctor and issue reports](https://wenlan.app/docs/diagnostics-and-issue-reports)
319
+ - [What's new in each release](CHANGELOG.md)
290
320
  - [Full documentation index](docs/README.md)
291
321
 
292
322
  <br>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "wenlan-mcp",
3
- "version": "0.20.2",
4
- "description": "MCP server for Wenlan, a living knowledge base your agents build as they work",
3
+ "version": "0.20.4",
4
+ "description": "MCP server for Wenlan, a living wiki your AI tools write, keep current, and cite",
5
5
  "keywords": [
6
6
  "mcp",
7
7
  "ai-memory",