mcpField
G
grepai-workspaces

grepai-workspaces

github.com/yoanbernabeu开发20693 次安装38 周前更新
代码仓库

关于 grepai-workspaces

grepai-workspaces 介绍如何用 GrepAI 工作区管理多个相关项目,并建立统一索引进行跨项目代码搜索。适用于单体仓库、微服务及大型代码库,也说明如何将工作区用于 MCP 服务。

主要功能

  1. 01组合多个项目并共享配置
  2. 02索引工作区内所有项目
  3. 03跨项目或按项目搜索
  4. 04查看工作区项目与索引状态

适用场景

  1. 01搜索单体仓库中的多个应用和包
  2. 02跨微服务查找 API 处理逻辑
  3. 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"

最佳实践

  1. 使用描述性名称: 使用 ecommerce-stack,而非 ws1
  2. 将相关项目归组: 只将你会一起搜索的项目放在一起
  3. 每个工作区运行一个守护进程: 运行 grepai watch --workspace
  4. 使用项目筛选器: 知道要搜索哪个项目时使用
  5. 重大变更后更新: 添加或移除文件后重新编制索引

常见问题

❌ 问题: 找不到工作区
✅ 解决方案: 检查工作区是否存在: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