MCPcopy Index your code
hub / github.com/EurekaClaw/EurekaClaw

github.com/EurekaClaw/EurekaClaw @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,993 symbols 7,257 edges 217 files 510 documented · 26%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

EurekaClaw  — The Research Claw

捕捉你的尤里卡时刻的 AI。

爬取 arXiv · 生成定理 · 证明引理 · 撰写 LaTeX 论文 · 运行实验

一切都从你的聊天或终端开始。

Stars License: Apache 2.0 Python 3.11+ Local-first

Website Docs RedNote Discord

English | 中文

🚀 更新公告 — 2026年4月20日(v0.2.0)

两项新功能现已上线: - 论文问答 / Rebuttal 助手 — 针对任意生成的论文 PDF 进行多轮问答,为审稿人意见起草带引用的精准回复。 - 论文重写 — 通过自由输入的修改指令或问答对话中积累的反馈,一键重写论文,支持版本保存与自动回滚。

详见 论文问答、Rebuttal 与重写 章节。

$ eurekaclaw prove "Find recent papers on sparse attention + prove efficiency bound"

🦞 Crawling arXiv cs.LG (2024–2025)...
📄 Found 23 relevant papers. Summarizing...
💡 Hypothesis generated: O(n log n) via topological filtration
✨ Theorem 3.1 drafted. LaTeX ready. Proof complete.
🦞 Eureka! Paper draft saved to ./results/

EurekaClaw 是一个多智能体 AI 科研助手,能够从一个问题出发,自主完成到可发表成果的全过程。它爬取文献、生成并压力测试假设、运行实验并撰写发现报告,一切均可在终端或浏览器 UI 中完成。

开源 · 本地优先 · 隐私设计 · Apache 2.0 许可证


EurekaClaw 能做什么

功能 描述
🔍 文献爬取器 从 arXiv 和 Semantic Scholar 获取、摘要并交叉引用论文
💡 想法生成器 通过综合数千篇论文的规律,产生新颖假设
🔢 定理证明器 通过 7 阶段自底向上流水线生成、验证并形式化证明
📄 论文撰写器 起草包含定理环境和引用的相机就绪 LaTeX 论文
💬 论文问答 / Rebuttal 助手 针对任意论文 PDF 进行多轮问答,理解证明、定位证据、并为审稿人意见起草精准回复
✏️ 论文重写 根据自由输入的修改指令或问答对话中的反馈,一键重写生成的论文
🖥️ 本地运行 兼容所有主流模型 API — 隐私设计
🧠 持续学习 每次会话后将证明策略提炼为技能,持续改进
🧪 实验运行器 (开发中) 数值验证理论界限;标记低置信度引理
🌐 浏览器 UI React + TypeScript 界面 — 实时智能体追踪、证明草图、暂停/恢复、技能管理器

安装

(详细教程参见 安装)

macOS / Linux

curl -fsSL https://eurekaclaw.ai/install.sh | bash

Windows

powershell -c "irm https://eurekaclaw.ai/install_win.ps1 | iex"

macOS/Linux 安装程序会克隆仓库、创建虚拟环境、安装 EurekaClaw,并将 eurekaclaw 命令添加到 PATH。之后运行 eurekaclaw onboard 以配置 API 密钥和设置。

Docker — 一行命令安装(推荐服务器用户 — 无需 sudo)

要求: 仅需 Docker(用户在 docker 组中即可,无需 sudo、无需安装 Python、无需安装 Node.js)

Docker Hub 预构建镜像:

镜像 标签 大小 描述
eurekaclaw/eurekaclaw latest ~10 GB CPU — 内含 Python 3.11、Node.js 18、所有依赖
eurekaclaw/eurekaclaw gpu ~13 GB GPU — NVIDIA CUDA 12.4 + 以上所有内容
# 拉取镜像(一次性,约 10 GB)
docker pull eurekaclaw/eurekaclaw

一行命令 — 启动浏览器 UI:

docker run --rm -it -p 8080:8080 -e ANTHROPIC_API_KEY=sk-ant-... eurekaclaw/eurekaclaw
# 浏览器打开 http://localhost:8080

GPU 支持(NVIDIA):

docker run --rm -it -p 8080:8080 --gpus all \
  -e ANTHROPIC_API_KEY=sk-ant-... eurekaclaw/eurekaclaw:gpu

使用 .env 配置文件 + 数据持久化:

# 先复制并编辑 .env: cp .env.example .env
docker run --rm -it -p 8080:8080 --env-file .env \
  -v ~/.eurekaclaw:/root/.eurekaclaw eurekaclaw/eurekaclaw

CLI 模式(prove / explore / from-papers):

docker run --rm -it -e ANTHROPIC_API_KEY=sk-ant-... \
  eurekaclaw/eurekaclaw prove "The sample complexity of transformers is O(L·d·log(d)/ε²)"

docker run --rm -it -e ANTHROPIC_API_KEY=sk-ant-... \
  eurekaclaw/eurekaclaw explore "multi-armed bandit theory"

交互式终端(容器内有完整环境):

docker run --rm -it -e ANTHROPIC_API_KEY=sk-ant-... eurekaclaw/eurekaclaw bash
# 容器内:eurekaclaw、python3、node、npm、uv 全部可用

远程服务器访问(SSH):

使用 --network host 让容器直接共享宿主机网络 — 无需 -p 端口映射,OAuth 回调也直接可用:

# 第一步:SSH 连接服务器并转发端口
ssh -L 8080:localhost:8080 user@server-ip

# 第二步:在服务器上用 host 网络模式启动容器
docker run --rm -it --network host \
  -e ANTHROPIC_API_KEY=sk-ant-... eurekaclaw/eurekaclaw

# 第三步:在笔记本浏览器打开 http://localhost:8080

说明: 服务器上无需 root/sudo 权限 — 只要有 Docker 权限即可。容器内部以 root 运行,因此在容器内安装软件包或写入文件不会有权限问题。

认证方式:API Key vs OAuth(Claude Pro/Max)

方式 A — API Key(最简单):

docker run --rm -it --network host \
  -e ANTHROPIC_API_KEY=sk-ant-... \
  eurekaclaw/eurekaclaw

方式 B — OAuth 登录 Claude Pro/Max(无需 API Key):

# 第一步:SSH 连接时转发 UI 端口 + OAuth 回调端口(从笔记本执行)
ssh -L 8080:localhost:8080 -L 54545:localhost:54545 user@server-ip

# 第二步:用 host 网络模式启动容器 + 持久化凭证
docker run --rm -it --network host \
  -v ~/.config/ccproxy:/root/.config/ccproxy \
  -v ~/.eurekaclaw:/root/.eurekaclaw \
  eurekaclaw/eurekaclaw bash

# 第三步:在容器内执行 OAuth 登录(仅首次需要)
ccproxy auth login claude_api
# 复制打印的 URL → 粘贴到笔记本浏览器 → 完成授权

# 第四步:启动 EurekaClaw
ANTHROPIC_AUTH_MODE=oauth eurekaclaw ui --host 0.0.0.0 --port 8080

# 后续运行 — 凭证已保存,无需重新登录:
docker run --rm -it --network host \
  -e ANTHROPIC_AUTH_MODE=oauth \
  -v ~/.config/ccproxy:/root/.config/ccproxy \
  -v ~/.eurekaclaw:/root/.eurekaclaw \
  eurekaclaw/eurekaclaw

本地构建(可选):

git clone https://github.com/EurekaClaw/EurekaClaw && cd EurekaClaw
make docker            # CPU 镜像
make docker-gpu        # GPU 镜像(NVIDIA CUDA 12.4)
make docker-run        # 运行 UI: http://localhost:8080

Docker Compose:

cp .env.example .env   # 编辑并填入 API key
docker compose up                    # CPU — UI 在 http://localhost:8080
docker compose --profile gpu up      # GPU(NVIDIA)
docker compose --profile dev up      # 开发模式(热更新 :5173 + :7860)

完整配置参见 docker-compose.yml

使用 uv 手动安装(推荐 — Linux / macOS)

要求: Python ≥ 3.11,Node.js ≥ 18,Git,uv

# 1. 安装 uv(如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. 克隆仓库
git clone https://github.com/EurekaClaw/EurekaClaw
cd EurekaClaw

# 3. 使用 Python 3.11 创建虚拟环境并激活
uv venv --python 3.11 .venv
source .venv/bin/activate

# 4. 安装 Python 依赖 + 前端
uv pip install -e "."
cd frontend && npm install && cd ..

# 5. 安装后配置
eurekaclaw install-skills     # 安装内置证明技能
eurekaclaw onboard            # 配置 API 密钥和设置

使用 pip 手动安装(Linux / macOS)

要求: Python ≥ 3.11,Node.js ≥ 18,Git

git clone https://github.com/EurekaClaw/EurekaClaw
cd EurekaClaw
python3 -m venv .venv
source .venv/bin/activate
make install                  # pip install -e "." + npm install (frontend)

手动安装(Windows)

要求: Python ≥ 3.11,Node.js ≥ 18,Git

git clone https://github.com/EurekaClaw/EurekaClaw
cd EurekaClaw
powershell -ExecutionPolicy Bypass -File install_win.ps1

快速开始

eurekaclaw onboard            # 交互式设置向导(创建 .env)
# — 或 — cp .env.example .env 并手动添加 ANTHROPIC_API_KEY

eurekaclaw install-skills     # 安装内置证明技能(执行一次)

# 浏览器 UI — 构建前端并在浏览器中打开
make open

# CLI — 证明一个猜想
eurekaclaw prove "The sample complexity of transformers is O(L·d·log(d)/ε²)" \
    --domain "ML theory" --output ./results

# CLI — 探索某个领域
eurekaclaw explore "multi-armed bandit theory"

# CLI — 从 arXiv 论文出发
eurekaclaw from-papers 1706.03762 2005.14165 --domain "attention mechanisms"

# CLI — 对已完成的会话进行问答和修改
eurekaclaw review <session-id>

# CLI — 列出所有历史会话
eurekaclaw sessions

# UI界面 — 推荐
eurekaclaw ui --open-browser

没有 API 密钥?通过 OAuth 使用 Claude Pro/Max 订阅。


流水线

EurekaClaw Pipeline


输入模式

命令 级别 适用场景
eurekaclaw prove "<conjecture>" 1 你有一个精确的数学命题需要证明
eurekaclaw from-papers <ids> 2 你想扩展或发现特定论文中的研究空白
eurekaclaw explore "<domain>" 3 你有一个宽泛的研究领域但尚无具体猜想

论文问答、Rebuttal 与重写

论文生成完成后,EurekaClaw 提供 CLI 和 UI 两种交互式审阅体验。

论文问答与 Rebuttal 助手

加载任意生成的论文(或任意历史会话),对其提问。问答智能体拥有完整的 LaTeX 源码上下文,并可搜索 arXiv、Semantic Scholar 和网络来支撑每一个回答 —— 非常适合准备审稿人 rebuttal。

浏览器 UI — 论文标签页左侧显示 PDF/LaTeX 双栏预览,右侧为问答聊天框。PDF 自动编译。直接输入问题,包括审稿人的原话,智能体会给出带引用的精准回复。

CLI — 论文生成后会自动提示进入审阅流程:

Review the paper? [y/N]: y

Question (Enter to accept): Reviewer 2: the bound in Theorem 2 seems loose compared to prior work
⏳ QA Agent thinking...
  ✓ tool: arxiv_search("spectral gap tight bound k-regular graphs")
  ✓ tool: latex_section_read(section="Theorem 2")

Our O(n²) bound follows from Weyl's inequality applied to the normalized Laplacian...
Compared to [Smith et al. 2023] (arXiv:2301.xxxxx), our setting is more general because...

What next?  [a]ccept  [q]uestion  [r]ewrite

历史会话 — 使用 eurekaclaw review <session-id> 或在 UI 中点击任意已完成会话,即可对任何历史工作进行问答和修改。

论文重写

根据自由输入的修改指令,或基于问答对话中积累的反馈,重写论文。EurekaClaw 将反馈注入理论和写作智能体后重新运行,将新版本与原版并排保存,失败时自动回滚。

What next?  [a]ccept  [q]uestion  [r]ewrite
→ r

Describe what to fix:
→ 用 k-正则图的 Cauchy 交错定理收紧 Theorem 2 的界,
  并添加一段与 Smith et al. 2023 的对比分析

Re-running theory + writer with feedback...
✓ Done: theory  (paper_v2.tex saved)
✓ Done: writer

在浏览器 UI 中,点击 Revise Paper,在弹出框中输入修改说明,更新后的 PDF 将自动出现在预览窗格。


文档

详细文档请见 https://eurekaclaw.github.io/zh/ 。

📖 用户指南 安装、演练、门控模式、调优、故障排除
⚙️ 配置 所有 .env 变量及默认值
🏗️ 架构 流水线阶段、数据流、组件设计
🤖 智能体 每个智能体的角色、输入、输出和工具使用
🔧 工具 arXiv、Semantic Scholar、Lean4、WolframAlpha、代码执行
💻 CLI 参考 所有命令和选项
🐍 Python API EurekaSessionKnowledgeBus、数据模型
🧠 记忆系统 情节记忆、持久记忆和知识图谱层
技能 技能注册表、注入、提炼、编写自定义技能
🔌 领域插件 插件架构、MAB 领域、添加新领域
🌐 UI 设计 React/TS 架构、组件树、运行命令

配置要点

cp .env.example .env
变量 默认值 描述
ANTHROPIC_API_KEY API 密钥(或使用 OAuth,参见用户指南
EUREKACLAW_MODEL claude-sonnet-4-6 主推理模型
GATE_MODE auto none · auto · human
THEORY_PIPELINE default defaultmemory_guided
OUTPUT_FORMAT latex latexmarkdown
EXPERIMENT_MODE auto auto · true · false
THEORY_MAX_ITERATIONS 10 最大证明循环迭代次数

完整参考 → configuration.md


评估

EurekaClaw 包含一个 Scientist-Bench 评估器:

维度 权重
形式正确性(Lean4 / LLM 同行评审) 0.35
新颖性(与已知结果的嵌入距离) 0.25
实验一致性 0.15
证明深度(引理数量) 0.15
引用覆盖率 0.10
eurekaclaw eval-session <session_id>

贡献

# 单元测试(无需 API 密钥)
pytest tests/unit/ -v

# 集成测试
ANTHROPIC_API_KEY=sk-... pytest tests/integration/ -v

# 前端类型检查
make typecheck

# 前端开发(热重载)
make dev

要添加自定义技能,将 .md 文件放入 ~/.eurekaclaw/skills/ — 参见技能与持续学习

要添加新研究领域,子类化 DomainPlugin — 参见领域插件系统

要添加新工具,子类化 BaseTool 并注册 — 参见研究工具


致谢

EurekaClaw站在AI智能体开发和AI赋能的科学研究成果的肩膀上。我们感谢以下项目的作者:


星标历史

Star History Chart

引用

如果你在研究中使用了 EurekaClaw,请引用:

```bibtex @misc{eurekaclaw2026, title = {EurekaClaw: An AI Agent for Capturing Eureka Moments}, author = {Li, Xuheng and Di, Qiwei and Zhang, Chenggong and Ji, Kaixuan and Zhao, Qingyue and Liu, Yifeng and Zhang, Shiyuan and Gu, Quanquan}, year = {2026}, url = {https://

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 1,157
Method 580
Class 144
Interface 79
Route 33

Languages

Python57%
TypeScript43%

Modules by API surface

eurekaclaw/ui/static/assets/index-aSjvPqL6.js518 symbols
tests/unit/test_seed_skills_install.py91 symbols
frontend/_legacy/app.js83 symbols
eurekaclaw/ui/server.py82 symbols
eurekaclaw/cli.py35 symbols
tests/unit/test_rewrite_endpoint.py29 symbols
eurekaclaw/agents/writer/agent.py28 symbols
tests/unit/test_codex_oauth.py27 symbols
eurekaclaw/ui/review_gate.py24 symbols
eurekaclaw/orchestrator/paper_qa_handler.py22 symbols
frontend/src/types/run.ts20 symbols
eurekaclaw/agents/session.py20 symbols

For agents

$ claude mcp add EurekaClaw \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page