Skip to content

Multi-Workspace Setup

Mentu supports multiple workspaces, allowing you to isolate commitment ledgers by team, project, or environment. This guide explains when and how to use multiple workspaces.

There are several reasons to create separate workspaces:

Different teams within an organization may want their own commitment pipelines. A frontend team and a backend team can each have their own workspace with independent commitments, memories, and governance rules.

If you manage multiple products or codebases, each can have its own workspace. This keeps the ledger focused and prevents cross-project noise.

Some teams use separate workspaces for staging and production pipelines, allowing different governance rules (e.g., stricter review requirements for production fixes).

Workspaces are created in the Mentu dashboard:

  1. Open the dashboard at app.mentu.dev
  2. Click the workspace selector in the sidebar
  3. Click New Workspace
  4. Enter a name and slug (the slug is used in configuration files and API calls)
  5. Invite team members by email

Each workspace gets its own unique ID (UUID) which you will use in configuration.

The MCP server connects to a single workspace at a time, determined by the MENTU_WORKSPACE_ID environment variable.

Set the workspace in your shell profile or .env file:

Terminal window
export MENTU_WORKSPACE_ID="2e78554d-9d92-4e4a-8866-aa126f25fbe6"

Override the workspace for a single session:

Terminal window
MENTU_WORKSPACE_ID="3314d347-ac52-4458-a7ad-0534acf4a51a" claude

For the most common setup — different workspaces for different projects — use a .mentu.json file in each project root.

Create a .mentu.json file in your project directory:

{
"workspace": "2e78554d-9d92-4e4a-8866-aa126f25fbe6",
"api_url": "https://mentu-proxy.affihub.workers.dev/ops",
"default_actor": "human:rashid"
}
FieldDescriptionRequired
workspaceWorkspace UUIDYes
api_urlMentu API endpointNo (uses default)
default_actorActor identity for operations from this projectNo

When the MCP server starts, it looks for .mentu.json in the current working directory (and parent directories, walking up to the filesystem root). If found, the workspace value takes precedence over the MENTU_WORKSPACE_ID environment variable.

This means you can cd into different project directories and the MCP server will automatically connect to the correct workspace.

~/projects/
frontend-app/
.mentu.json → workspace: "aaa-bbb-ccc"
package.json
src/
backend-api/
.mentu.json → workspace: "ddd-eee-fff"
package.json
src/
shared-lib/
.mentu.json → workspace: "aaa-bbb-ccc" (same as frontend)
package.json

Workspace administrators can view commitments across all workspaces they belong to.

In the dashboard, admins see a Cross-Workspace view in the sidebar that aggregates:

  • Open commitments across all workspaces
  • Recent activity from all workspaces
  • Commitments in review from all workspaces

This is useful for engineering leads who oversee multiple teams or projects.

Access is controlled through workspace membership:

RoleCapabilities
OwnerFull access, can delete workspace, manage members
AdminFull access, can manage members
MemberCan create and claim commitments, view ledger
ViewerRead-only access to commitments and ledger

Members can belong to multiple workspaces simultaneously. The dashboard sidebar shows all workspaces the user has access to, with a quick switcher.

  1. One workspace per deployable unit — if it has its own CI/CD pipeline, it should have its own workspace
  2. Use .mentu.json in every project — avoid relying on environment variables for workspace selection
  3. Keep workspace slugs meaningful — use names like vendora-app, avolumen-api rather than generic labels
  4. Use consistent actor names — the same person should use the same actor identity across workspaces (e.g., always human:rashid)
  5. Review governance per workspace — a library with a stable API may need less review overhead than a user-facing application