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
Pick the path that matches where you are:- You have the repo cloned locally — from the repo root, run
npx enagrams init. The CLI authenticates you, binds the workspace to this repo, and writes all IDE configs in one shot. - You want to set it up before cloning — create it in the dashboard with New Workspace, then click Connect GitHub on the new workspace and pick the repo. The Enagrams GitHub App resolves the repo fingerprint server-side and binds it for you.
2. Invite Team Members
From the dashboard: Workspace → Team → Invite (enter email). The teammate gets an email with an accept link. Pick a role when you invite or change it later:- Owner — full access, can delete workspace, bind/unbind repo.
- Admin — can manage members, bind/unbind repo, change settings.
- Member — can create decisions, claim work packages, use MCP.
Enagrams is invite-only — teammates can’t join by guessing the slug or running
init in the bound repo. The invite email is the only path in. See Sharing a Workspace for the full flow the teammate sees.3. Tell Teammates to Run enagrams login
Nothing to share manually — no slugs, no API keys, no invite codes. Once you’ve sent the dashboard invite, each teammate clones the repo and runs:
<workspace>” prompt. One keystroke and they’re in.
If a teammate runs login before you’ve sent the invite, they’ll see:
Per-Developer Setup
Once a teammate has accepted an invite:init detects the already-bound workspace and skips straight to writing IDE configs for whichever of Cursor, Claude Code, and Codex it finds installed. After that:
- IDE-specific tweaks: Cursor · Claude Code · Codex
enagrams statusto verify the session is live.enagrams watchin a spare terminal for a live team dashboard.
~/.config/enagrams/config.json (global, like gh or vercel) — never in the repo.
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:
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_readyto run the test gate, thensync_commitafter committing. Teammates onenagrams watchget 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 |