Markdown AI知识引擎

Larch是一个本地优先、轻量级的Markdown知识库引擎,专为AI代理和大型语言模型提供高速全文搜索和REST API服务。

  • by Joker-Jelly
  • Rust
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Joker-Jelly/larch

使用说明

落叶松🌲

本地首个Markdown AI知识引擎。

Larch是一个速度极快、重量轻、本地优先的知识库引擎,专门用于通过 模型上下文协议(MCP) 以及标准REST API。

内置Rust,它使用 坦提维 用于高性能全文搜索,旨在在操作系统的后台安静运行,将本地文件夹变成一个即时可查询的人工智能大脑。


🚀 特性

  • 本地优先&安全:一切都在本地运行。没有云同步,没有矢量数据库,没有隐藏的API成本。
  • 闪电快速搜索:由Tantivy提供支持,提供基于BM25令牌的全文检索,专为精确的关键字匹配和快速的上下文检索而定制。
  • MCP服务器本机:显示标准MCP工具(search, document)允许与Claude Desktop、Cursor或任何兼容MCP的LLM前端无缝集成。
  • REST API&观察者:具有文件系统监视功能的内置HTTP服务器(inotify/FSEvents).在Obsidian或VSCode中修改您的markdown文件,它们会立即被索引。
  • 智能分块:自动解析Markdown Frontmatter(YAML),并按标题层次结构拆分文档,保留语义上下文。

📦 安装

Larch提供预编译的独立二进制文件。你不需要安装Rust。

快速安装(macOS/Linux)

安装Larch最简单的方法是通过我们的官方安装脚本:

curl -LsSf https://raw.githubusercontent.com/Joker-Jelly/larch/master/install.sh | sh

手册下载

  1. 去 发布页面 在GitHub上。
  2. 下载适用于您的操作系统和体系结构的二进制存档。
  3. 提取 larch 可执行文件并将其移动到您的路径(例如。 /usr/local/bin).

🛠️ 用法

落叶松用途 ~/.larch 作为默认的Vault(知识库文件夹)。

1.初始化您的保险库

larch init

这将创建 .larch 文件夹和所需的内部目录(assets/, index/).

2.导入现有笔记

将单个文件或整个笔记目录导入vault。

larch import ~/Notes/draft.md
# Or import a whole folder recursively
larch import ~/Documents/MyBrain/

3.搜索和检索

使用CLI快速验证您的笔记是否已编入索引:

larch search "Rust ownership"
# Filter by specific tag or directory
larch search "Rust" --tag "programming" --dir "tech/notes"

# Read specific file contents
larch document inbox/draft.md --start-line 10 --end-line 20

4.探索您的保险库

Larch允许您轻松可视化保险库的结构和标签:

# View your vault as a directory tree
larch tree

# View all tags and their associated files
larch tag ls

# Find files associated with a specific tag
larch tag ls "architecture"

5.启动引擎(REST API和文件观察程序)

这将启动文件观察程序(自动索引新更改),并在端口上公开HTTP API 3000.

larch serve --port 3000

提示:使用以下命令在后台运行此程序 nohup larch serve > ~/.larch/logs/larch.log 2>&1 & 或通过以下方式进行管理 systemd/pm2.

🛠️ 开发(从源代码构建)

如果你更喜欢自己编译Larch或想为项目做出贡献,你需要 锈蚀和货物 安装:

git clone https://github.com/Joker-Jelly/larch.git
cd larch
cargo build --release

🤖 MCP集成(模型上下文协议)

Larch是一个原生MCP服务器,允许AI代理(如Claude或Cursor)自主探索您的本地知识。它通过以下方式实现了MCP SDK stdio.

要将Larch与Claude Desktop一起使用,请执行以下操作:

编辑您的 claude_desktop_config.json:

{
  "mcpServers": {
    "larch": {
      "command": "larch",
      "args": ["mcp"]
    }
  }
}

可用的MCP工具:

  • search:使用关键字搜索知识库,可选 tag 和 dir 过滤器。
  • document:从特定的Markdown文件中读取精确的行范围。
  • tree:获取vault的完整目录结构。
  • tags:列出所有标签或查找与特定标签关联的文档。

🌐 REST API参考

跑步时 larch serve,以下端点可用(默认端口 3000):

端点 方法 描述
/api/v1/search GET 全文搜索 query, limit, tag,以及 dir params。
/api/v1/tree GET 以JSON格式返回完整的vault目录结构。
/api/v1/tags GET 列出标签。使用 ?tag=name 获取特定标签的文件。
/api/v1/document GET 通过以下方式获取文件内容 path, start_line,以及 end_line.
/api/v1/import POST 通过JSON正文导入新内容 { filename, content, dir? }.
/health GET 检查服务器状态和vault根位置。

🐳 Docker部署

虽然Larch被优化为本地CLI工具 Dockerfile 用于自托管RAG架构或在隔离环境中部署(例如与Dify或NextChat一起)。

docker build -t larch:latest .
docker run -d \
  -v ~/.larch:/root/.larch \
  -p 3000:3000 \
  --name larch-server \
  larch:latest

注意:由于Docker的网络和卷隔离,挂载卷上的操作系统级文件观察器事件可能无法在所有主机操作系统(例如Windows/macOS)上可靠触发。


🗺️ 路线图 / TODOs

  • [ ] 自定义Vault路径: 允许 larch init <path> 初始化 .larch 用户定义目录中的数据库(如现有的Obsidian或Logseq保管库),而不是硬编码 ~/.larch.
  • [ ] 智能分块改进: 增强解析器,以便更好地理解代码块和嵌套的项目符号。
  • [ ] 落叶松生态系统:预处理提取器: 提供官方外围脚本(例如Python/Node CLI),将Lark Doc和Notion的文档同步并转换为Larch兼容的本地Markdown。
  • [ ] 落叶松生态系统:后处理AI UI: 利用Larch的REST API和MCP功能作为其主要RAG后端,策划并正式支持与流行的LLM聊天UI(如NextChat、LobeChat、Dify)的无缝集成。

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。