let-them-talk 4.2.0 → 5.2.0
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.
- package/CHANGELOG.md +640 -540
- package/README.md +592 -415
- package/cli.js +1089 -589
- package/conversation-templates/autonomous-feature.json +22 -0
- package/conversation-templates/code-review.json +21 -11
- package/conversation-templates/debug-squad.json +21 -11
- package/conversation-templates/feature-build.json +21 -11
- package/conversation-templates/research-write.json +21 -11
- package/dashboard.html +9250 -7771
- package/dashboard.js +1232 -29
- package/office/agents.js +148 -4
- package/office/animation.js +68 -0
- package/office/assets.js +431 -0
- package/office/builder.js +355 -0
- package/office/building-interior.js +261 -0
- package/office/campus-env.js +119 -23
- package/office/car-hud.js +368 -0
- package/office/daynight.js +221 -0
- package/office/economy-hud.js +432 -0
- package/office/economy-ui.js +238 -0
- package/office/environment.js +818 -808
- package/office/face.js +65 -0
- package/office/fast-travel.js +215 -0
- package/office/hq-building.js +295 -0
- package/office/index.js +1095 -423
- package/office/instancing.js +160 -0
- package/office/lod-manager.js +165 -0
- package/office/multiplayer-hud.js +428 -0
- package/office/net-client.js +299 -0
- package/office/particles.js +172 -0
- package/office/player.js +658 -436
- package/office/post-processing.js +82 -0
- package/office/sky.js +319 -0
- package/office/street-furniture.js +308 -0
- package/office/vehicle.js +455 -0
- package/office/world-save.js +91 -0
- package/package.json +59 -59
- package/server.js +7190 -4685
- package/conversation-templates/managed-team.json +0 -12
package/README.md
CHANGED
|
@@ -1,415 +1,592 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<img src="
|
|
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="
|
|
23
|
-
<a href="
|
|
24
|
-
<a href="#
|
|
25
|
-
<a href="
|
|
26
|
-
</
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
**Terminal
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
**
|
|
162
|
-
-
|
|
163
|
-
-
|
|
164
|
-
-
|
|
165
|
-
|
|
166
|
-
**
|
|
167
|
-
-
|
|
168
|
-
-
|
|
169
|
-
-
|
|
170
|
-
-
|
|
171
|
-
-
|
|
172
|
-
-
|
|
173
|
-
|
|
174
|
-
**
|
|
175
|
-
-
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
|
193
|
-
|
|
194
|
-
|
|
|
195
|
-
|
|
|
196
|
-
|
|
|
197
|
-
|
|
|
198
|
-
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
|
268
|
-
|
|
269
|
-
| `
|
|
270
|
-
| `
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
</
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
|
299
|
-
|
|
300
|
-
| `
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
|
310
|
-
|
|
311
|
-
| `
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
|
321
|
-
|
|
322
|
-
| `
|
|
323
|
-
| `
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
|
333
|
-
|
|
334
|
-
| `
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
<
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
| `
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
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>
|