wenlan-mcp 0.19.1 → 0.19.2
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 +149 -259
- 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
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
<p align="center">
|
|
9
|
+
Wenlan organizes scattered notes, documents, and conversations into a knowledge base that stays current and links back to its sources,<br>
|
|
10
|
+
so you and AI tools like Claude and Codex can reuse what you learned without explaining past decisions again.
|
|
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,224 @@ 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?
|
|
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 started</a> ·
|
|
24
|
-
<a href="#what-
|
|
25
|
-
<a href="#
|
|
26
|
-
<a href="
|
|
27
|
-
<a href="#evaluation">Evaluation</a> ·
|
|
28
|
-
<a href="#learn-more">Learn 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
|
-
|
|
30
|
+
<!-- R113 walkthrough: approved 0.5-second cover; 1080p; original video/audio and masters retained. -->
|
|
32
31
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
https://github.com/user-attachments/assets/5e661389-d7ea-4a36-a645-2b1ec2a92d32
|
|
33
|
+
|
|
34
|
+
<p>Cover: localized composite of App views with demo data; the graph is illustrative, not a native three-column layout.</p>
|
|
36
35
|
|
|
37
36
|
<a id="quickstart"></a>
|
|
38
37
|
<a id="start-in-30-seconds"></a>
|
|
39
|
-
|
|
40
|
-
## Get started
|
|
41
|
-
|
|
42
38
|
<a id="start-with-the-app"></a>
|
|
43
39
|
<a id="open-the-wiki"></a>
|
|
44
40
|
<a id="desktop-app"></a>
|
|
45
|
-
|
|
46
|
-
### 1. Download and open Wenlan
|
|
47
|
-
|
|
48
|
-
[Download the app](https://github.com/wenlan-app/wenlan/releases/latest), then open it:
|
|
49
|
-
|
|
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).
|
|
55
|
-
|
|
56
41
|
<a id="claude-code-in-30-seconds"></a>
|
|
57
|
-
|
|
58
42
|
<a id="codex-plugin"></a>
|
|
59
|
-
|
|
60
43
|
<a id="mcp-setup"></a>
|
|
61
44
|
<a id="mcp-clients"></a>
|
|
62
45
|
|
|
63
|
-
|
|
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.
|
|
70
|
-
|
|
71
|
-
### 4. Connect AI tools when you want AI help
|
|
72
|
-
|
|
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.
|
|
74
|
-
|
|
75
|
-
<details>
|
|
76
|
-
<summary>Need help connecting? Ask your AI</summary>
|
|
77
|
-
|
|
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:
|
|
79
|
-
|
|
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
|
|
83
|
-
|
|
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
|
-
```
|
|
87
|
-
|
|
88
|
-
</details>
|
|
89
|
-
|
|
90
|
-
To organize a topic with a connected AI, open a work conversation worth keeping and ask:
|
|
91
|
-
|
|
92
|
-
> Turn the conclusions, reasoning, and sources about [topic] in this conversation into a Wenlan page with source citations.
|
|
93
|
-
|
|
94
|
-
You can also ask your AI to organize a topic from material you imported into a page.
|
|
46
|
+
<br>
|
|
95
47
|
|
|
96
|
-
|
|
97
|
-
|
|
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).
|
|
99
|
-
|
|
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.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
<a id="what-does-wenlan-build"></a>
|
|
104
|
-
<a id="why-it-compounds"></a>
|
|
48
|
+
## Get started
|
|
105
49
|
|
|
106
|
-
|
|
50
|
+
Save your material in Wenlan so your everyday AI tools can use it to answer questions and get work done.
|
|
107
51
|
|
|
108
|
-
|
|
52
|
+
### 1. Download and open Wenlan
|
|
109
53
|
|
|
110
|
-
|
|
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.
|
|
54
|
+
[Download the desktop app](https://github.com/wenlan-app/wenlan/releases/latest) (macOS Apple Silicon or Windows x64), install it, and open it.
|
|
113
55
|
|
|
114
|
-
|
|
56
|
+
Prefer the terminal? [Use Wenlan through the CLI or AI tools](docs/setup-and-data.md#installation).
|
|
115
57
|
|
|
116
|
-
|
|
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>
|
|
58
|
+
Optionally enable Steep with a [local model](docs/steep.md#enable-steep) to organize memories and update knowledge pages in the background.
|
|
122
59
|
|
|
123
|
-
|
|
60
|
+
### 2. Create a page or import existing material
|
|
124
61
|
|
|
125
|
-
|
|
62
|
+
Create a page in Wenlan, connect an Obsidian vault, or import earlier AI conversations and memories. [Import guide](docs/import-guide.md).
|
|
126
63
|
|
|
127
|
-
|
|
64
|
+
### 3. Connect an AI tool when you want
|
|
128
65
|
|
|
129
|
-
|
|
66
|
+
| AI tool | Connection | Setup |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| Claude Code / Claude Desktop | Plugin / MCP | [Claude guide](docs/setup-with-ai.md#claude-code) |
|
|
69
|
+
| ChatGPT Desktop (Codex), Codex CLI | Plugin | [Codex guide](docs/setup-with-ai.md#codex) |
|
|
70
|
+
| Cursor, VS Code, Gemini CLI, Muse Code | MCP | [MCP guide](docs/setup-with-ai.md#mcp-only-setup-and-other-clients) |
|
|
130
71
|
|
|
131
|
-
|
|
72
|
+
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. Type what you want after it, such as `/wenlan open my note on the release plan`, to reach everything else.
|
|
132
73
|
|
|
133
|
-
|
|
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>
|
|
138
|
-
</p>
|
|
74
|
+
Imported material is ready to use; you do not need to create a page first. Ask your AI:
|
|
139
75
|
|
|
140
|
-
|
|
141
|
-
<a id="retrieval-across-words-meaning-and-connections"></a>
|
|
76
|
+
> Use what I’ve saved in Wenlan to help me with this task: …
|
|
142
77
|
|
|
143
|
-
|
|
78
|
+
<a id="daily-workflow"></a>
|
|
144
79
|
|
|
145
|
-
<
|
|
146
|
-
<a id="why-is-wenlan-different"></a>
|
|
147
|
-
<a id="two-lifecycles"></a>
|
|
148
|
-
<a id="two-lifecycles-one-maintained-knowledge-system"></a>
|
|
80
|
+
<br>
|
|
149
81
|
|
|
150
|
-
|
|
82
|
+
## In everyday use
|
|
151
83
|
|
|
152
|
-
|
|
84
|
+
Save new findings and progress as you work, then pick up where you left off next time.
|
|
153
85
|
|
|
154
86
|
<p align="center">
|
|
155
|
-
<
|
|
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>
|
|
87
|
+
<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
88
|
</p>
|
|
160
89
|
|
|
161
|
-
|
|
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).
|
|
167
|
-
|
|
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.
|
|
90
|
+
Simplified workflow. Plugin commands and page organization are optional, with no fixed sequence.
|
|
171
91
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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.
|
|
92
|
+
- **Work in the App.** Add material, write or edit pages, follow citations, and review proposed changes without connecting AI.
|
|
93
|
+
- **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.
|
|
94
|
+
- **Keep what you learn.** Save a decision or lesson, with its reasons and sources, in the App or through your AI (`/capture`).
|
|
95
|
+
- **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`).
|
|
177
96
|
|
|
97
|
+
**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).
|
|
178
98
|
|
|
99
|
+
<a id="what-does-wenlan-build"></a>
|
|
100
|
+
<a id="why-it-compounds"></a>
|
|
101
|
+
<a id="what-is-this"></a>
|
|
179
102
|
<a id="what-you-get"></a>
|
|
180
103
|
<a id="what-can-it-do"></a>
|
|
181
104
|
<a id="what-can-i-bring-in"></a>
|
|
105
|
+
<a id="knowledge-graph"></a>
|
|
182
106
|
|
|
183
|
-
|
|
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
|
|
107
|
+
<a id="browse-and-organize-your-knowledge"></a>
|
|
194
108
|
|
|
195
|
-
|
|
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.
|
|
109
|
+
<a id="connect-your-knowledge"></a>
|
|
198
110
|
|
|
199
|
-
|
|
111
|
+
<br>
|
|
200
112
|
|
|
201
|
-
|
|
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.
|
|
113
|
+
## Organize scattered material into knowledge
|
|
207
114
|
|
|
208
|
-
|
|
115
|
+
**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.
|
|
209
116
|
|
|
210
|
-
|
|
117
|
+
- **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.
|
|
118
|
+
- **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.
|
|
119
|
+
- **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).
|
|
211
120
|
|
|
212
|
-
|
|
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.
|
|
121
|
+
### Sources and imports
|
|
217
122
|
|
|
218
|
-
|
|
123
|
+
| Bring in | How you can use it |
|
|
124
|
+
| --- | --- |
|
|
125
|
+
| Markdown, text, text-based PDFs, or a folder | Search and cite the imported text; refresh connected file sources from disk. |
|
|
126
|
+
| An Obsidian vault | Search and cite existing notes through a read-only connection. Refresh on demand; nothing is written back. |
|
|
127
|
+
| Web excerpts with a URL | Paste the text and its URL to save searchable material with a link to the original. |
|
|
128
|
+
| ChatGPT or Claude export ZIPs | Retrieve earlier conversation text and cite it as context; imports are snapshots, not live account connections. |
|
|
129
|
+
| Existing memories as text | Save preferences, decisions, or lessons as individual memories. |
|
|
219
130
|
|
|
220
|
-
|
|
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.
|
|
131
|
+
Scanned PDFs need text extraction first; chat attachments are not imported. [Import guide](docs/import-guide.md).
|
|
224
132
|
|
|
225
|
-
|
|
133
|
+
<a id="explore-your-personal-knowledge-graph"></a>
|
|
226
134
|
|
|
135
|
+
<p align="center">
|
|
136
|
+
<img src="./docs/assets/wenlan-personal-graph.png" alt="Wenlan knowledge graph with illustrative regions for personal interests, research, and development" width="100%">
|
|
137
|
+
</p>
|
|
138
|
+
<p>App nodes and connections; translated labels and illustrative regions.</p>
|
|
227
139
|
|
|
228
140
|
<a id="how-wenlan-works"></a>
|
|
229
141
|
<a id="how-does-it-work"></a>
|
|
230
142
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
143
|
+
<a id="what-wenlan-is-not"></a>
|
|
144
|
+
<a id="retrieval"></a>
|
|
145
|
+
<a id="retrieval-across-words-meaning-and-connections"></a>
|
|
234
146
|
|
|
235
|
-
|
|
147
|
+
<a id="use-your-knowledge-with-ai"></a>
|
|
236
148
|
|
|
237
|
-
|
|
149
|
+
<br>
|
|
238
150
|
|
|
239
|
-
|
|
151
|
+
## Put your knowledge to work with AI
|
|
240
152
|
|
|
241
|
-
|
|
153
|
+
An agent can read files and write text. Wenlan adds a **shared knowledge base maintained across tasks and AI tools**: retrieve earlier decisions with their supporting material, save new work, and keep using it as the evidence changes.
|
|
242
154
|
|
|
243
|
-
|
|
155
|
+
**Use it for:**
|
|
244
156
|
|
|
245
|
-
|
|
157
|
+
- **Development:** Bring earlier technical decisions, lessons, and acceptance criteria into implementation and debugging.
|
|
158
|
+
- **Products and websites:** Use customer research, positioning, and design principles to draft specifications or build pages.
|
|
159
|
+
- **Research and learning:** Turn reading material and saved findings into cited reports or study notes you can reuse.
|
|
246
160
|
|
|
247
|
-
|
|
161
|
+
**Retrieval and connections:** Plugins guide retrieval and saving; MCP connections expose the tools for your AI to call.
|
|
248
162
|
|
|
249
|
-
|
|
163
|
+
- **[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.
|
|
164
|
+
- **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.
|
|
165
|
+
- **Space-scoped retrieval:** Select a Space to limit returned knowledge to the relevant project or personal collection.
|
|
250
166
|
|
|
251
|
-
|
|
167
|
+
**Coming soon:** Coding repository support in Spaces.
|
|
252
168
|
|
|
253
|
-
|
|
169
|
+
<p align="center">
|
|
170
|
+
<img src="./docs/assets/wenlan-knowledge-to-work.png" alt="Let AI continue from what you already know: keyword, semantic and Graph retrieval" width="100%">
|
|
171
|
+
</p>
|
|
172
|
+
<p>Fictional example, not a product test; Wenlan adds context alongside Claude’s native memory.</p>
|
|
254
173
|
|
|
255
|
-
|
|
174
|
+
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. This feature is experimental; queries and results pass through a relay. See the [privacy limits](docs/PRIVACY.md#pre-release-standalone-wenlan-relay-connector).
|
|
256
175
|
|
|
257
|
-
|
|
176
|
+
<a id="what-makes-wenlan-distinct"></a>
|
|
177
|
+
<a id="why-is-wenlan-different"></a>
|
|
178
|
+
<a id="two-lifecycles"></a>
|
|
179
|
+
<a id="two-lifecycles-one-maintained-knowledge-system"></a>
|
|
180
|
+
<a id="local-markdown"></a>
|
|
181
|
+
<a id="atomic-memory"></a>
|
|
182
|
+
<a id="maintained-page"></a>
|
|
183
|
+
<a id="local-markdown-that-works-with-obsidian"></a>
|
|
258
184
|
|
|
259
|
-
|
|
185
|
+
<a id="keep-knowledge-current-and-preserve-history"></a>
|
|
260
186
|
|
|
261
|
-
|
|
187
|
+
<br>
|
|
262
188
|
|
|
263
|
-
|
|
264
|
-
<summary>Plugin commands and maintenance</summary>
|
|
189
|
+
## Steep: keep knowledge useful as it changes
|
|
265
190
|
|
|
266
|
-
|
|
267
|
-
- **Check and review:** `/lint` checks knowledge health; `/curate` reviews pending captures or revisions.
|
|
191
|
+
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.
|
|
268
192
|
|
|
269
|
-
|
|
193
|
+
- **Enrich memories:** Add types, structured details, search cues, and graph links so individual findings are easier to retrieve in context.
|
|
194
|
+
- **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.
|
|
195
|
+
- **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.
|
|
270
196
|
|
|
271
|
-
[
|
|
197
|
+
[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.
|
|
272
198
|
|
|
273
|
-
|
|
199
|
+
<p align="center">
|
|
200
|
+
<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 note that is either updated automatically or sent for review." width="100%">
|
|
201
|
+
</p>
|
|
202
|
+
<p>Illustration based on current update behavior; not an App screenshot.</p>
|
|
274
203
|
|
|
275
|
-
<a id="
|
|
204
|
+
<a id="architecture"></a>
|
|
276
205
|
|
|
277
|
-
|
|
206
|
+
<br>
|
|
278
207
|
|
|
279
|
-
|
|
208
|
+
## Architecture
|
|
280
209
|
|
|
281
|
-
|
|
210
|
+
**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.
|
|
282
211
|
|
|
283
|
-
|
|
212
|
+
<p align="center">
|
|
213
|
+
<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%">
|
|
214
|
+
</p>
|
|
284
215
|
|
|
285
|
-
|
|
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).
|
|
216
|
+
Architecture overview. [Retrieval, evidence, and models](docs/technical-foundations.md).
|
|
288
217
|
|
|
289
|
-
|
|
218
|
+
<a id="models-and-privacy"></a>
|
|
290
219
|
|
|
291
|
-
|
|
220
|
+
<br>
|
|
292
221
|
|
|
293
|
-
|
|
222
|
+
## Data and privacy
|
|
294
223
|
|
|
295
|
-
|
|
224
|
+
**Export your wiki:** Export eligible pages as an Open Knowledge Format (OKF) wiki.
|
|
296
225
|
|
|
297
|
-
|
|
226
|
+
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
227
|
|
|
228
|
+
[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
229
|
|
|
300
230
|
<a id="evaluation"></a>
|
|
301
231
|
|
|
232
|
+
<br>
|
|
233
|
+
|
|
302
234
|
## Evaluation
|
|
303
235
|
|
|
304
|
-
|
|
236
|
+
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
237
|
|
|
306
238
|
<!-- EVAL_SNAPSHOT_START -->
|
|
307
239
|
| Benchmark | Recall@5 | MRR | NDCG@10 |
|
|
@@ -310,94 +242,52 @@ This is a retrieval-only snapshot, not a claim about end-to-end answer quality.
|
|
|
310
242
|
| LME_S (deep, 90 Q) | 87.7% | 0.815 | 0.822 |
|
|
311
243
|
<!-- EVAL_SNAPSHOT_END -->
|
|
312
244
|
|
|
245
|
+
[Evaluation method and benchmark details](docs/eval/README.md).
|
|
313
246
|
|
|
314
247
|
<a id="learn-more"></a>
|
|
315
248
|
|
|
316
|
-
|
|
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
|
|
249
|
+
<a id="offline-queue-outbox"></a>
|
|
336
250
|
|
|
337
|
-
|
|
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.
|
|
251
|
+
<br>
|
|
343
252
|
|
|
344
|
-
|
|
253
|
+
## Learn more
|
|
345
254
|
|
|
346
|
-
- [
|
|
347
|
-
- [
|
|
348
|
-
- [
|
|
255
|
+
- [Get started and install](docs/setup-and-data.md#installation)
|
|
256
|
+
- [Connect an AI tool](docs/setup-with-ai.md)
|
|
257
|
+
- [Sources and imports](docs/import-guide.md)
|
|
258
|
+
- [Local files, backups, and offline use](docs/setup-and-data.md)
|
|
259
|
+
- [Privacy](docs/PRIVACY.md)
|
|
260
|
+
- [Doctor and issue reports](https://wenlan.app/docs/diagnostics-and-issue-reports)
|
|
261
|
+
- [Full documentation index](docs/README.md)
|
|
349
262
|
|
|
263
|
+
<br>
|
|
350
264
|
|
|
351
265
|
## Contributing
|
|
352
266
|
|
|
353
|
-
|
|
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).
|
|
267
|
+
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
268
|
|
|
269
|
+
For code and docs, see [Contributing](.github/CONTRIBUTING.md), [Security](.github/SECURITY.md), and the [Code of Conduct](.github/CODE_OF_CONDUCT.md).
|
|
368
270
|
|
|
369
271
|
<a id="code-signing-policy"></a>
|
|
370
272
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
macOS desktop releases are Developer ID signed and notarized. Windows installers are not signed yet.
|
|
273
|
+
<br>
|
|
374
274
|
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
[Platform signing details](docs/code-signing.md) · [Privacy policy](docs/PRIVACY.md).
|
|
275
|
+
## Code signing policy
|
|
378
276
|
|
|
277
|
+
See the [platform signing and notarization details](docs/code-signing.md).
|
|
379
278
|
|
|
380
279
|
<a id="license"></a>
|
|
381
280
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
Wenlan uses two licenses, one per part of the repository.
|
|
281
|
+
<br>
|
|
385
282
|
|
|
386
|
-
|
|
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.
|
|
283
|
+
## License
|
|
390
284
|
|
|
285
|
+
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
286
|
|
|
392
287
|
<a id="acknowledgments"></a>
|
|
393
288
|
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
Wenlan (文瀾) takes its name from 文瀾閣, an imperial library that held 四庫全書 as part of one of China's largest book collections.
|
|
289
|
+
<br>
|
|
397
290
|
|
|
398
|
-
|
|
291
|
+
## Lineage and peers
|
|
399
292
|
|
|
400
|
-
- [Karpathy
|
|
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.
|
|
293
|
+
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).
|