home / skills / yoanbernabeu / grepai-skills / grepai-workspaces
This skill helps you manage multi-project codebases with unified search across workspaces, enabling monorepos, microservices, and cross-project queries.
npx playbooks add skill yoanbernabeu/grepai-skills --skill grepai-workspacesReview the files below or copy the command above to add this skill to your agents.
---
name: grepai-workspaces
description: Configure multi-project workspaces in GrepAI. Use this skill for monorepos and multiple related projects.
---
# GrepAI Workspaces
This skill covers using GrepAI workspaces to manage multiple related projects with a unified search index.
## When to Use This Skill
- Working with monorepos
- Searching across multiple related projects
- Managing microservices architecture
- Organizing large codebases
## What are Workspaces?
Workspaces allow you to:
- Group multiple projects together
- Search across all projects at once
- Or search specific projects within the workspace
- Share configuration across projects
## Creating a Workspace
```bash
grepai workspace create my-workspace
```
Output:
```
ā
Workspace 'my-workspace' created
Location: ~/.grepai/workspaces/my-workspace/
Next: Add projects with 'grepai workspace add'
```
## Adding Projects
```bash
# 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
```
Output:
```
ā
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.
```
## Listing Workspaces
```bash
grepai workspace list
```
Output:
```
š Workspaces
1. my-workspace
- Projects: 3
- Status: Not indexed
2. work-projects
- Projects: 5
- Status: Indexed (updated 2h ago)
```
## Viewing Workspace Details
```bash
grepai workspace show my-workspace
```
Output:
```
š 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
```
## Indexing a Workspace
```bash
# Index all projects in workspace
grepai watch --workspace my-workspace
```
Output:
```
š 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...
```
### Background Indexing
```bash
grepai watch --workspace my-workspace --background
```
## Searching Workspaces
### Search All Projects
```bash
grepai search --workspace my-workspace "user authentication"
```
Results include project context:
```
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 ...
```
### Search Specific Project
```bash
grepai search --workspace my-workspace --project frontend "form validation"
```
Only searches the frontend project.
## Workspace Status
```bash
grepai workspace status my-workspace
```
Output:
```
š 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)
```
## Removing Projects from Workspace
```bash
grepai workspace remove my-workspace /path/to/old-project
```
## Deleting a Workspace
```bash
grepai workspace delete my-workspace
```
This removes the workspace configuration but NOT the project files.
## Workspace Configuration
Workspaces store config in `~/.grepai/workspaces/<name>/`:
```
~/.grepai/workspaces/my-workspace/
āāā workspace.yaml # Workspace config
āāā index.gob # Combined index
āāā symbols.gob # Combined symbols
```
### workspace.yaml
```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 with Workspaces
Use workspaces with MCP servers:
```json
{
"mcpServers": {
"grepai": {
"command": "grepai",
"args": ["mcp-serve", "--workspace", "my-workspace"]
}
}
}
```
## Use Cases
### Monorepo
```bash
# 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
```
### Microservices
```bash
# 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
```
### Frontend + Backend
```bash
# 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
```
## Cross-Project Search Examples
### Find All API Endpoints
```bash
grepai search --workspace services "REST API endpoint handler"
```
### Find Shared Type Usage
```bash
grepai search --workspace fullstack "User interface definition"
```
### Find Cross-Project Dependencies
```bash
# What calls the shared auth library?
grepai trace callers --workspace fullstack "validateToken"
```
## Best Practices
1. **Name descriptively:** `ecommerce-stack` not `ws1`
2. **Group related projects:** Only projects that you'd search together
3. **One daemon per workspace:** Run `grepai watch --workspace`
4. **Use project filter:** When you know which project to search
5. **Update after major changes:** Re-index after adding/removing files
## Common Issues
ā **Problem:** Workspace not found
ā
**Solution:** Check workspace exists: `grepai workspace list`
ā **Problem:** Project paths changed
ā
**Solution:** Remove old path, add new path:
```bash
grepai workspace remove my-workspace /old/path
grepai workspace add my-workspace /new/path
```
ā **Problem:** Search returns mixed results
ā
**Solution:** Use `--project` flag to filter:
```bash
grepai search --workspace ws --project backend "query"
```
## Output Format
Workspace overview:
```
š 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
```
This skill helps you configure and manage multi-project workspaces in GrepAI so related repositories can share a unified search index and configuration. It streamlines indexing, cross-project semantic search, and workspace-level status and configuration. Use it to organize monorepos, microservices, or any set of related projects you want to query together.
You create a named workspace and add project paths to it; GrepAI stores workspace config under ~/.grepai/workspaces/<name> and builds a combined index and symbols store. Run grepai watch --workspace <name> to index all projects (foreground or background), then search across the entire workspace or limit queries to a single project with --project. The workspace also exposes status, listing, removal, and deletion commands so you can manage the index and daemon per workspace.
How do I remove a moved project path from a workspace?
Run grepai workspace remove <workspace> /old/path then add the new path with grepai workspace add <workspace> /new/path.
Does deleting a workspace remove my project files?
No. Deleting a workspace removes its configuration and combined index but does not delete project source files.