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 対応

ワークスペースを MCP サーバーで利用するため、grepai mcp-serve --workspace を実行する方法を説明します。

インストール

コマンドをコピーしてターミナルで実行します。

$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. 内容がわかる名前を付ける: ws1 ではなく ecommerce-stack
  2. 関連するプロジェクトをまとめる: 一緒に検索するプロジェクトのみをまとめます
  3. ワークスペースごとにデーモンを1つ実行する: 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

コメント