grepai-workspaces について
grepai-workspaces は、GrepAI で関連プロジェクトをまとめ、共通インデックスを使って横断検索する方法を解説します。モノレポやマイクロサービス、大規模コードベース向けで、MCP サーバーでのワークスペース利用方法も扱います。
主な機能
- 01複数プロジェクトのグループ化と設定共有
- 02ワークスペース内の全プロジェクトをインデックス化
- 03全体検索とプロジェクト別検索
- 04プロジェクトとインデックス状態の確認
活用シーン
- 01モノレポ内のアプリやパッケージの検索
- 02マイクロサービス間での API ハンドラーの検索
- 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"
ベストプラクティス
- 内容がわかる名前を付ける:
ws1ではなくecommerce-stack - 関連するプロジェクトをまとめる: 一緒に検索するプロジェクトのみをまとめます
- ワークスペースごとにデーモンを1つ実行する:
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 対応