深色模式
项目空间 / Runbook / 经验库
"打开一个目录"= 一个 Reeve 项目空间。布局符合 Claude Code / Codex 原生约定,自动生成 .mcp.json + scoped Token + .claude/skills/,沉淀 Runbook 与经验库。
进入
主界面左侧导航 → 项目。
项目空间是什么
把 Reeve 当作 IDE:每个项目(Git 仓库)对应一个目录,存放:
- CLAUDE.md:项目说明,AI 和人都读
- .mcp.json:Claude Code 自动发现的 MCP server 配置
- .claude/skills/:项目级 技能
- .reeve/:Reeve 自家数据(服务器关联、Runbook、经验库、审计、聊天历史)
my-project/
├── CLAUDE.md 项目说明
├── .mcp.json → 指向本机 reeve-mcp.exe
│
├── .claude/
│ └── skills/ 项目级技能(Claude Code 也认)
│ ├── nginx-deploy.md
│ └── db-migration.md
│
└── .reeve/ Reeve 自家
├── project.json 服务器关联 / 策略 / sudo 账号 / token id
├── experience/ 经验库 Markdown
├── runbooks/ 固化操作脚本
├── audit.db 本项目审计日志
└── chats/ AI 对话历史打开 / 切换项目
页面顶部 打开目录 按钮:
- Tauri 目录对话框
- 选择本机任意文件夹
- 没初始化的目录会自动建
.reeve/+ 写 CLAUDE.md 模板 + 签发 scoped Token - 已初始化的目录直接载入
最近打开的项目在下拉列表里。
scoped Token 自动签发
首次打开项目时 Reeve 自动:
- 生成项目级 MCP Token(与 MCP 接入 的 User 级 Token 隔离)
- Hash 入库
- 明文写到
<project>/.mcp.json的 env 里
后续 Claude Code 进到该目录:
- 自动读
.mcp.json - 用项目 Token 连 Reeve
- 看到的服务器、可调的工具按项目级配置
CLAUDE.md 模板
新项目首次初始化时生成的 CLAUDE.md:
markdown
# 项目名
> 这是 Reeve 自动生成的项目说明,AI 和人都会读。
## 服务器
(在 Reeve 项目页关联你的服务器)
## 常用操作
(写下你希望 AI 知道的项目特定操作)
## 注意事项
(写下任何 AI 应该回避的事)可以自由编辑。
Runbook 管理
「Runbook」是多步骤自动化脚本,结构化记录"做这件事需要按顺序跑哪些命令到哪台服务器"。
列表
页面左侧 Runbook 树(按目录组织)。每个 Runbook 文件:
- 名称
- 描述
- 步骤数
- 最后执行时间
Runbook 格式
Markdown 文件,含特殊语法的 fenced code block:
markdown
# 升级 nginx
## 1. 备份配置
```bash on:prod-web
cp -r /etc/nginx /etc/nginx.bak.$(date +%F)
```
## 2. 装新版
```bash on:prod-web
apt-get update && apt-get install -y nginx
```
## 3. 验证
```bash on:prod-web
nginx -t && systemctl reload nginx
```on:<server-alias> 指定每步在哪台服务器跑。
执行 Runbook
点 Runbook 的 运行 按钮:
- 弹窗确认前预演(显示所有命令)
- 逐步执行
- 每步独立过 AI 策略 + 写审计
- 任一步失败可选 stop / continue
- 全程实时输出
从批量执行保存
批量执行页运行完一组命令后 → 保存为 Runbook:
- 自动生成 Markdown 骨架
- 命令 + 服务器组合落到结构里
- 自取名 + 保存
从审计转 Runbook
审计页选多行 → 打包为 Runbook:
- 选中的命令按时间顺序拼接
- 每条带
on:<server-alias>注释 - 适合"AI 帮我做的这个流程很好,固化下来"
经验库
「经验库」是非结构化的运维笔记,沉淀过往操作的 know-how。
用途
- AI 通过 MCP 工具
recall_experience(query=...)检索 - 跨 AI 客户端复用知识
- 团队共享(Git 提交项目仓库)
列表
页面右侧经验库 Tree(按目录 / 标签组织)。
创建经验
新建经验 按钮 → 弹窗:
| 字段 | 示例 |
|---|---|
| 标题 | 修复 prod-web 的 502 |
| 标签 | nginx, troubleshooting |
| 正文 | Markdown |
从审计转经验
审计页行内 转经验 按钮:
- 自动提取命令 + 结果
- 让你补充"为什么这样做"
- 一键保存
AI 自动检索
AI 在对话开始时(或在 Reeve 桥接对话)会自动跑 recall_experience:
你:prod-web 又 502 了
[recall_experience(query="prod-web 502")]
→ 命中 1 篇经验:「修复 prod-web 的 502」
AI:我看到你上次的笔记说 upstream 超时是因为 PHP-FPM... 我先检查 PHP-FPM 状态关联服务器
项目左下 关联服务器 区域:
- 从全局服务器清单勾选要在本项目可见的
- 未勾选的服务器:本项目里 AI 和人都看不到(即使它们是全局存在的)
项目策略
每个项目可单独配 AI 策略:
- 默认档位(覆盖全局)
- 项目级 sudo 账号白名单
- 项目级危险黑名单扩展
聊天历史
Reeve 自带 AI 桥接 对话页时,每个项目的对话独立持久化:
<project>/.reeve/chats/<id>.json- 列表可恢复
- 跨开 / 关项目不丢
Git 集成
.claude/skills/ 和 .reeve/runbooks/ 适合提交进 Git(团队共享); .reeve/audit.db 和 .reeve/chats/ 应该 gitignore(个人 / 敏感)。
模板 .gitignore:
.reeve/audit.db
.reeve/chats/
.reeve/project.json.mcp.json 由 Reeve 生成,含 Token,不应提交。
与 Claude Code 互操作
项目空间布局完全兼容 Claude Code:
- Claude Code 进到目录自动读
CLAUDE.md - 自动发现
.mcp.json里的 Reeve MCP server - 自动加载
.claude/skills/下的技能
也就是说,Reeve 项目空间就是 Claude Code 项目空间。
故障排查
| 症状 | 排查 |
|---|---|
| 打开项目失败 | 目录权限不足 / 磁盘满 |
| .mcp.json 没生效 | Claude Code 重启该目录 |
| Runbook 执行卡住 | 检查 审批队列 |
| 经验库检索不到 | 标签 / 标题不匹配;改进经验文档 |
| 项目策略不生效 | 全局总开关可能 disabled |