let-them-talk 5.3.0 โ†’ 5.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/README.md +346 -592
  3. package/SECURITY.md +3 -3
  4. package/USAGE.md +151 -0
  5. package/agent-contracts.js +447 -0
  6. package/api-agents.js +760 -0
  7. package/autonomy/decision-v2.js +380 -0
  8. package/autonomy/watchdog-policy.js +572 -0
  9. package/cli.js +454 -298
  10. package/conversation-templates/autonomous-feature.json +83 -22
  11. package/conversation-templates/code-review.json +69 -21
  12. package/conversation-templates/debug-squad.json +69 -21
  13. package/conversation-templates/feature-build.json +69 -21
  14. package/conversation-templates/research-write.json +69 -21
  15. package/dashboard.html +3148 -174
  16. package/dashboard.js +864 -786
  17. package/data-dir.js +58 -0
  18. package/docs/architecture/branch-semantics.md +157 -0
  19. package/docs/architecture/canonical-event-schema.md +88 -0
  20. package/docs/architecture/markdown-workspace.md +183 -0
  21. package/docs/architecture/runtime-contract.md +459 -0
  22. package/docs/architecture/runtime-migration-hardening.md +64 -0
  23. package/events/hooks.js +154 -0
  24. package/events/log.js +457 -0
  25. package/events/replay.js +33 -0
  26. package/events/schema.js +432 -0
  27. package/managed-team-integration.js +261 -0
  28. package/office/agents.js +704 -597
  29. package/office/animation.js +1 -1
  30. package/office/assets/arcade-cabinet.js +141 -0
  31. package/office/assets/archway.js +77 -0
  32. package/office/assets/bar-counter.js +91 -0
  33. package/office/assets/bar-stool.js +71 -0
  34. package/office/assets/beanbag.js +64 -0
  35. package/office/assets/bench.js +99 -0
  36. package/office/assets/bollard.js +87 -0
  37. package/office/assets/cactus.js +100 -0
  38. package/office/assets/carpet-tile.js +46 -0
  39. package/office/assets/chair.js +123 -0
  40. package/office/assets/chandelier.js +107 -0
  41. package/office/assets/coffee-machine.js +95 -0
  42. package/office/assets/coffee-table.js +81 -0
  43. package/office/assets/column.js +95 -0
  44. package/office/assets/desk-lamp.js +102 -0
  45. package/office/assets/desk.js +76 -0
  46. package/office/assets/dining-table.js +105 -0
  47. package/office/assets/door.js +70 -0
  48. package/office/assets/dual-monitor.js +72 -0
  49. package/office/assets/fence.js +76 -0
  50. package/office/assets/filing-cabinet.js +111 -0
  51. package/office/assets/floor-lamp.js +69 -0
  52. package/office/assets/floor-tile.js +54 -0
  53. package/office/assets/flower-pot.js +76 -0
  54. package/office/assets/foosball.js +95 -0
  55. package/office/assets/fridge.js +99 -0
  56. package/office/assets/gaming-chair.js +154 -0
  57. package/office/assets/gaming-desk.js +105 -0
  58. package/office/assets/glass-door.js +72 -0
  59. package/office/assets/glass-wall.js +64 -0
  60. package/office/assets/half-wall.js +49 -0
  61. package/office/assets/hanging-plant.js +112 -0
  62. package/office/assets/index.js +151 -0
  63. package/office/assets/indoor-tree.js +90 -0
  64. package/office/assets/l-sofa.js +153 -0
  65. package/office/assets/marble-floor.js +64 -0
  66. package/office/assets/materials.js +40 -0
  67. package/office/assets/meeting-table.js +88 -0
  68. package/office/assets/microwave.js +94 -0
  69. package/office/assets/monitor.js +67 -0
  70. package/office/assets/neon-strip.js +73 -0
  71. package/office/assets/painting.js +84 -0
  72. package/office/assets/palm-tree.js +108 -0
  73. package/office/assets/pc-tower.js +91 -0
  74. package/office/assets/pendant-light.js +67 -0
  75. package/office/assets/ping-pong.js +114 -0
  76. package/office/assets/plant.js +72 -0
  77. package/office/assets/planter-box.js +95 -0
  78. package/office/assets/pool-table.js +94 -0
  79. package/office/assets/printer.js +113 -0
  80. package/office/assets/reception-desk.js +133 -0
  81. package/office/assets/rug.js +78 -0
  82. package/office/assets/sculpture.js +85 -0
  83. package/office/assets/server-rack.js +98 -0
  84. package/office/assets/sink.js +109 -0
  85. package/office/assets/sofa.js +106 -0
  86. package/office/assets/speaker.js +83 -0
  87. package/office/assets/spotlight.js +83 -0
  88. package/office/assets/street-lamp.js +97 -0
  89. package/office/assets/trash-can.js +83 -0
  90. package/office/assets/treadmill.js +126 -0
  91. package/office/assets/trophy.js +89 -0
  92. package/office/assets/tv-screen.js +79 -0
  93. package/office/assets/vase.js +84 -0
  94. package/office/assets/wall-clock.js +84 -0
  95. package/office/assets/wall.js +53 -0
  96. package/office/assets/water-cooler.js +146 -0
  97. package/office/assets/whiteboard.js +115 -0
  98. package/office/assets.js +3 -431
  99. package/office/builder.js +791 -355
  100. package/office/campus-env.js +1012 -1119
  101. package/office/environment.js +2 -0
  102. package/office/gallery.js +997 -0
  103. package/office/index.js +141 -34
  104. package/office/navigation.js +173 -152
  105. package/office/player.js +178 -68
  106. package/office/robot-character.js +272 -0
  107. package/office/spectator-camera.js +33 -10
  108. package/office/state.js +2 -0
  109. package/office/world-save.js +35 -4
  110. package/package.json +57 -3
  111. package/providers/comfyui.js +383 -0
  112. package/providers/dalle.js +79 -0
  113. package/providers/gemini.js +181 -0
  114. package/providers/ollama.js +184 -0
  115. package/providers/replicate.js +115 -0
  116. package/providers/zai.js +183 -0
  117. package/runtime-descriptor.js +270 -0
  118. package/scripts/check-agent-contract-advisory.js +132 -0
  119. package/scripts/check-api-agent-parity.js +277 -0
  120. package/scripts/check-autonomy-v2-decision.js +207 -0
  121. package/scripts/check-autonomy-v2-execution.js +588 -0
  122. package/scripts/check-autonomy-v2-watchdog.js +224 -0
  123. package/scripts/check-branch-fork-snapshot.js +337 -0
  124. package/scripts/check-branch-isolation.js +787 -0
  125. package/scripts/check-branch-semantics.js +139 -0
  126. package/scripts/check-dashboard-control-plane.js +1304 -0
  127. package/scripts/check-docs-onboarding.js +490 -0
  128. package/scripts/check-event-schema.js +276 -0
  129. package/scripts/check-evidence-completion.js +239 -0
  130. package/scripts/check-invariants.js +992 -0
  131. package/scripts/check-lifecycle-hooks.js +525 -0
  132. package/scripts/check-managed-team-integration.js +166 -0
  133. package/scripts/check-markdown-workspace-export.js +548 -0
  134. package/scripts/check-markdown-workspace-safety.js +347 -0
  135. package/scripts/check-markdown-workspace.js +136 -0
  136. package/scripts/check-message-replay.js +429 -0
  137. package/scripts/check-migration-hardening.js +300 -0
  138. package/scripts/check-performance-indexing.js +272 -0
  139. package/scripts/check-provider-capabilities.js +316 -0
  140. package/scripts/check-runtime-contract.js +109 -0
  141. package/scripts/check-session-aware-context.js +172 -0
  142. package/scripts/check-session-lifecycle.js +210 -0
  143. package/scripts/export-markdown-workspace.js +84 -0
  144. package/scripts/fixtures/message-replay/clean.jsonl +2 -0
  145. package/scripts/fixtures/message-replay/corrupt-correction-payload.jsonl +1 -0
  146. package/scripts/fixtures/message-replay/corrupt-jsonl.jsonl +1 -0
  147. package/scripts/fixtures/message-replay/corrupt-payload.jsonl +1 -0
  148. package/scripts/fixtures/message-replay/out-of-order.jsonl +2 -0
  149. package/scripts/migrate-legacy-to-canonical.js +201 -0
  150. package/scripts/run-verification-suite.js +242 -0
  151. package/scripts/sync-packaged-docs.js +69 -0
  152. package/server.js +9577 -7216
  153. package/state/agents.js +161 -0
  154. package/state/canonical.js +3068 -0
  155. package/state/dashboard-queries.js +441 -0
  156. package/state/evidence.js +56 -0
  157. package/state/io.js +69 -0
  158. package/state/markdown-workspace.js +951 -0
  159. package/state/messages.js +669 -0
  160. package/state/sessions.js +683 -0
  161. package/state/tasks-workflows.js +92 -0
  162. package/templates/debate.json +2 -2
  163. package/templates/managed.json +4 -4
  164. package/templates/pair.json +2 -2
  165. package/templates/review.json +2 -2
  166. package/templates/team.json +3 -3
package/README.md CHANGED
@@ -1,592 +1,346 @@
1
- <p align="center">
2
- <img src="logo.png" alt="Let Them Talk" width="120">
3
- </p>
4
-
5
- <h1 align="center">Let Them Talk</h1>
6
-
7
- <p align="center">
8
- <strong>Multi-agent collaboration for AI CLI terminals.</strong><br>
9
- Let your AI agents talk, delegate, review, and build together โ€” in a 3D virtual office.
10
- </p>
11
-
12
- <p align="center">
13
- <a href="https://www.npmjs.com/package/let-them-talk"><img src="https://img.shields.io/npm/v/let-them-talk.svg?style=flat&color=58a6ff" alt="npm"></a>
14
- <a href="https://github.com/Dekelelz/let-them-talk/blob/master/LICENSE"><img src="https://img.shields.io/badge/License-BSL%201.1-f59e0b.svg?style=flat" alt="BSL 1.1"></a>
15
- <a href="https://discord.gg/6Y9YgkFNJP"><img src="https://img.shields.io/discord/1482478651000885359?color=5865F2&label=Discord&logo=discord&logoColor=white&style=flat" alt="Discord"></a>
16
- <a href="https://www.npmjs.com/package/let-them-talk"><img src="https://img.shields.io/npm/dm/let-them-talk.svg?style=flat&color=3fb950" alt="Downloads"></a>
17
- </p>
18
-
19
- <p align="center">
20
- <a href="https://talk.unrealai.studio">Website</a> ยท
21
- <a href="#quick-start">Quick Start</a> ยท
22
- <a href="#installation-by-platform">Install</a> ยท
23
- <a href="VISION.md">Vision</a> ยท
24
- <a href="#agent-templates">Templates</a> ยท
25
- <a href="#web-dashboard">Dashboard</a> ยท
26
- <a href="#troubleshooting">Troubleshooting</a> ยท
27
- <a href="https://discord.gg/6Y9YgkFNJP">Discord</a>
28
- </p>
29
-
30
- ---
31
-
32
- Let Them Talk is an MCP server that connects multiple AI CLI terminals through a shared filesystem. Open Claude Code, Gemini CLI, or Codex CLI in separate terminals โ€” they discover each other, exchange messages, share files, assign tasks, and coordinate through workflows. A real-time web dashboard with a **3D virtual office** lets you watch chibi agent characters walk between desks, wave during broadcasts, celebrate completed tasks, and sleep when idle.
33
-
34
- If you want your AI agents to stop working in isolation and start collaborating like a team, this is it.
35
-
36
- ## Quick Start
37
-
38
- Preferred setup: one command to install, one to launch the dashboard.
39
-
40
- ```bash
41
- npx let-them-talk init # auto-detects your CLI and configures MCP
42
- npx let-them-talk dashboard # opens the web dashboard at localhost:3000
43
- ```
44
-
45
- Then open two terminals and tell each agent to register:
46
-
47
- **Terminal 1:** `Register as "A", say hello to B, then call listen()`
48
-
49
- **Terminal 2:** `Register as "B", then call listen()`
50
-
51
- That's it. They'll start talking. Watch it live in the dashboard.
52
-
53
- > **Templates:** Skip the manual setup with `npx let-them-talk init --template team` โ€” gives you ready-to-paste prompts for a Coordinator + Researcher + Coder team. [See all templates](#agent-templates).
54
-
55
- ## Installation by Platform
56
-
57
- ### Prerequisites (All Platforms)
58
- - Node.js 18 or higher (`node --version` to check)
59
- - One or more AI CLI tools: [Claude Code](https://claude.ai/code), [Gemini CLI](https://github.com/google-gemini/gemini-cli), or [Codex CLI](https://github.com/openai/codex)
60
-
61
- ### Windows
62
- ```bash
63
- # Install in your project
64
- cd C:\Users\YourName\Projects\MyProject
65
- npx let-them-talk init
66
-
67
- # Config files created:
68
- # Project: .mcp.json
69
- # Global: %USERPROFILE%\.claude\mcp.json
70
- # %USERPROFILE%\.gemini\settings.json
71
- # %USERPROFILE%\.codex\config.toml
72
- ```
73
-
74
- ### macOS
75
- ```bash
76
- # Install in your project
77
- cd ~/Projects/MyProject
78
- npx let-them-talk init
79
-
80
- # Config files created:
81
- # Project: .mcp.json
82
- # Global: ~/.claude/mcp.json
83
- # ~/.gemini/settings.json
84
- # ~/.codex/config.toml
85
- ```
86
-
87
- ### Linux
88
- ```bash
89
- # Install in your project
90
- cd ~/projects/myproject
91
- npx let-them-talk init
92
-
93
- # Config files created:
94
- # Project: .mcp.json
95
- # Global: ~/.claude/mcp.json
96
- # ~/.gemini/settings.json
97
- # ~/.codex/config.toml
98
- ```
99
-
100
- ## v5.0: True Autonomy Engine
101
-
102
- **One command. Walk away. Come back to finished work.**
103
-
104
- ```bash
105
- npx let-them-talk run "build a login system with JWT auth" --agents 4
106
- ```
107
-
108
- This spawns 4 AI agents that self-organize: a Lead plans the work, workers implement in parallel, a Quality Lead reviews everything, and the team keeps iterating until the work is excellent. Zero human intervention needed.
109
-
110
- **What makes v5.0 different:**
111
-
112
- - **Proactive work loop** โ€” agents call `get_work()` to find their next task, never sit idle
113
- - **Self-verification** โ€” agents call `verify_and_advance()` to check their own work and auto-advance workflows
114
- - **Parallel execution** โ€” independent steps run simultaneously via dependency graphs
115
- - **Auto-retry** โ€” failed work retries 3x with different approaches before escalating
116
- - **Watchdog** โ€” idle agents get nudged, stuck work gets reassigned, dead agents' tasks get recovered
117
- - **Smart roles** โ€” Lead, Quality Lead, Monitor, Advisor auto-assigned based on team size
118
- - **Skill memory** โ€” agents learn from failures and share knowledge via KB
119
- - **Scale to 100** โ€” per-agent heartbeats, relevance filtering, zero-cooldown handoffs, auto-team channels
120
-
121
- ```bash
122
- npx let-them-talk status # check agents, tasks, workflows at a glance
123
- npx let-them-talk doctor # diagnostic health check
124
- npx let-them-talk dashboard # live monitoring with plan execution view
125
- ```
126
-
127
- ## Supported CLIs
128
-
129
- | CLI | Config File | Auto-detected |
130
- |-----|-------------|:-------------:|
131
- | Claude Code | `.mcp.json` | Yes |
132
- | Gemini CLI | `.gemini/settings.json` | Yes |
133
- | Codex CLI | `.codex/config.toml` | Yes |
134
-
135
- Run `npx let-them-talk init --all` to configure all three at once.
136
-
137
- ## How It Works
138
-
139
- ```
140
- Terminal 1 Terminal 2 Terminal 3
141
- (Claude Code) (Gemini CLI) (Codex CLI)
142
- | | |
143
- v v v
144
- MCP Server MCP Server MCP Server
145
- (stdio) (stdio) (stdio)
146
- | | |
147
- +----------- .agent-bridge/ directory ----------+
148
- messages ยท agents ยท tasks
149
- profiles ยท workflows ยท permissions
150
- |
151
- v
152
- Web Dashboard :3000
153
- SSE real-time ยท Kanban
154
- Agent monitoring ยท Injection
155
- ```
156
-
157
- Each terminal spawns its own MCP server process. All processes share a `.agent-bridge/` directory in your project root. The dashboard reads the same files via Server-Sent Events for instant updates.
158
-
159
- ## Highlights
160
-
161
- - **Scale to 100 agents** โ€” smart context partitions, send-after-listen enforcement, response budgets, idle detection, task-channel auto-binding, per-agent heartbeats
162
- - **3D virtual office** โ€” chibi characters at desks, spectator camera (WASD+mouse), 11 hairstyles, 6 outfits, gestures, furniture, TV dashboard
163
- - **Managed conversation mode** โ€” structured turn-taking with floor control for 3+ agents, prevents broadcast storms
164
- - **66 MCP tools** โ€” messaging, tasks, workflows, profiles, workspaces, branching, managed mode, briefing, file locking, decisions, KB, voting, reviews, dependencies, reputation, autonomy engine
165
- - **8-tab dashboard** โ€” 3D Hub (default), messages, tasks, workspaces, workflows, launch, stats, docs
166
- - **Group conversation mode** โ€” single-write `__group__` messages, adaptive cooldown, `addressed_to` hints, smart context, idle detection
167
- - **Agent awareness** โ€” enhanced nudge with sender/preview on every tool call, idle work suggestions, rich `check_messages`
168
- - **5 agent templates** โ€” pair, team, review, debate, managed โ€” with ready-to-paste prompts
169
- - **5 conversation templates** โ€” Code Review, Debug Squad, Feature Dev, Research & Write, Managed Team
170
- - **Stats & analytics** โ€” per-agent scores, response times, hourly charts, conversation velocity
171
- - **Task management** โ€” drag-and-drop kanban board, task-channel auto-binding for 5+ agent teams
172
- - **Workflow pipelines** โ€” multi-step automation with auto-handoff
173
- - **Conversation branching** โ€” fork at any point, isolated history per branch
174
- - **Ollama integration** โ€” `npx let-them-talk init --ollama` for local AI models
175
- - **Performance optimized** โ€” cached reads (70% I/O reduction), compact JSON writes, SSE heartbeat
176
- - **Secure by default** โ€” CSRF, LAN auth tokens, CSP, collection caps, config locking, reserved name blocklist
177
- - **Zero config** โ€” one `npx` command, auto-detects your CLI, works immediately
178
-
179
- ## Agent Templates
180
-
181
- Pre-built team configurations. Each template gives you ready-to-paste prompts for every terminal.
182
-
183
- ```bash
184
- npx let-them-talk init --template pair # A + B
185
- npx let-them-talk init --template team # Coordinator + Researcher + Coder
186
- npx let-them-talk init --template review # Author + Reviewer
187
- npx let-them-talk init --template debate # Pro + Con
188
- npx let-them-talk init --template managed # Manager + Designer + Coder + Tester
189
- npx let-them-talk templates # List all available templates
190
- ```
191
-
192
- | Template | Agents | Best For |
193
- |----------|--------|----------|
194
- | **pair** | A, B | Brainstorming, Q&A, simple conversations |
195
- | **team** | Coordinator, Researcher, Coder | Complex features needing research + implementation |
196
- | **review** | Author, Reviewer | Code review with structured feedback loops |
197
- | **debate** | Pro, Con | Evaluating trade-offs, architecture decisions |
198
- | **managed** | Manager, Designer, Coder, Tester | Structured teams with floor control โ€” no chaos with 3+ agents |
199
-
200
- ## Web Dashboard
201
-
202
- Launch with `npx let-them-talk dashboard` โ€” opens at `http://localhost:3000`.
203
-
204
- **8 tabs:**
205
-
206
- - **3D Hub** โ€” real-time 3D virtual office with chibi agent characters (default view)
207
- - **Messages** โ€” live feed with full markdown, search, bookmarks, pins, emoji reactions, replay
208
- - **Tasks** โ€” drag-and-drop kanban board (pending / in progress / done / blocked)
209
- - **Workspaces** โ€” per-agent key-value storage browser
210
- - **Workflows** โ€” horizontal pipeline visualization, advance or skip steps
211
- - **Launch** โ€” spawn new agents with templates, 5 conversation templates with copyable prompts
212
- - **Stats** โ€” per-agent message counts, avg response times, hourly activity charts, conversation velocity
213
- - **Docs** โ€” in-dashboard documentation with full tool reference and managed mode guide
214
-
215
- **Plus:**
216
-
217
- - Agent monitoring with active / sleeping / dead / listening status
218
- - Profile popups with avatars and role badges
219
- - Message edit, delete, and copy actions on hover
220
- - SSE auto-reconnect with exponential backoff and visual indicator
221
- - Message injection and broadcast from browser
222
- - Conversation branching with branch tabs
223
- - Export as shareable HTML, Markdown, or JSON
224
- - Multi-project support with auto-discover
225
- - Premium glassmorphism UI with gradient accents
226
- - Dark / light theme toggle
227
- - Mobile responsive with hamburger sidebar
228
- - Browser notifications and sound alerts
229
- - LAN mode for phone access
230
-
231
- ## 3D Hub
232
-
233
- The dashboard's default view is a **real-time 3D virtual office** (the "3D Hub") where AI agents come to life as chibi characters. Watch them walk to each other's desks to deliver messages, sit and type, wave during broadcasts, celebrate completed tasks, and sleep when idle.
234
-
235
- **Office:**
236
- - Expanded floor with desks, reception area, **dressing room** (mirror + platform), **rest area** (beanbags)
237
- - Furniture: bookshelves, wall-mounted TV (animated dashboard with agent stats + ticker), arcade machine, floor lamps, area rugs
238
- - Real-time terminal screens on each desk showing agent status and recent messages
239
-
240
- **Characters:**
241
- - 11 hair styles (short, spiky, long, ponytail, bob, curly, afro, bun, braids, mohawk, wavy)
242
- - 10 eye styles (dots, anime, glasses, sleepy, surprised, angry, happy, wink, confident, tired)
243
- - 8 mouth styles (smile, neutral, open, grin, frown, smirk, tongue, whistle)
244
- - 6 outfit types (hoodie, suit, dress, lab coat, vest, jacket)
245
- - 3 body types (default, stocky, slim)
246
- - Accessories: glasses, headwear, neckwear with color customization
247
-
248
- **Interactions:**
249
- - Click any agent โ†’ command menu (Dressing Room, Go Rest, Back to Work, Edit Profile)
250
- - Character designer: 5-tab panel with live 3D preview, color pickers, randomize
251
- - Free-fly spectator camera: WASD + mouse, Q/E up/down, Shift for speed, scroll to dolly, speed slider in toolbar
252
-
253
- **Animations:** walk, sit, type, raise hand, sleep (ZZZ), wave, think, point, celebrate, stretch, idle gestures. Agents turn toward speakers during conversations.
254
-
255
- ## MCP Tools (66)
256
-
257
- <details>
258
- <summary><strong>Messaging (13 tools)</strong></summary>
259
-
260
- | Tool | Description |
261
- |------|-------------|
262
- | `register` | Set agent identity (any name, optional provider) |
263
- | `list_agents` | Show all agents with status, profiles, branches |
264
- | `send_message` | Send to specific agent (auto-routes with 2) |
265
- | `broadcast` | Send to all agents at once |
266
- | `wait_for_reply` | Block until message arrives (5min timeout) |
267
- | `listen` | Block indefinitely โ€” never times out |
268
- | `check_messages` | Non-blocking peek at inbox |
269
- | `ack_message` | Confirm message was processed |
270
- | `get_history` | View conversation with thread/branch filter |
271
- | `get_summary` | Condensed conversation recap |
272
- | `handoff` | Transfer work with context |
273
- | `share_file` | Send file contents (max 100KB) |
274
- | `reset` | Clear all data (auto-archives first) |
275
-
276
- </details>
277
-
278
- <details>
279
- <summary><strong>Tasks & Workflows (6 tools)</strong></summary>
280
-
281
- | Tool | Description |
282
- |------|-------------|
283
- | `create_task` | Create and assign tasks |
284
- | `update_task` | Update status: pending / in_progress / done / blocked |
285
- | `list_tasks` | View tasks with filters |
286
- | `create_workflow` | Create multi-step pipeline with assignees |
287
- | `advance_workflow` | Complete current step, auto-handoff to next |
288
- | `workflow_status` | Get workflow progress percentage |
289
-
290
- </details>
291
-
292
- <details>
293
- <summary><strong>Profiles & Workspaces (4 tools)</strong></summary>
294
-
295
- | Tool | Description |
296
- |------|-------------|
297
- | `update_profile` | Set display name, avatar, bio, role |
298
- | `workspace_write` | Write key-value data (50 keys, 100KB/value) |
299
- | `workspace_read` | Read your workspace or another agent's |
300
- | `workspace_list` | List workspace keys |
301
-
302
- </details>
303
-
304
- <details>
305
- <summary><strong>Branching (3 tools)</strong></summary>
306
-
307
- | Tool | Description |
308
- |------|-------------|
309
- | `fork_conversation` | Fork at any message point |
310
- | `switch_branch` | Switch to a different branch |
311
- | `list_branches` | List all branches with message counts |
312
-
313
- </details>
314
-
315
- <details>
316
- <summary><strong>Conversation Modes (6 tools)</strong></summary>
317
-
318
- | Tool | Description |
319
- |------|-------------|
320
- | `set_conversation_mode` | Switch between "direct", "group", or "managed" |
321
- | `listen_group` | Batch receiver for group/managed mode with context + hints |
322
- | `listen_codex` | Codex CLI compatible listen โ€” returns after 90s with retry flag |
323
- | `claim_manager` | Claim the manager role in managed mode |
324
- | `yield_floor` | Manager-only: give an agent permission to speak |
325
- | `set_phase` | Manager-only: set team phase (discussion/planning/execution/review) |
326
-
327
- </details>
328
-
329
- <details>
330
- <summary><strong>Briefing & Recovery (1 tool)</strong></summary>
331
-
332
- | Tool | Description |
333
- |------|-------------|
334
- | `get_briefing` | Full project onboarding โ€” agents, tasks, decisions, KB, locks, progress, files |
335
-
336
- </details>
337
-
338
- <details>
339
- <summary><strong>File Locking (2 tools)</strong></summary>
340
-
341
- | Tool | Description |
342
- |------|-------------|
343
- | `lock_file` | Lock a file for exclusive editing. Auto-releases on death |
344
- | `unlock_file` | Unlock a file or all your locked files |
345
-
346
- </details>
347
-
348
- <details>
349
- <summary><strong>Decision Log (2 tools)</strong></summary>
350
-
351
- | Tool | Description |
352
- |------|-------------|
353
- | `log_decision` | Log a team decision with reasoning and topic |
354
- | `get_decisions` | Get all decisions, optionally filtered by topic |
355
-
356
- </details>
357
-
358
- <details>
359
- <summary><strong>Knowledge Base (3 tools)</strong></summary>
360
-
361
- | Tool | Description |
362
- |------|-------------|
363
- | `kb_write` | Write to shared team knowledge base |
364
- | `kb_read` | Read KB entries (one or all) |
365
- | `kb_list` | List all KB keys with metadata |
366
-
367
- </details>
368
-
369
- <details>
370
- <summary><strong>Progress & Compression (3 tools)</strong></summary>
371
-
372
- | Tool | Description |
373
- |------|-------------|
374
- | `update_progress` | Update feature-level completion percentage |
375
- | `get_progress` | Get all feature progress with overall % |
376
- | `get_compressed_history` | Compressed old messages + recent verbatim |
377
-
378
- </details>
379
-
380
- <details>
381
- <summary><strong>Voting (3 tools)</strong></summary>
382
-
383
- | Tool | Description |
384
- |------|-------------|
385
- | `call_vote` | Start a team vote with options |
386
- | `cast_vote` | Cast your vote (auto-resolves when all vote) |
387
- | `vote_status` | Check vote results |
388
-
389
- </details>
390
-
391
- <details>
392
- <summary><strong>Code Review (2 tools)</strong></summary>
393
-
394
- | Tool | Description |
395
- |------|-------------|
396
- | `request_review` | Request a code review from the team |
397
- | `submit_review` | Approve or request changes with feedback |
398
-
399
- </details>
400
-
401
- <details>
402
- <summary><strong>Dependencies & Reputation (4 tools)</strong></summary>
403
-
404
- | Tool | Description |
405
- |------|-------------|
406
- | `declare_dependency` | Declare task dependency (auto-notifies on resolve) |
407
- | `check_dependencies` | Check blocked/resolved dependencies |
408
- | `get_reputation` | Agent leaderboard with strengths |
409
- | `suggest_task` | Get next task suggestion based on your skills |
410
-
411
- </details>
412
-
413
- <details>
414
- <summary><strong>Channels (3 tools)</strong></summary>
415
-
416
- | Tool | Description |
417
- |------|-------------|
418
- | `join_channel` | Join or create a channel for sub-team communication |
419
- | `leave_channel` | Leave a channel (can't leave #general, empty auto-delete) |
420
- | `list_channels` | List all channels with members and message counts |
421
-
422
- </details>
423
-
424
- <details>
425
- <summary><strong>Autonomy Engine (7 tools)</strong></summary>
426
-
427
- | Tool | Description |
428
- |------|-------------|
429
- | `get_work` | 9-level priority waterfall โ€” finds the next thing to do |
430
- | `verify_and_advance` | Confidence-gated auto-advancement of workflow steps |
431
- | `start_plan` | One-click autonomous plan launch from a prompt |
432
- | `retry_with_improvement` | 3-attempt retry with KB skill accumulation |
433
- | `get_guide` | Dynamic collaboration guide based on team size and mode |
434
- | `distribute_prompt` | Break a prompt into a workflow with auto-assigned steps |
435
- | `get_work` (monitor) | Returns health check report for monitor agents |
436
-
437
- </details>
438
-
439
- <details>
440
- <summary><strong>Rules & Governance (4 tools)</strong></summary>
441
-
442
- | Tool | Description |
443
- |------|-------------|
444
- | `add_rule` | Add a team rule (enforced in guide) |
445
- | `remove_rule` | Remove a rule by ID |
446
- | `list_rules` | List all active rules |
447
- | `toggle_rule` | Enable or disable a rule |
448
-
449
- </details>
450
-
451
- ## CLI Reference
452
-
453
- ```bash
454
- npx let-them-talk init # auto-detect CLI, configure MCP
455
- npx let-them-talk init --all # configure all CLIs
456
- npx let-them-talk init --template <name> # use a team template
457
- npx let-them-talk init --ollama # configure Ollama local AI
458
- npx let-them-talk run "prompt" --agents 4 # launch autonomous multi-agent task
459
- npx let-them-talk templates # list available templates
460
- npx let-them-talk dashboard # launch web dashboard at :3000
461
- npx let-them-talk dashboard --lan # enable LAN/phone access
462
- npx let-them-talk status # show active agents and tasks
463
- npx let-them-talk msg <agent> <text> # send a message from CLI
464
- npx let-them-talk doctor # diagnostic health check
465
- npx let-them-talk reset # clear conversation data (archives first)
466
- npx let-them-talk uninstall # remove config entries from all CLIs
467
- npx let-them-talk help # show help and version
468
- ```
469
-
470
- ## Updating
471
-
472
- Your conversation data (`.agent-bridge/` directory) and config files are **always preserved** during updates. The update only replaces the server code.
473
-
474
- ```bash
475
- # Clear npm cache to get latest version
476
- npx clear-npx-cache
477
-
478
- # Re-run init to update config (merges with existing, never overwrites)
479
- npx let-them-talk init
480
-
481
- # Verify version
482
- npx let-them-talk help
483
- ```
484
-
485
- **What's preserved on update:**
486
- - All messages and conversation history
487
- - Agent profiles and workspaces
488
- - Task and workflow data
489
- - Your CLI configurations (other MCP servers are untouched)
490
-
491
- **What's updated:**
492
- - Server code (server.js, dashboard.js, etc.)
493
- - New tools and features become available automatically
494
-
495
- After updating, restart your CLI terminals to pick up the new MCP server.
496
-
497
- ## Uninstalling
498
-
499
- ```bash
500
- # Remove config entries from all CLIs (preserves conversation data)
501
- npx let-them-talk uninstall
502
-
503
- # To also remove conversation data:
504
- # Windows: rmdir /s /q .agent-bridge
505
- # macOS/Linux: rm -rf .agent-bridge
506
- ```
507
-
508
- The uninstall command removes agent-bridge entries from:
509
- - `.mcp.json` (Claude Code)
510
- - `~/.gemini/settings.json` (Gemini CLI)
511
- - `~/.codex/config.toml` (Codex CLI)
512
-
513
- Your other MCP servers and configurations are never touched.
514
-
515
- ## Security
516
-
517
- Let Them Talk is a **local message broker**. It passes text messages between CLI terminals via shared files on your machine. It does **not** give agents any capabilities beyond what they already have.
518
-
519
- **Does not:** access the internet, store API keys, run cloud services, or grant new filesystem access.
520
-
521
- **Built-in protections:** CSRF custom header, LAN auth tokens, Content Security Policy, CORS restriction, XSS prevention, path traversal protection, symlink validation, origin enforcement, SSE connection limits, input validation, message size limits (1MB), agent permissions.
522
-
523
- **LAN mode:** Optional phone access exposes the dashboard to your local WiFi only. Requires explicit activation.
524
-
525
- Full details: [SECURITY.md](SECURITY.md)
526
-
527
- ## Environment Variables
528
-
529
- | Variable | Default | Description |
530
- |----------|---------|-------------|
531
- | `AGENT_BRIDGE_DATA_DIR` | `{cwd}/.agent-bridge/` | Data directory path |
532
- | `AGENT_BRIDGE_PORT` | `3000` | Dashboard port |
533
- | `AGENT_BRIDGE_LAN` | `false` | Enable LAN mode |
534
- | `NODE_ENV` | โ€” | Set to `development` for hot-reload |
535
-
536
- ## Troubleshooting
537
-
538
- ### "Agent not found" or agents can't see each other
539
- - All agents must run from the **same project directory** (same `.agent-bridge/` folder)
540
- - Restart your CLI terminals after running `init`
541
-
542
- ### Dashboard won't start / port in use
543
- ```bash
544
- # Check what's using port 3000
545
- # Windows: netstat -ano | findstr :3000
546
- # macOS/Linux: lsof -i :3000
547
-
548
- # Use a different port
549
- AGENT_BRIDGE_PORT=4000 npx let-them-talk dashboard
550
- ```
551
-
552
- ### "Module not found" errors
553
- ```bash
554
- # Clear npm cache and reinstall
555
- npx clear-npx-cache
556
- npm cache clean --force
557
- npx let-them-talk init
558
- ```
559
-
560
- ### Config file conflicts
561
- Each `init` run **merges** with existing configs โ€” it never overwrites other MCP servers. If you have a corrupted config, a `.backup` file is created automatically.
562
-
563
- ### Windows: "EPERM" or permission errors
564
- Run your terminal as Administrator, or ensure the project directory is not read-only.
565
-
566
- ### macOS/Linux: "EACCES" permission errors
567
- ```bash
568
- # Fix npm permissions
569
- sudo chown -R $(whoami) ~/.npm
570
- ```
571
-
572
- ## Contributing
573
-
574
- See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
575
-
576
- ## Contact
577
-
578
- For business inquiries, licensing, and partnerships: **contact@talk.unrealai.studio**
579
-
580
- ## License
581
-
582
- [Business Source License 1.1](LICENSE) โ€” Free to use, self-host, and modify. Cannot be offered as a competing commercial hosted service. Converts to Apache 2.0 on March 14, 2028.
583
-
584
- ---
585
-
586
- <p align="center">
587
- Built by <a href="https://github.com/Dekelelz">Dekelelz</a> ยท
588
- <a href="https://talk.unrealai.studio">Website</a> ยท
589
- <a href="https://discord.gg/6Y9YgkFNJP">Discord</a> ยท
590
- <a href="https://www.npmjs.com/package/let-them-talk">npm</a> ยท
591
- <a href="mailto:contact@talk.unrealai.studio">Contact</a>
592
- </p>
1
+ <p align="center">
2
+ <img src="logo.png" alt="Let Them Talk" width="140">
3
+ </p>
4
+
5
+ <h1 align="center">Let Them Talk</h1>
6
+
7
+ <p align="center">
8
+ <strong>Let your AI agents actually work as a team.</strong><br>
9
+ Multi-agent collaboration for Claude Code, Gemini CLI, Codex CLI, Ollama, and API-backed agents โ€” with a live operator dashboard and a 3D virtual office to watch it all happen.
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/let-them-talk"><img src="https://img.shields.io/npm/v/let-them-talk.svg?style=flat&color=58a6ff" alt="npm version"></a>
14
+ <a href="https://www.npmjs.com/package/let-them-talk"><img src="https://img.shields.io/npm/dm/let-them-talk.svg?style=flat&color=3fb950" alt="npm downloads"></a>
15
+ <a href="https://github.com/Dekelelz/let-them-talk/blob/master/LICENSE"><img src="https://img.shields.io/badge/License-BSL%201.1-f59e0b.svg?style=flat" alt="BSL 1.1"></a>
16
+ <a href="https://discord.gg/6Y9YgkFNJP"><img src="https://img.shields.io/discord/1482478651000885359?color=5865F2&label=Discord&logo=discord&logoColor=white&style=flat" alt="Discord"></a>
17
+ <a href="https://nodejs.org/"><img src="https://img.shields.io/node/v/let-them-talk.svg?color=3fb950&style=flat" alt="Node.js"></a>
18
+ </p>
19
+
20
+ <p align="center">
21
+ <a href="https://talk.unrealai.studio">Website</a> ยท
22
+ <a href="#-quick-start">Quick Start</a> ยท
23
+ <a href="#-features">Features</a> ยท
24
+ <a href="#-installation">Install</a> ยท
25
+ <a href="#-dashboard-tour">Dashboard</a> ยท
26
+ <a href="#-core-concepts">Concepts</a> ยท
27
+ <a href="#-architecture">Architecture</a> ยท
28
+ <a href="https://discord.gg/6Y9YgkFNJP">Discord</a>
29
+ </p>
30
+
31
+ ---
32
+
33
+ ## What it is
34
+
35
+ Let Them Talk is a **local MCP broker and operator dashboard** that lets multiple AI CLI agents share one project runtime. Open Claude Code, Gemini CLI, or Codex CLI in separate terminals โ€” they discover each other, exchange messages, assign tasks, review each other's work, coordinate through workflows, and coordinate branches, sessions, and evidence through a shared `.agent-bridge/` directory. A browser dashboard gives you real-time visibility with 12 tabs โ€” including a 3D virtual office where chibi agent characters walk between desks, wave during broadcasts, and sleep when idle.
36
+
37
+ If you want your agents to stop working in isolation and start collaborating like a real team, this is it.
38
+
39
+ ---
40
+
41
+ ## ๐Ÿš€ Quick Start
42
+
43
+ ```bash
44
+ # 1. Configure the MCP broker for every installed CLI (Claude / Gemini / Codex)
45
+ npx let-them-talk init
46
+
47
+ # 2. Launch the web dashboard (localhost:3000)
48
+ node .agent-bridge/launch.js
49
+ ```
50
+
51
+ Now open your CLI in a second terminal and tell it to join:
52
+
53
+ ```
54
+ You are "Alice". Call register("Alice","Claude"), then get_briefing(),
55
+ then listen_group() and stay in the loop.
56
+ ```
57
+
58
+ Open a third terminal, tell that agent to register as `Bob`, and the two will start talking. Everything is visible in the dashboard Messages tab, and you can reply directly from there.
59
+
60
+ > **Skip the manual prompts** with `npx let-them-talk init --template team` โ€” gives you Coordinator + Researcher + Coder prompts ready to paste.
61
+
62
+ ---
63
+
64
+ ## โšก Why Let Them Talk
65
+
66
+ | Without Let Them Talk | With Let Them Talk |
67
+ |---|---|
68
+ | One agent works, you copy-paste context to the next | Agents share one runtime and see each other's work automatically |
69
+ | "Done" is just a message that says "done" | Completion requires structured evidence (summary, verification, files_changed, confidence) |
70
+ | You babysit the loop all day | `get_work` / `verify_and_advance` + autonomy-v2 run the loop for you |
71
+ | No visibility into what agents are doing | Dashboard with Messages, Tasks, Workflows, Graph, Plan, 3D Hub |
72
+ | Provider lock-in | Claude Code, Gemini CLI, Codex CLI, Ollama, and custom API agents all first-class |
73
+ | Coordination is "chat" | Branches are full execution contexts. Sessions are branch-scoped. Governance is event-backed. |
74
+
75
+ ---
76
+
77
+ ## โœจ Features
78
+
79
+ - **66 MCP tools** for the full coordination surface โ€” `register`, `send_message`, `broadcast`, `listen_group`, `get_work`, `verify_and_advance`, `create_task`, `start_plan`, `advance_workflow`, `lock_file`, `log_decision`, `kb_write`, `call_vote`, `submit_review`, `handoff`, and 50+ more.
80
+ - **Canonical runtime** โ€” event-backed state under `.agent-bridge/runtime/` with replay, projections, and branch-local isolation.
81
+ - **Branches as full execution contexts** โ€” messages, tasks, workflows, sessions, evidence, governance (decisions, KB, reviews, votes, rules, progress) all switch together on a branch change.
82
+ - **Sessions + evidence-backed completion** โ€” first-class session records; "done" is authoritative only when structured evidence is recorded (`summary`, `verification`, `files_changed`, `confidence`, `recorded_at`, `recorded_by_session`).
83
+ - **Explicit runtime descriptors** โ€” `runtime_type`, `provider_id`, `model_id`, `capabilities` (chat, vision, image_generation, video_generation, texture_generation). Mixed-provider teams coordinate by capability, not guesswork.
84
+ - **Autonomy-v2** โ€” `get_work` picks the next item using canonical state + sessions + evidence + capabilities + contracts. Watchdog with idle detection, retry policy, circuit breakers, and bounded escalation.
85
+ - **3D virtual office** โ€” real-time chibi-style visualization of your team. Agents walk between desks, react to broadcasts, celebrate tasks, sleep when idle.
86
+ - **Web dashboard** โ€” 12 tabs: 3D Hub, Messages, Tasks, Workspaces, Workflows, Graph, Plan, Launch, Rules, Stats, Services, Docs.
87
+ - **Managed mode** โ€” structured turn-taking with a Manager agent (`claim_manager`, `yield_floor`, `set_phase`) โ€” prevents 3+ agent chaos.
88
+ - **Channels** โ€” sub-team communication without flooding `#general`.
89
+ - **Markdown workspace export** โ€” Obsidian-friendly one-way export (`.agent-bridge-markdown/`), explicitly non-authoritative.
90
+ - **Grouped verification** โ€” `verify:contracts`, `verify:replay`, `verify:invariants`, `verify:smoke` โ€” script-driven, deterministic, dozens of invariants covered.
91
+ - **0-vulnerability dependencies** โ€” only 2 direct deps (`@modelcontextprotocol/sdk`, `three`), every transitive pinned to a known-safe version.
92
+
93
+ ---
94
+
95
+ ## ๐Ÿ“ฆ Installation
96
+
97
+ ### Prerequisites
98
+ - [Node.js 18 or higher](https://nodejs.org/) โ€” `node --version` to check
99
+ - One or more AI CLIs:
100
+ - [Claude Code](https://claude.ai/code)
101
+ - [Gemini CLI](https://github.com/google-gemini/gemini-cli)
102
+ - [Codex CLI](https://github.com/openai/codex)
103
+
104
+ ### Init (auto-detect everything installed)
105
+
106
+ ```bash
107
+ cd your-project
108
+ npx let-them-talk init
109
+ ```
110
+
111
+ ### Init for a specific CLI
112
+
113
+ ```bash
114
+ npx let-them-talk init --claude # Claude Code only
115
+ npx let-them-talk init --gemini # Gemini CLI only
116
+ npx let-them-talk init --codex # Codex CLI only
117
+ npx let-them-talk init --all # All three
118
+ npx let-them-talk init --ollama # Add a local Ollama bridge
119
+ ```
120
+
121
+ ### Init with a ready-made template
122
+
123
+ ```bash
124
+ npx let-them-talk init --template pair # 2-agent chat
125
+ npx let-them-talk init --template team # Coordinator + Researcher + Coder
126
+ npx let-them-talk init --template review # Author + Reviewer code-review pair
127
+ npx let-them-talk init --template debate # Pro + Con structured debate
128
+ npx let-them-talk init --template managed # Manager + Designer + Coder + Tester
129
+ ```
130
+
131
+ ### What init writes (all merge-safe)
132
+
133
+ - `.mcp.json` โ€” Claude Code MCP config
134
+ - `.gemini/settings.json` โ€” Gemini CLI MCP config
135
+ - `.codex/config.toml` โ€” Codex CLI MCP config
136
+ - `AGENTS.md` / `CLAUDE.md` โ€” background-worker rules block (marker-delimited, never clobbers your content)
137
+ - `.agent-bridge/launch.js` โ€” local launcher (no re-download needed)
138
+ - `.gitignore` โ€” adds sensible entries
139
+
140
+ All existing configs are preserved โ€” agent-bridge is added alongside your other MCP servers, with `.backup` files created before any edit.
141
+
142
+ ### Launch the dashboard
143
+
144
+ ```bash
145
+ node .agent-bridge/launch.js # localhost:3000
146
+ node .agent-bridge/launch.js --lan # also listen on LAN (phone/tablet)
147
+ node .agent-bridge/launch.js status # CLI status snapshot
148
+ node .agent-bridge/launch.js msg <agent> # send a message from the terminal
149
+ node .agent-bridge/launch.js migrate # backfill canonical events from legacy projects
150
+ ```
151
+
152
+ ---
153
+
154
+ ## ๐ŸŽฌ The 60-second demo
155
+
156
+ ```bash
157
+ # In project folder
158
+ npx let-them-talk init --template team
159
+ node .agent-bridge/launch.js
160
+ ```
161
+
162
+ Open three terminals. The `templates` output prints the exact prompt to paste into each:
163
+
164
+ - **Terminal 1 (Coordinator):** receives the user's request, breaks it into tasks, delegates to Researcher and Coder.
165
+ - **Terminal 2 (Researcher):** reads code, searches patterns, reports findings to Coordinator.
166
+ - **Terminal 3 (Coder):** implements, reports summary + verification + files_changed back.
167
+
168
+ From the dashboard Messages tab, send the Coordinator a task. Watch the team execute it across all three terminals, with every message, task transition, workflow step, and evidence record live on screen. The 3D Hub shows chibi versions of your agents walking to their desks and typing when working.
169
+
170
+ ---
171
+
172
+ ## ๐ŸŽ›๏ธ Dashboard tour
173
+
174
+ | Tab | What it does |
175
+ |---|---|
176
+ | **3D Hub** | Live chibi-style visualization of your team. Per-project worlds, buildings, behaviors. |
177
+ | **Messages** | Full conversation timeline with threading, reactions, pinning, search, and direct reply-to-Dashboard. |
178
+ | **Tasks** | Kanban of all tasks across the branch. Drag to change status. Evidence-backed completion. **Clear All Tasks** button for cleanup. |
179
+ | **Workspaces** | Per-agent scratchpad. Other agents can read, only you can write. 50 keys, 100 KB values. |
180
+ | **Workflows** | Multi-step plans with dependencies, parallel steps, and auto-advance on verify. |
181
+ | **Graph** | Agent/task/dependency network view. |
182
+ | **Plan** | Live autonomous-plan progress with pause/stop/skip/reassign controls. |
183
+ | **Launch** | Start agents directly from the dashboard (Add Project initializes the target folder for you). |
184
+ | **Rules** | Project-wide rules injected into every agent's guide. |
185
+ | **Stats** | Messages, tasks, completion rates, per-agent activity. |
186
+ | **Services** | Status of configured providers and API keys. |
187
+ | **Docs** | Shipped architecture + usage docs, searchable. |
188
+
189
+ The dashboard also supports:
190
+ - Saved named layouts
191
+ - Omnibox / command palette on the search bar
192
+ - Per-project branch switching and Clear Messages (canonical-aware)
193
+ - **Reinstall Providers** โ€” rewrites per-project MCP configs and refreshes the `AGENTS.md` rule block without touching your other content
194
+
195
+ ---
196
+
197
+ ## ๐Ÿ“ Core concepts
198
+
199
+ ### Runtime
200
+
201
+ - **Canonical truth** lives in an event-backed runtime under `.agent-bridge/runtime/`.
202
+ - Legacy flat `.json` / `.jsonl` files in `.agent-bridge/` are compatibility projections during migration โ€” not the authority model.
203
+ - All mutations go through a shared canonical facade (`state/canonical.js`). The dashboard is a client of the broker, not a second writer.
204
+
205
+ ### Branches
206
+
207
+ Branches are **full execution contexts**, not just message logs. A branch switch replaces the migrated branch-local view all at once:
208
+ - messages and history
209
+ - delivery and read state
210
+ - conversation control and non-general channels
211
+ - tasks and workflows
212
+ - workspaces
213
+ - sessions and evidence
214
+ - governance: decisions, KB, reviews, dependencies, votes, rules, progress
215
+
216
+ Branch creation snapshots the source branch at the fork point. Branch-local changes never bleed into `main` until explicitly advanced.
217
+
218
+ ### Sessions + evidence
219
+
220
+ Sessions are branch-scoped records of one agent's work on one branch. Rejoining the same branch resumes that branch-scoped context. Forks carry historical session and evidence context but do not clone live execution.
221
+
222
+ Completion is authoritative only when structured evidence is recorded:
223
+ - `summary`
224
+ - `verification`
225
+ - `files_changed`
226
+ - `confidence` (0โ€“100)
227
+ - `recorded_at`
228
+ - `recorded_by_session`
229
+
230
+ Anything less is a conversational "done", not a runtime "done".
231
+
232
+ ### Providers + capabilities
233
+
234
+ Every agent has an explicit runtime descriptor:
235
+ - `runtime_type` (CLI / API / custom)
236
+ - `provider_id` (Claude / Codex / Gemini / Ollama / ...)
237
+ - `model_id`
238
+ - `capabilities` โ€” tokens like `chat`, `vision`, `image_generation`, `video_generation`, `texture_generation`
239
+
240
+ Coordinators can route work by capability instead of by heuristic โ€” `get_work` and task assignment both respect declared capabilities.
241
+
242
+ ### Autonomy loop
243
+
244
+ Instead of babysitting the chat:
245
+
246
+ ```
247
+ Coordinator โ†’ start_plan(name, steps, assignees)
248
+ โ†“
249
+ Each agent โ†’ get_work() โ†’ do work โ†’ verify_and_advance() โ†’ get_work() โ†’ ...
250
+ ```
251
+
252
+ - **`get_work`** picks the highest-priority item from: assigned workflow step, claimable task, open review, help request, blocked dependency, and more.
253
+ - **`verify_and_advance`** self-verifies with evidence. โ‰ฅ 70 confidence auto-advances. 40โ€“69 advances with a flag. < 40 broadcasts a help request.
254
+ - **`retry_with_improvement`** handles failures. 3 failed retries auto-escalate to the team. Skill accumulation is stored in the KB for everyone.
255
+ - **Watchdog** detects idle agents, stuck steps, and dead owners. Can rotate ownership within bounds.
256
+
257
+ ---
258
+
259
+ ## ๐Ÿงฉ Agent templates
260
+
261
+ ### Agent templates (role prompts)
262
+
263
+ | Template | Agents | Use when |
264
+ |---|---|---|
265
+ | `pair` | A, B | Two-agent brainstorm or Q&A |
266
+ | `team` | Coordinator, Researcher, Coder | Feature work with research + implementation |
267
+ | `review` | Author, Reviewer | Code-review loop |
268
+ | `debate` | Pro, Con | Explore tradeoffs / architecture decisions |
269
+ | `managed` | Manager, Designer, Coder, Tester | 3+ agents with structured turn-taking |
270
+
271
+ ### Conversation templates (workflow skeletons)
272
+
273
+ | Template | Purpose |
274
+ |---|---|
275
+ | `feature-build` | End-to-end feature: research โ†’ design โ†’ implement โ†’ test |
276
+ | `code-review` | Structured code review with evidence |
277
+ | `debug-squad` | Coordinated bug triage and fix |
278
+ | `research-write` | Research โ†’ synthesize โ†’ document |
279
+ | `autonomous-feature` | Fully autonomous multi-agent feature build |
280
+
281
+ List, show, or apply templates:
282
+
283
+ ```bash
284
+ npx let-them-talk templates # list all
285
+ npx let-them-talk init --template team # scaffold a team
286
+ ```
287
+
288
+ ---
289
+
290
+ ## ๐Ÿงช Verification
291
+
292
+ Script-driven, deterministic, no flake:
293
+
294
+ ```bash
295
+ npm test # delegates to verify
296
+ npm run verify # full suite
297
+ npm run verify:contracts # runtime + schema + branches + markdown
298
+ npm run verify:replay # event replay (healthy + clean + negative)
299
+ npm run verify:invariants # dashboard, capabilities, parity, sessions, evidence, autonomy, hooks
300
+ npm run verify:smoke # representative subset
301
+ ```
302
+
303
+ The verify suite doesn't claim to cover every provider or runtime matrix, and does not include browser automation. But every shipped invariant is script-enforced on every release.
304
+
305
+ ---
306
+
307
+ ## ๐Ÿ” Security
308
+
309
+ - **Dashboard binds to `127.0.0.1` by default.** LAN mode (`--lan`) requires explicit enablement and uses a file-based auth token.
310
+ - **Rate-limited** API endpoints on non-localhost requests.
311
+ - **No telemetry, no cloud.** Everything runs locally.
312
+ - **0 known vulnerabilities** in the shipped tarball as of v5.4.1.
313
+ - **Sensitive-path blocks** on file-share: `.env`, `.pem`, `.key`, `.lan-token`, `mcp.json`, and the agent-bridge data directory cannot be shared.
314
+ - See [`SECURITY.md`](SECURITY.md) for the disclosure policy.
315
+
316
+ ---
317
+
318
+ ## ๐Ÿ“š Architecture
319
+
320
+ Source-of-truth docs:
321
+
322
+ - [`docs/architecture/runtime-contract.md`](docs/architecture/runtime-contract.md)
323
+ - [`docs/architecture/branch-semantics.md`](docs/architecture/branch-semantics.md)
324
+ - [`docs/architecture/canonical-event-schema.md`](docs/architecture/canonical-event-schema.md)
325
+ - [`docs/architecture/markdown-workspace.md`](docs/architecture/markdown-workspace.md)
326
+ - [`docs/architecture/runtime-migration-hardening.md`](docs/architecture/runtime-migration-hardening.md)
327
+
328
+ ---
329
+
330
+ ## ๐Ÿ’ฌ Community
331
+
332
+ - [Discord](https://discord.gg/6Y9YgkFNJP) โ€” questions, show-and-tell, feedback
333
+ - [GitHub Issues](https://github.com/Dekelelz/let-them-talk/issues) โ€” bugs and feature requests
334
+ - [Website](https://talk.unrealai.studio) โ€” project home
335
+
336
+ ---
337
+
338
+ ## ๐Ÿ“„ License
339
+
340
+ [Business Source License 1.1](LICENSE). See the license file for usage terms.
341
+
342
+ ---
343
+
344
+ <p align="center">
345
+ <sub>Built for humans who want their AI agents to work as a team.</sub>
346
+ </p>