Overview
Enagrams is most powerful when every developer on the team connects their agent to the same workspace. This guide walks through onboarding a team of 2–10 developers.
Workspace Setup (Owner)
1. Create the Workspace
- Go to enagrams.com/dashboard.
- Click New Workspace.
- Choose a slug (e.g.
my-startup) — teammates will use this as their ENAGRAMS_WORKSPACE.
2. Invite Team Members
From the dashboard: Workspace → Team → Invite (enter email or user ID). Or via API:
POST /workspaces/:id/members
{
"user_id": "teammate_user_id",
"role": "member"
}
Roles:
- Owner — full access, can delete workspace.
- Admin — can manage members and settings.
- Member — can create decisions, claim work packages, use MCP.
3. Share the Workspace Slug
Tell each teammate the slug. They’ll supply it during npx enagrams init.
Per-Developer Setup
Each developer, from their checkout of the repo:
The CLI opens a browser to authenticate, asks them to pick (or create) the workspace, and writes IDE configs for whichever of Cursor, Claude Code, and Codex it detects. After that:
- IDE-specific tweaks: Cursor · Claude Code · Codex
- Run
enagrams status to verify they’re connected.
- Optionally run
enagrams watch in a spare terminal for auto-sync of approved changes.
Each developer gets their own API key automatically — it’s stored in ~/.config/enagrams/config.json, not in the repo.
Never share API keys. Each developer needs their own — it’s how Enagrams tracks which human is behind each agent session.
Running Your First Coordinated Session
Scenario: Two developers, same codebase
Developer A starts a Cursor conversation:
“Build the user authentication flow with JWT tokens. Open a workstream for it.”
Their agent calls workstream_start to create ena/auth-jwt, begins working, and acquires symbol-level reservations on the auth files.
Developer B starts a Cursor conversation soon after:
“Add user registration to the API.”
Their agent’s briefing shows:
Active workstream you can join: ena/auth-jwt ("Build JWT auth flow")
members: Developer A
reserved symbols:
src/auth/login.ts::validateToken (Developer A, 8 min)
src/auth/middleware.ts::requireAuth (Developer A, 8 min)
Recent decisions (1):
Chose JWT for auth (Developer A, 5 min ago)
Developer B’s agent joins the workstream with workstream_join (if registration is the same effort) or starts a new one, builds registration compatible with the JWT decision, and avoids the locked symbols.
Recommended Workflow
- Start of day — open the Activity Feed to see active agents and workstreams.
- Before a task — check Work Packages for anything from recent meetings; claim what’s yours.
- Working — start or join a workstream. Hooks handle locking automatically.
- Shipping — call
confirm_ready to run the test gate, then sync_commit after committing. Teammates on enagrams watch get the change automatically.
- After a meeting — paste the transcript at Meetings to extract decisions and generate work packages.
Dashboard Views
| View | URL | Purpose |
|---|
| Overview | /dashboard | Active agents, active workstreams, recent decisions |
| Activity Feed | /dashboard/feed | Real-time event stream |
| Workstreams | /dashboard/workstreams | Active branches, members, tasks |
| Decisions | /dashboard/decisions | Full decision timeline with stale flags |
| Conventions | /dashboard/conventions | Tier-grouped team rules |
| Tasks | /dashboard/tasks | Per-workstream kanban |
| Negotiations | /dashboard/negotiations | Open and resolved turns |
| Work Packages | /dashboard/packages | Meeting-derived task board |
| Team | /dashboard/team | Per-person drill-down |
| Knowledge Graph | /dashboard/graph | Decisions connected by shared symbols |
| Meetings | /dashboard/meetings | Transcript ingestion and history |