内容
<div align="center">
# 🧠 知识管理系统
**你的第二大脑,由大型语言模型策划。书籍输入,结构化维基输出。**
[](LICENSE)
[](https://nodejs.org)
[](https://modelcontextprotocol.io)
<br>

</div>
---
`mnemex` 是一个个人知识系统。你告诉大型语言模型 *"吸收这本书"*,它会读取整本书并将其整理成一个结构化、相互关联的维基:
- **来源** — 书籍、文章、论文(元数据 + 章节摘要 + 提取的声明)
- **实体** — 被提及的人物、公司和工具
- **概念** — 思想和框架,每个都有 `何时使用` / `何时不使用`、相互关联和来源计数
- **综合** — 多来源理论 *你* 衍生("这五本关于谈判的书如何真正结合在一起?")
所有内容都是纯 Markdown,可版本控制,本地托管,可供大型语言模型读取。
它是 RAG 的对立面:与其在每次查询时重新发现知识,不如 **编译一次知识并保持更新**。每次吸收都使其更加丰富。
> 灵感来自 [Karpathy 的 LLM Wiki 想法](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) — 实现并简化。
---
## 快速开始(≈5 分钟)
```bash
curl -fsSL https://raw.githubusercontent.com/Daniil-Sokolskiy/mnemex/main/install.sh | bash
```
这会安装 MCP 服务器 + CLI,在 `~/mnemex` 处搭建一个维基,并为你的客户端打印设置说明 — **Claude Desktop** (粘贴配置块)或 **Claude Code** (运行两个 `claude mcp add` 命令)。这些是本地服务器,因此 Web 应用程序(claude.ai)无法直接使用它们。连接你的客户端,然后说:
> **"帮助我吸收我的第一本书 — 马库斯·奥勒留的《沉思录》"**
在代理读取书籍并归档时,观察 `index.md` 的增长。
<details>
<summary>手动安装</summary>
```bash
npm install -g @mnemex/library-mcp @mnemex/cli
npx playwright install chromium # 用于 Anna's Archive 搜索
mnemex init ~/mnemex # 搭建维基
mnemex doctor # 验证依赖
mnemex mcp install --wiki ~/mnemex # 为 Desktop + Claude Code 打印设置
```
`mnemex mcp install` 为 Claude Desktop 和 Claude Code 打印复制粘贴设置,并且从不静默编辑任何配置文件。
</details>
---
## 系统组件
| 包 | 描述 |
|---|---|
| [`@mnemex/library-mcp`](packages/library-mcp) | MCP 服务器,用于从 Project Gutenberg 和 Anna's Archive 搜索和下载书籍到你的维基。包括一个 **基于 Playwright 的 Anna's 搜索**,可与他们当前的客户端渲染页面(纯 HTTP 抓取不再返回结果)配合使用。 |
| [`@mnemex/cli`](packages/cli) | `mnemex init` / `doctor` / `mcp install` — 搭建维基并连接服务器。 |
| [`apps/wiki-template`](apps/wiki-template) | 启动器维基:`CLAUDE.md` 操作手册、页面模板、吸收脚本、空结构。 |
| **搜索** via [`qmd`](https://www.npmjs.com/package/@tobilu/qmd) | mnemex 将 `qmd`(本地 BM25 + 向量引擎)作为 `mnemex-search` MCP 服务器连接到你的维基。`mnemex setup-search` 安装并索引它;然后代理具有 `brain.query` 进行混合检索。 |
### 从 Anna's 下载:免费 vs 付费
搜索始终有效且无需帐户。**下载** 有两条路径:
| | 方法 | 需要 |
|---|---|---|
| **免费** | 搜索结果包括 `download_page_url`。在浏览器中打开它并使用 Anna's 免费 "慢速下载"(短暂等待计时器,有时需要检查)。 | 无 |
| **自动化** | `library_annas_download` 直接将文件获取到你的维基,无需浏览器。 | 付费 Anna's 会员资格 — 设置 `ANNAS_ARCHIVE_KEY`(你的帐户的*密钥*) |
自动化路径使用 Anna's `fast_download` API,**需要会员密钥** — 这是 Anna's 的限制,而不是 mnemex 的。免费下载存在但需要通过浏览器慢速下载页面(mnemex 无法完全自动化:有等待计时器和偶尔的检查,绕过检查超出了范围)。因此,没有密钥你仍然可以获得每个搜索结果以及一个一键链接来免费获取文件。
Project Gutenberg 下载始终免费且全自动 — 无需密钥,无需浏览器。
---
## 工作原理
```
你: "吸收 原子习惯"
│
▼
library-mcp ──► 搜索 Gutenberg + Anna's ──► 下载 ──► raw/books/<slug>/book.md
│
▼
大型语言模型代理读取 CLAUDE.md,然后读取书籍,然后:
├─ 编写 wiki/sources/Atomic-Habits-Clear-2018.md
├─ 创建/更新 wiki/entities/ (James-Clear 等)
├─ 创建/更新 wiki/concepts/ (Habit-Loop, Identity-Based-Habits, …)
├─ 更新 index.md (计数 + 目录)
└─ 追加 log.md
```
你的维基根目录中的 `CLAUDE.md` 是代理的操作手册 — 命名约定、前端元数据模式、吸收/查询/检查工作流程以及关系词汇(`建立在` / `包含` / `对比` …)。
## 方法论
维基结构是有倾向性的。使其可扩展的模式:
- **[两阶段吸收](docs/methodology/two-phase-ingest.md)** — 将内容写入(子代理)与记账(父代理)分开,以避免处理大书籍时的超时。
- **[集群吸收](docs/methodology/cluster-pattern.md)** — 将 5 本主题书籍一起吸收,并带有交叉链接 "兄弟钩子",以便概念快速成熟。
- **[状态生命周期](docs/methodology/status-lifecycle.md)** — `stub` → `draft` → `mature` (3+ 来源,已审查)。
## 要求
- Node.js ≥ 20
- `pandoc` (epub/pdf → markdown)
- 通过 Playwright 的 Chromium(用于 Anna's 搜索)
- 支持 MCP 的大型语言模型客户端(Claude Desktop, Claude Code, Cowork, …)
## ⚠️ 法律
`library-mcp` 包括一个用于 Anna's Archive 的客户端,正在进行法律诉讼。该项目托管和分发任何内容;您负责在您所在司法管辖区内遵守版权法。参见 [docs/annas-disclaimer.md](docs/annas-disclaimer.md)。对于完全无版权的工作流程,仅使用 Project Gutenberg 工具(~70,000 篇公共领域文本)。
## 贡献
欢迎 PR — 参见 [docs/contributing.md](docs/contributing.md)。`packages/library-mcp/src/annas.ts` 中的 Anna's DOM 解析器在 Anna's 更改其标记时需要偶尔更新;这是最常见的维护任务。
## 许可证
[MIT](LICENSE)