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.
- package/README.md +126 -96
- 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:
|
|
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
|
-
|
|
10
|
-
|
|
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/
|
|
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 started</a> ·
|
|
25
|
-
<a href="#what-can-i-bring-in">
|
|
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
|
-
|
|
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://
|
|
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
|
|
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
|
-
- **
|
|
45
|
-
- **
|
|
46
|
-
- **
|
|
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)
|
|
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?
|
|
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.
|
|
70
|
+
### 2. Bring in your material
|
|
71
71
|
|
|
72
|
-
Create a page
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
>
|
|
161
|
+
<br>
|
|
87
162
|
|
|
88
|
-
|
|
163
|
+
## A wiki for your code repository
|
|
89
164
|
|
|
90
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
|
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
|
|
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.
|
|
4
|
-
"description": "MCP server for Wenlan, a living
|
|
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",
|