关于 grepai-workspaces
grepai-workspaces 介绍如何用 GrepAI 工作区管理多个相关项目,并建立统一索引进行跨项目代码搜索。适用于单体仓库、微服务及大型代码库,也说明如何将工作区用于 MCP 服务。
主要功能
- 01组合多个项目并共享配置
- 02索引工作区内所有项目
- 03跨项目或按项目搜索
- 04查看工作区项目与索引状态
适用场景
- 01搜索单体仓库中的多个应用和包
- 02跨微服务查找 API 处理逻辑
- 03在前后端项目间追踪共享类型
MCP 相关
说明如何通过 grepai mcp-serve --workspace 将工作区配置给 MCP 服务使用。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ yoanbernabeu/ grepai-skills --skill grepai-workspaces安装后在 Claude Code 中输入/grepai-workspaces确认已加载。
详细介绍
GrepAI 工作区
本技能介绍如何使用 GrepAI 工作区,通过统一的搜索索引管理多个相关项目。
何时使用本技能
- 处理单体仓库
- 跨多个相关项目搜索
- 管理微服务架构
- 整理大型代码库
什么是工作区?
工作区可以让你:
- 将多个项目归组
- 一次搜索所有项目
- 或者在工作区中搜索特定项目
- 在多个项目之间共享配置
创建工作区
grepai workspace create my-workspace
输出:
✅ Workspace 'my-workspace' created
Location: ~/.grepai/workspaces/my-workspace/
Next: Add projects with 'grepai workspace add'
添加项目
# Add first project
grepai workspace add my-workspace /path/to/frontend
# Add more projects
grepai workspace add my-workspace /path/to/backend
grepai workspace add my-workspace /path/to/shared-lib
输出:
✅ Added '/path/to/frontend' to workspace 'my-workspace'
Projects in workspace:
1. frontend (/path/to/frontend)
Run 'grepai watch --workspace my-workspace' to index all projects.
列出工作区
grepai workspace list
输出:
📁 Workspaces
1. my-workspace
- Projects: 3
- Status: Not indexed
2. work-projects
- Projects: 5
- Status: Indexed (updated 2h ago)
查看工作区详情
grepai workspace show my-workspace
输出:
📁 Workspace: my-workspace
Projects:
1. frontend
Path: /path/to/frontend
Files: 450
Last indexed: 2025-01-28 10:30
2. backend
Path: /path/to/backend
Files: 320
Last indexed: 2025-01-28 10:30
3. shared-lib
Path: /path/to/shared-lib
Files: 85
Last indexed: 2025-01-28 10:30
Total: 855 files, 4,200 chunks
为工作区编制索引
# Index all projects in workspace
grepai watch --workspace my-workspace
输出:
🔍 Indexing workspace 'my-workspace'
[1/3] frontend...
Found 450 files, 2,100 chunks
[2/3] backend...
Found 320 files, 1,500 chunks
[3/3] shared-lib...
Found 85 files, 600 chunks
Total: 855 files, 4,200 chunks indexed
Watching for changes...
后台编制索引
grepai watch --workspace my-workspace --background
搜索工作区
搜索所有项目
grepai search --workspace my-workspace "user authentication"
结果包含项目上下文:
Score: 0.89 | [backend] src/auth/middleware.go:15-45
──────────────────────────────────────────
func AuthMiddleware() ...
Score: 0.85 | [frontend] src/hooks/useAuth.ts:10-30
──────────────────────────────────────────
export function useAuth() ...
Score: 0.78 | [shared-lib] src/types/auth.ts:5-25
──────────────────────────────────────────
export interface AuthState ...
搜索特定项目
grepai search --workspace my-workspace --project frontend "form validation"
只搜索 frontend 项目。
工作区状态
grepai workspace status my-workspace
输出:
📊 Workspace Status: my-workspace
Projects: 3
Total files: 855
Total chunks: 4,200
Index size: 45 MB
Per-project breakdown:
┌─────────────┬───────┬────────┬──────────┐
│ Project │ Files │ Chunks │ Updated │
├─────────────┼───────┼────────┼──────────┤
│ frontend │ 450 │ 2,100 │ 2h ago │
│ backend │ 320 │ 1,500 │ 2h ago │
│ shared-lib │ 85 │ 600 │ 2h ago │
└─────────────┴───────┴────────┴──────────┘
Daemon: Running (PID 12345)
从工作区移除项目
grepai workspace remove my-workspace /path/to/old-project
删除工作区
grepai workspace delete my-workspace
这会移除工作区配置,但不会移除项目文件。
工作区配置
工作区配置存储在 ~/.grepai/workspaces/<name>/ 中:
~/.grepai/workspaces/my-workspace/
├── workspace.yaml # Workspace config
├── index.gob # Combined index
└── symbols.gob # Combined symbols
workspace.yaml
name: my-workspace
created: 2025-01-28T10:00:00Z
projects:
- name: frontend
path: /path/to/frontend
- name: backend
path: /path/to/backend
- name: shared-lib
path: /path/to/shared-lib
# Optional: override global config per workspace
embedder:
provider: ollama
model: nomic-embed-text
ignore:
- node_modules
- dist
在 MCP 中使用工作区
将工作区与 MCP 服务搭配使用:
{
"mcpServers": {
"grepai": {
"command": "grepai",
"args": ["mcp-serve", "--workspace", "my-workspace"]
}
}
}
使用场景
单体仓库
# Full monorepo
grepai workspace create monorepo
grepai workspace add monorepo /path/to/monorepo/apps/web
grepai workspace add monorepo /path/to/monorepo/apps/mobile
grepai workspace add monorepo /path/to/monorepo/packages/ui
grepai workspace add monorepo /path/to/monorepo/packages/core
微服务
# Related microservices
grepai workspace create services
grepai workspace add services /path/to/user-service
grepai workspace add services /path/to/order-service
grepai workspace add services /path/to/payment-service
grepai workspace add services /path/to/notification-service
前端 + 后端
# Full stack
grepai workspace create fullstack
grepai workspace add fullstack /path/to/frontend
grepai workspace add fullstack /path/to/backend
grepai workspace add fullstack /path/to/shared-types
跨项目搜索示例
查找所有 API 端点
grepai search --workspace services "REST API endpoint handler"
查找共享类型的使用情况
grepai search --workspace fullstack "User interface definition"
查找跨项目依赖项
# What calls the shared auth library?
grepai trace callers --workspace fullstack "validateToken"
最佳实践
- 使用描述性名称: 使用
ecommerce-stack,而非ws1 - 将相关项目归组: 只将你会一起搜索的项目放在一起
- 每个工作区运行一个守护进程: 运行
grepai watch --workspace - 使用项目筛选器: 知道要搜索哪个项目时使用
- 重大变更后更新: 添加或移除文件后重新编制索引
常见问题
❌ 问题: 找不到工作区
✅ 解决方案: 检查工作区是否存在:grepai workspace list
❌ 问题: 项目路径已更改
✅ 解决方案: 移除旧路径,再添加新路径:
grepai workspace remove my-workspace /old/path
grepai workspace add my-workspace /new/path
❌ 问题: 搜索结果混杂
✅ 解决方案: 使用 --project 标志进行筛选:
grepai search --workspace ws --project backend "query"
输出格式
工作区概览:
📁 Workspace: my-workspace
Configuration:
- Location: ~/.grepai/workspaces/my-workspace/
- Created: 2025-01-28
Projects (3):
┌─────────────┬──────────────────────────┬───────┐
│ Name │ Path │ Files │
├─────────────┼──────────────────────────┼───────┤
│ frontend │ /path/to/frontend │ 450 │
│ backend │ /path/to/backend │ 320 │
│ shared-lib │ /path/to/shared-lib │ 85 │
└─────────────┴──────────────────────────┴───────┘
Commands:
- Index: grepai watch --workspace my-workspace
- Search: grepai search --workspace my-workspace "query"
- Status: grepai workspace status my-workspace
评论
支持 Markdown