shlokkhemani/rabbithole
An infinite canvas for learning — select text, ask, and answers branch out as documents. MCP server for Claude Code, Codex, and any agent.
Rabbithole – 用于学习的无限、AI 驱动的画布
是什么 – Rabbithole 是一个轻量级的 Web 应用,允许您创建由任意 LLM(Claude Code、Codex、OpenAI 兼容端点)回答的分叉式「画布」。从一个文档开始,您可以在任意位置提出问题,答案将生成一个新链接的文档,从而以自包含的 HTML 页面树的形式探索想法。
为何重要 – 它结合了零设置前端与灵活的后端(MCP 服务器),可与 Claude Code、Codex、OpenAI 兼容端点或您本地运行的任何自定义模型通信。所有数据均保留在您的机器上——无需账户、无遥测、无云存储。
核心概念
| 组件 | 作用 |
|---|---|
| Web 应用 | 纯客户端界面,渲染画布并将提示转发到您配置的模型端点(OpenRouter、本地 OpenAI 兼容服务器等)。 |
| MCP 服务器 | 一个小型 Node.js 进程,作为 Web UI 与 "MCP 客户端"(如 Claude Code 或 Codex)之间的中介。它在本地运行,将文档存储在 ~/.rabbithole/(或 RABBITHOLE_DIR)中,并处理工具调用路由。 |
| 画布 | 一系列 HTML 快照。每个快照包含原始内容以及任何后续问题和模型的回答,彼此链接,支持前后导航。 |
快速入门
- Web 版本 – 打开 https://rabbithole.ing,粘贴一个问题、URL、Markdown 文件或 PDF。UI 会将提示发送到您配置的模型。
- 连接 Claude Code / Codex – 如果您已安装并登录 Claude Code 或 Codex CLI,请运行:
此命令将打印一个私有配对链接,并通过回环接口将浏览器页面与本地 CLI 连接。npx @shlokkhemani/rabbithole bridge - MCP 模式 – 安装 MCP 客户端(需要 Node 18+)并添加 Rabbithole 作为工具:
然后启动一个代理会话并说“在 Rabbithole 中打开此文档”。代理将保持工具调用待处理状态,同时您与画布交互;MCP 服务器会持久化请求,因此您可以断开连接并稍后恢复。# Claude Code claude mcp add rabbithole -- npx -y github:shlokkhemani/rabbithole # Codex codex mcp add rabbithole -- npx -y github:shlokkhemani/rabbithole
开发与贡献
git clone https://github.com/shlokkhemani/rabbithole.git
cd rabbithole
npm install
npm run build # 构建浏览器包
npm test # 运行测试套件
该仓库已预先构建了浏览器包,因此从 npm 安装包的下游用户无需编译即可获得可立即运行的 Web 应用。
文档亮点
- 产品与架构导览 –
docs/01-tour.md - 生成的模块与命令映射 – 对扩展工具的开发者非常有用(
docs/generated/*)。 - 兼容性契约 – 定义了 Web 应用如何与模型端点和 MCP 客户端通信(
docs/compatibility.md)。 - 设计系统 – 视觉与交互指南(
docs/design-system.md)。
许可证
MIT – 详见 LICENSE 文件。
总结 – Rabbithole 是一个自托管、模型无关、分叉文档的 UI,可将任何 LLM 交互转化为可导航的知识图谱,所有数据均保留在本地,完全由您控制。
相关
- 项目
- 项目
- 项目
- 项目
- 项目