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