@sztlink/pi-ensemble 0.1.0-alpha.12
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 +103 -0
- package/LICENSE +21 -0
- package/README.md +142 -0
- package/SECURITY.md +27 -0
- package/bin/ensemble.mjs +217 -0
- package/docs/ADAPTERS.md +159 -0
- package/docs/AUDIT.md +20 -0
- package/docs/CLAUDE_AGENT_TEAMS.md +149 -0
- package/docs/LANDSCAPE.md +452 -0
- package/docs/QUICKSTART.md +149 -0
- package/docs/ROADMAP.md +313 -0
- package/docs/RUNTIME_RECIPES.md +111 -0
- package/docs/SPEC.md +132 -0
- package/examples/claude-agent-teams-lead.md +38 -0
- package/examples/ensemble-tmux +136 -0
- package/extensions/pi-ensemble.ts +212 -0
- package/lib/core.mjs +517 -0
- package/package.json +54 -0
package/docs/AUDIT.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Audit notes — pi-ensemble v0.1-alpha
|
|
2
|
+
|
|
3
|
+
## Decision
|
|
4
|
+
|
|
5
|
+
Publish as a standalone package/repository: `sztlink/pi-ensemble`.
|
|
6
|
+
|
|
7
|
+
Reason: the protocol is generic infrastructure for local coding-agent coordination. Keeping it inside a TurboQuant benchmark repo would confuse purpose, audience, and security posture.
|
|
8
|
+
|
|
9
|
+
## Auditor synthesis
|
|
10
|
+
|
|
11
|
+
- **Suely Rolnik:** approved only as membrane, not empire. The system must reduce relay burden without turning Felipe's ateliê into a factory of self-automation.
|
|
12
|
+
- **Vilém Flusser:** approved if the files remain the material interface. It becomes artifact when another developer can use it without the szt.link implant.
|
|
13
|
+
- **Case/Mori lens:** v0.1 must avoid network, process spawning, remote sessions, credential handling, and hidden persistence.
|
|
14
|
+
- **Bion lens:** logs are not thought. Require typed handoffs and human synthesis; avoid auto-summarizing loops in v0.1.
|
|
15
|
+
- **Casey Reas lens:** the interface should show behavior: who has a message, who claims what, what changed. Avoid dashboards that merely inventory state.
|
|
16
|
+
- **Giselle Beiguelman lens:** preserve traces in human-readable files; do not create opaque telemetry or surveillance of agents/users.
|
|
17
|
+
|
|
18
|
+
## v0.1 acceptance test
|
|
19
|
+
|
|
20
|
+
A user can delete the CLI/extension and still understand the entire collaboration by reading `.pi-ensemble/`.
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Claude Code Agent Teams interop
|
|
2
|
+
|
|
3
|
+
Claude Code Agent Teams already provides the right runtime abstraction for many-Claude parallelism: a lead session, teammates with independent context windows, a shared task list, mailbox, task claiming, and tmux/iTerm display modes.
|
|
4
|
+
|
|
5
|
+
`pi-ensemble` should not recreate that layer.
|
|
6
|
+
|
|
7
|
+
Instead, use `pi-ensemble` as the cross-runtime ledger around Agent Teams.
|
|
8
|
+
|
|
9
|
+
## Recommended architecture
|
|
10
|
+
|
|
11
|
+
```txt
|
|
12
|
+
Felipe / Pi / another runtime
|
|
13
|
+
↕ durable handoff
|
|
14
|
+
.pi-ensemble/
|
|
15
|
+
↕
|
|
16
|
+
Claude Code lead session
|
|
17
|
+
↕ native Claude Agent Teams internals
|
|
18
|
+
Claude teammate A / B / C
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The Claude lead can coordinate teammates however Claude Code wants. `pi-ensemble` records only the durable boundary events needed by other runtimes and by the human after the fact.
|
|
22
|
+
|
|
23
|
+
## What to mirror into pi-ensemble
|
|
24
|
+
|
|
25
|
+
Mirror these events:
|
|
26
|
+
|
|
27
|
+
- lead accepts a handoff;
|
|
28
|
+
- lead claims or releases paths/worktrees;
|
|
29
|
+
- lead starts a meaningful Agent Teams run;
|
|
30
|
+
- lead finds a durable fact that other runtimes need;
|
|
31
|
+
- lead hits a blocker requiring Pi/human/another runtime;
|
|
32
|
+
- lead produces a result pointer;
|
|
33
|
+
- lead asks a cross-runtime question;
|
|
34
|
+
- lead finishes and returns control.
|
|
35
|
+
|
|
36
|
+
Do **not** mirror:
|
|
37
|
+
|
|
38
|
+
- every teammate message;
|
|
39
|
+
- internal debate;
|
|
40
|
+
- transient hypotheses;
|
|
41
|
+
- token/cost chatter;
|
|
42
|
+
- raw terminal scrollback;
|
|
43
|
+
- Claude team topology unless it affects external coordination.
|
|
44
|
+
|
|
45
|
+
Rule:
|
|
46
|
+
|
|
47
|
+
```txt
|
|
48
|
+
If Pi needs it to decide, publish, avoid conflict, or resume later -> mirror.
|
|
49
|
+
If it only helps Claude teammates coordinate internally -> keep it in Claude.
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Lead-session startup ritual
|
|
53
|
+
|
|
54
|
+
From the project root:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
ensemble status
|
|
58
|
+
ensemble inbox --agent claude-lead --since-last-read
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
If there is a new handoff, acknowledge it:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
ensemble ack msg_xxx --from claude-lead --body "Claude lead received <task>; preparing Agent Teams run."
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Claim paths before edits:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
ensemble claim src/module-a --agent claude-lead
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Record durable start:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
ensemble note "Claude lead started Agent Teams run: security/perf/tests review for src/module-a." \
|
|
77
|
+
--from claude-lead
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Return result:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
ensemble send pi \
|
|
84
|
+
"Result: Agent Teams review complete. Findings in /path/to/findings.md. No edits applied." \
|
|
85
|
+
--from claude-lead \
|
|
86
|
+
--type result
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Release paths:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
ensemble release src/module-a --agent claude-lead
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Prompt template for a Claude lead
|
|
96
|
+
|
|
97
|
+
Use this when Pi or a human hands work to a Claude lead:
|
|
98
|
+
|
|
99
|
+
```txt
|
|
100
|
+
You are a Claude Code lead session participating in pi-ensemble.
|
|
101
|
+
|
|
102
|
+
Before work:
|
|
103
|
+
1. Run `ensemble status` from the project root.
|
|
104
|
+
2. Read new inbox items with `ensemble inbox --agent claude-lead --since-last-read`.
|
|
105
|
+
3. Ack the handoff id with `ensemble ack msg_xxx --from claude-lead --body "received"`.
|
|
106
|
+
4. Claim any paths you may edit.
|
|
107
|
+
|
|
108
|
+
You may use Claude Code Agent Teams internally if parallel teammates are useful.
|
|
109
|
+
|
|
110
|
+
Mirror only durable milestones into pi-ensemble:
|
|
111
|
+
- accepted task frame;
|
|
112
|
+
- claims/releases;
|
|
113
|
+
- durable findings;
|
|
114
|
+
- blockers/questions;
|
|
115
|
+
- result pointers;
|
|
116
|
+
- final handoff.
|
|
117
|
+
|
|
118
|
+
Do not mirror every internal teammate message.
|
|
119
|
+
|
|
120
|
+
When done, send a concise result with exact paths/URLs and release claims.
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## When to use Agent Teams vs plain Claude lead
|
|
124
|
+
|
|
125
|
+
Use Agent Teams when:
|
|
126
|
+
|
|
127
|
+
- work splits into independent lenses or files;
|
|
128
|
+
- review/research benefits from multiple perspectives;
|
|
129
|
+
- debugging has competing hypotheses;
|
|
130
|
+
- the lead can synthesize without heavy same-file conflicts.
|
|
131
|
+
|
|
132
|
+
Use a single Claude lead when:
|
|
133
|
+
|
|
134
|
+
- task is sequential;
|
|
135
|
+
- one file is edited by everyone;
|
|
136
|
+
- coordination overhead exceeds the task;
|
|
137
|
+
- a focused patch is enough.
|
|
138
|
+
|
|
139
|
+
## Failure modes and pi-ensemble fallback
|
|
140
|
+
|
|
141
|
+
Agent Teams are experimental and can have resume/task-state/shutdown limitations. If the team state is lost but the lead mirrored durable events, Pi can still reconstruct:
|
|
142
|
+
|
|
143
|
+
- what was requested;
|
|
144
|
+
- what paths were owned;
|
|
145
|
+
- what result pointers exist;
|
|
146
|
+
- what questions/blockers remain;
|
|
147
|
+
- who needs to continue.
|
|
148
|
+
|
|
149
|
+
This is the reason `pi-ensemble` remains separate from Agent Teams.
|
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Landscape/benchmark of existing Claude Code, Pi and terminal-agent orchestrators informing pi-ensemble
|
|
3
|
+
tags:
|
|
4
|
+
- pi-ensemble
|
|
5
|
+
- claude-code
|
|
6
|
+
- pi
|
|
7
|
+
- orchestration
|
|
8
|
+
- benchmark
|
|
9
|
+
- multi-agent
|
|
10
|
+
created: '2026-05-05'
|
|
11
|
+
---
|
|
12
|
+
# pi-ensemble — benchmark/landscape de orquestradores existentes
|
|
13
|
+
|
|
14
|
+
Este é o levantamento correto que deu origem ao `pi-ensemble`: não TurboQuant/KV-cache, mas o ecossistema de ferramentas que tentam coordenar múltiplos Claude Code/Pi/Codex/terminal agents.
|
|
15
|
+
|
|
16
|
+
## Pergunta
|
|
17
|
+
|
|
18
|
+
O que já existe no campo de orquestração local de agentes de código, e onde o `pi-ensemble` deve se diferenciar?
|
|
19
|
+
|
|
20
|
+
## Achado central
|
|
21
|
+
|
|
22
|
+
O campo já tem muitos projetos tentando resolver “múltiplos agentes trabalhando em paralelo”, mas quase todos caem em um destes modelos:
|
|
23
|
+
|
|
24
|
+
1. **mission control / TUI** — gerencia várias instâncias como tarefas em workspaces separados;
|
|
25
|
+
2. **tmux spawner** — cria janelas/panes de Claude Code e manda mensagens;
|
|
26
|
+
3. **daemon/orchestrator** — controla lifecycle, worktrees e coordenação;
|
|
27
|
+
4. **blackboard/memory plugin** — compartilha contexto, mas não necessariamente coordena handoffs;
|
|
28
|
+
5. **Pi extension / Claude agent-team clone** — tenta portar o modelo de agent teams para Pi.
|
|
29
|
+
|
|
30
|
+
A lacuna para o `pi-ensemble` é outra:
|
|
31
|
+
|
|
32
|
+
> protocolo local, file-only, auditável, sem spawn, sem daemon, sem rede, que deixa qualquer agente participar lendo/escrevendo blackboard + inbox + claims.
|
|
33
|
+
|
|
34
|
+
Ou seja: menos “orquestrador que controla agentes”, mais **camada de handoff legível entre agentes já existentes**.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
# Projetos relevantes
|
|
39
|
+
|
|
40
|
+
## 1. `smtg-ai/claude-squad`
|
|
41
|
+
|
|
42
|
+
- URL: https://github.com/smtg-ai/claude-squad
|
|
43
|
+
- Stars no scan: ~7330
|
|
44
|
+
- Linguagem: Go
|
|
45
|
+
- Descrição: gerencia múltiplos agentes terminal como Claude Code, Codex, OpenCode e Amp em workspaces separados.
|
|
46
|
+
- Modelo:
|
|
47
|
+
- TUI / mission control;
|
|
48
|
+
- múltiplas tarefas em paralelo;
|
|
49
|
+
- workspaces isolados;
|
|
50
|
+
- revisão de mudanças antes de aplicar.
|
|
51
|
+
- O que ensina:
|
|
52
|
+
- há demanda real por “vários agentes ao mesmo tempo”;
|
|
53
|
+
- UX centralizada é valiosa;
|
|
54
|
+
- porém é ferramenta grande, com lifecycle/controle.
|
|
55
|
+
- Diferença para `pi-ensemble`:
|
|
56
|
+
- `pi-ensemble` não quer ser TUI nem gerenciador de instâncias;
|
|
57
|
+
- pode funcionar por baixo/ao lado de ferramentas assim.
|
|
58
|
+
|
|
59
|
+
## 2. `dlorenc/multiclaude`
|
|
60
|
+
|
|
61
|
+
- URL: https://github.com/dlorenc/multiclaude
|
|
62
|
+
- Stars no scan: ~542
|
|
63
|
+
- Linguagem: Go
|
|
64
|
+
- Modelo:
|
|
65
|
+
- múltiplas instâncias Claude Code;
|
|
66
|
+
- tmux window por agente;
|
|
67
|
+
- git worktree por agente;
|
|
68
|
+
- roles: supervisor, worker, merge-queue;
|
|
69
|
+
- daemon/coordenação.
|
|
70
|
+
- O que ensina:
|
|
71
|
+
- worktrees são a unidade prática de isolamento;
|
|
72
|
+
- a figura supervisor/worker aparece naturalmente;
|
|
73
|
+
- tmux é o backend visível mais comum.
|
|
74
|
+
- Diferença para `pi-ensemble`:
|
|
75
|
+
- não ter daemon;
|
|
76
|
+
- não assumir Claude-only;
|
|
77
|
+
- não impor roles fixos;
|
|
78
|
+
- registrar claims de path/worktree, mas não gerenciar worktree automaticamente.
|
|
79
|
+
|
|
80
|
+
## 3. `Iron-Ham/claudio`
|
|
81
|
+
|
|
82
|
+
- URL: https://github.com/Iron-Ham/claudio
|
|
83
|
+
- Stars no scan: ~26
|
|
84
|
+
- Linguagem: Go
|
|
85
|
+
- Descrição: multi-instance Claude Code orchestrator using git worktrees.
|
|
86
|
+
- Sinal importante:
|
|
87
|
+
- issue sobre “Inter-Instance Mailbox System”;
|
|
88
|
+
- hoje usa sentinel JSON/completion signals, e quer comunicação bidirecional.
|
|
89
|
+
- O que ensina:
|
|
90
|
+
- mailbox é necessidade real;
|
|
91
|
+
- sentinel one-way não basta;
|
|
92
|
+
- comunicação entre instâncias é o gargalo.
|
|
93
|
+
- Diferença para `pi-ensemble`:
|
|
94
|
+
- `pi-ensemble` começa pelo mailbox/blackboard como núcleo, não como feature futura.
|
|
95
|
+
|
|
96
|
+
## 4. `bfollington/claude-blackboard`
|
|
97
|
+
|
|
98
|
+
- URL: https://github.com/bfollington/claude-blackboard
|
|
99
|
+
- Stars no scan: ~11
|
|
100
|
+
- Linguagem: TypeScript
|
|
101
|
+
- Modelo:
|
|
102
|
+
- plugin Claude Code;
|
|
103
|
+
- blackboard local SQLite;
|
|
104
|
+
- foco em session-independence/context sharing.
|
|
105
|
+
- O que ensina:
|
|
106
|
+
- blackboard é um padrão forte;
|
|
107
|
+
- mas SQLite/plugin específico aumenta acoplamento.
|
|
108
|
+
- Diferença para `pi-ensemble`:
|
|
109
|
+
- markdown/jsonl legíveis por humanos;
|
|
110
|
+
- não depende de SQLite;
|
|
111
|
+
- não é Claude-only;
|
|
112
|
+
- inbox tipado + claims entram junto.
|
|
113
|
+
|
|
114
|
+
## 5. `primeline-ai/claude-tmux-orchestration`
|
|
115
|
+
|
|
116
|
+
- URL: https://github.com/primeline-ai/claude-tmux-orchestration
|
|
117
|
+
- Stars no scan: ~25
|
|
118
|
+
- Linguagem: Shell
|
|
119
|
+
- Modelo:
|
|
120
|
+
- spawn de sessões Claude Code como workers paralelos;
|
|
121
|
+
- heartbeat monitoring;
|
|
122
|
+
- file-based coordination;
|
|
123
|
+
- tmux.
|
|
124
|
+
- O que ensina:
|
|
125
|
+
- heartbeat/watcher é útil;
|
|
126
|
+
- file-based coordination é caminho pragmático;
|
|
127
|
+
- tmux paste é frágil para mensagens longas.
|
|
128
|
+
- Diferença para `pi-ensemble`:
|
|
129
|
+
- tmux deve ser adapter, não core;
|
|
130
|
+
- mensagens longas ficam em arquivo/inbox, não paste.
|
|
131
|
+
|
|
132
|
+
## 6. `6missedcalls/swarmux`
|
|
133
|
+
|
|
134
|
+
- URL: https://github.com/6missedcalls/swarmux
|
|
135
|
+
- Stars no scan: ~0
|
|
136
|
+
- Linguagem: Shell
|
|
137
|
+
- Modelo:
|
|
138
|
+
- tmux + jq;
|
|
139
|
+
- spawn, message, monitor, coordinate Claude Code agents.
|
|
140
|
+
- O que ensina:
|
|
141
|
+
- implementação pequena é possível;
|
|
142
|
+
- mas ainda mistura coordenação com controle de processo.
|
|
143
|
+
- Diferença para `pi-ensemble`:
|
|
144
|
+
- não spawnar;
|
|
145
|
+
- só escrever/ler estado local.
|
|
146
|
+
|
|
147
|
+
## 7. `rhysheavensmith/claude-agent-launcher`
|
|
148
|
+
|
|
149
|
+
- URL: https://github.com/rhysheavensmith/claude-agent-launcher
|
|
150
|
+
- Stars no scan: ~6
|
|
151
|
+
- Linguagem: Shell
|
|
152
|
+
- Modelo:
|
|
153
|
+
- tmux multipane launcher para Claude Code agent teams.
|
|
154
|
+
- O que ensina:
|
|
155
|
+
- há uma camada simples de launcher que muita gente quer;
|
|
156
|
+
- mas launcher não resolve memória/handoff/ownership.
|
|
157
|
+
- Diferença para `pi-ensemble`:
|
|
158
|
+
- complementa launchers com protocolo de comunicação persistente.
|
|
159
|
+
|
|
160
|
+
## 8. `MakingJamie/claude-colony`
|
|
161
|
+
|
|
162
|
+
- URL: https://github.com/MakingJamie/claude-colony
|
|
163
|
+
- Stars no scan: ~12
|
|
164
|
+
- Linguagem: TypeScript
|
|
165
|
+
- Modelo:
|
|
166
|
+
- spawn specialist teams in tmux;
|
|
167
|
+
- steer/watch side-by-side;
|
|
168
|
+
- usa native Claude Code agents.
|
|
169
|
+
- O que ensina:
|
|
170
|
+
- “colony/team” é a metáfora dominante;
|
|
171
|
+
- especialização por agente é atraente, mas pode virar rigidez.
|
|
172
|
+
- Diferença para `pi-ensemble`:
|
|
173
|
+
- protocolo neutro, roles opcionais;
|
|
174
|
+
- não assume especialistas fixos.
|
|
175
|
+
|
|
176
|
+
## 9. `tcpsyn/hivemind`
|
|
177
|
+
|
|
178
|
+
- URL: https://github.com/tcpsyn/hivemind
|
|
179
|
+
- Stars no scan: ~1
|
|
180
|
+
- Linguagem: TypeScript
|
|
181
|
+
- Modelo:
|
|
182
|
+
- GUI desktop para Claude Code agent teams;
|
|
183
|
+
- resolve dor de terminal/tmux com muitos agentes.
|
|
184
|
+
- O que ensina:
|
|
185
|
+
- UI vira necessária quando o número de agentes cresce;
|
|
186
|
+
- mas UI não é o primeiro problema do `pi-ensemble`.
|
|
187
|
+
- Diferença para `pi-ensemble`:
|
|
188
|
+
- manter core file-only; UI pode vir depois lendo `.pi-ensemble/`.
|
|
189
|
+
|
|
190
|
+
## 10. `zircote/claude-team-orchestration`
|
|
191
|
+
|
|
192
|
+
- URL: https://github.com/zircote/claude-team-orchestration
|
|
193
|
+
- Stars no scan: ~3
|
|
194
|
+
- Modelo:
|
|
195
|
+
- Claude Code plugin;
|
|
196
|
+
- shared tasks, messaging, team patterns;
|
|
197
|
+
- padrões de coordenação como parallel review, pipelines, swarms, large-file analysis.
|
|
198
|
+
- O que ensina:
|
|
199
|
+
- padrões de colaboração são importantes;
|
|
200
|
+
- mas plugin Claude-only fecha o escopo.
|
|
201
|
+
- Diferença para `pi-ensemble`:
|
|
202
|
+
- o core deve ser ferramenta mínima; padrões podem ser docs/templates.
|
|
203
|
+
|
|
204
|
+
## 11. `skidvis/pi-coordinator`
|
|
205
|
+
|
|
206
|
+
- URL: https://github.com/skidvis/pi-coordinator
|
|
207
|
+
- Stars no scan: ~6
|
|
208
|
+
- Linguagem: TypeScript
|
|
209
|
+
- Modelo:
|
|
210
|
+
- extensão Pi;
|
|
211
|
+
- transforma o agente primário em dispatcher/orchestrator;
|
|
212
|
+
- delega para subagentes especialistas.
|
|
213
|
+
- O que ensina:
|
|
214
|
+
- no ecossistema Pi já existe desejo de “Pi como coordenador puro”;
|
|
215
|
+
- subagentes isolados são uma vantagem nativa.
|
|
216
|
+
- Diferença para `pi-ensemble`:
|
|
217
|
+
- `pi-ensemble` não é só subagent dispatch dentro de uma sessão;
|
|
218
|
+
- é coordenação entre sessões/agentes/processos diferentes.
|
|
219
|
+
|
|
220
|
+
## 12. `codexstar69/pi-agent-teams`
|
|
221
|
+
|
|
222
|
+
- URL: https://github.com/codexstar69/pi-agent-teams
|
|
223
|
+
- Stars no scan: ~9
|
|
224
|
+
- Linguagem: TypeScript
|
|
225
|
+
- Modelo:
|
|
226
|
+
- “Claude Code agent teams style workflow for Pi”;
|
|
227
|
+
- task list compartilhada;
|
|
228
|
+
- spawn/stop/shutdown;
|
|
229
|
+
- múltiplas sessões Pi.
|
|
230
|
+
- O que ensina:
|
|
231
|
+
- existe tentativa explícita de portar agent teams para Pi;
|
|
232
|
+
- shared task list é útil.
|
|
233
|
+
- Diferença para `pi-ensemble`:
|
|
234
|
+
- `pi-ensemble` deve ser mais baixo nível: blackboard + inbox + claims;
|
|
235
|
+
- task list pode ser adapter/módulo posterior.
|
|
236
|
+
|
|
237
|
+
## 13. `disler/pi-vs-claude-code`
|
|
238
|
+
|
|
239
|
+
- URL: https://github.com/disler/pi-vs-claude-code
|
|
240
|
+
- Stars no scan: ~948
|
|
241
|
+
- Linguagem: TypeScript
|
|
242
|
+
- Descrição: comparação entre Pi open source e Claude Code fechado.
|
|
243
|
+
- O que ensina:
|
|
244
|
+
- o debate Pi vs Claude Code já existe publicamente;
|
|
245
|
+
- Pi é percebido como harness customizável/extensível.
|
|
246
|
+
- Diferença para `pi-ensemble`:
|
|
247
|
+
- não entrar como “Pi vence Claude”;
|
|
248
|
+
- entrar como protocolo que permite Pi + Claude + Codex coexistirem.
|
|
249
|
+
|
|
250
|
+
## 14. `protocol-security/claude-swarm`
|
|
251
|
+
|
|
252
|
+
- URL: https://github.com/protocol-security/claude-swarm
|
|
253
|
+
- Stars no scan: ~4
|
|
254
|
+
- Linguagem: Shell
|
|
255
|
+
- Modelo:
|
|
256
|
+
- swarm de Claude Code em Docker;
|
|
257
|
+
- coordenação via git;
|
|
258
|
+
- sem orchestrator, sem message passing.
|
|
259
|
+
- O que ensina:
|
|
260
|
+
- git pode ser o protocolo de coordenação;
|
|
261
|
+
- mas falta comunicação explícita/handoff.
|
|
262
|
+
- Diferença para `pi-ensemble`:
|
|
263
|
+
- pode complementar git coordination com mailbox/blackboard.
|
|
264
|
+
|
|
265
|
+
## 15. `openswarm-ai/openswarm`
|
|
266
|
+
|
|
267
|
+
- URL: https://github.com/openswarm-ai/openswarm
|
|
268
|
+
- Stars no scan: ~414
|
|
269
|
+
- Linguagem: JavaScript
|
|
270
|
+
- Modelo:
|
|
271
|
+
- mission control center para swarms de agentes;
|
|
272
|
+
- launch/monitor/coordinate.
|
|
273
|
+
- O que ensina:
|
|
274
|
+
- há apetite por dashboards maiores;
|
|
275
|
+
- mas a superfície pública do `pi-ensemble` deve evitar hype “swarm”.
|
|
276
|
+
- Diferença para `pi-ensemble`:
|
|
277
|
+
- pequeno, local, auditável, apagável.
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
# Issues oficiais relevantes em Claude Code
|
|
282
|
+
|
|
283
|
+
## `anthropics/claude-code#29086`
|
|
284
|
+
|
|
285
|
+
Tema: cross-session awareness entre instâncias locais de Claude Code.
|
|
286
|
+
|
|
287
|
+
Dor descrita:
|
|
288
|
+
|
|
289
|
+
- sessões são silos;
|
|
290
|
+
- não sabem quem trabalha em quê;
|
|
291
|
+
- não compartilham contexto;
|
|
292
|
+
- não detectam conflito;
|
|
293
|
+
- handoff é manual.
|
|
294
|
+
|
|
295
|
+
Conexão direta com `pi-ensemble`:
|
|
296
|
+
|
|
297
|
+
- esse é exatamente o problema que blackboard/inbox/claims resolve.
|
|
298
|
+
|
|
299
|
+
## `anthropics/claude-code#37993`
|
|
300
|
+
|
|
301
|
+
Tema: multi-instance support para agent orchestration.
|
|
302
|
+
|
|
303
|
+
Dor descrita:
|
|
304
|
+
|
|
305
|
+
- notificações MCP roteiam para primeira instância;
|
|
306
|
+
- múltiplas instâncias precisam file-based workarounds;
|
|
307
|
+
- polling desperdiça tokens.
|
|
308
|
+
|
|
309
|
+
Conexão direta:
|
|
310
|
+
|
|
311
|
+
- `pi-ensemble` não tenta resolver routing nativo do Claude;
|
|
312
|
+
- assume file-based coordination como protocolo explícito e auditável.
|
|
313
|
+
|
|
314
|
+
## `anthropics/claude-code#33575`
|
|
315
|
+
|
|
316
|
+
Tema: três instâncias Claude coordenando via message queue self-hosted.
|
|
317
|
+
|
|
318
|
+
Conexão direta:
|
|
319
|
+
|
|
320
|
+
- message queue funciona, mas adiciona infra;
|
|
321
|
+
- `pi-ensemble` escolhe o menor denominador comum: filesystem local.
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
# O que isso informa para `pi-ensemble`
|
|
326
|
+
|
|
327
|
+
## 1. Não competir com Claude Squad / OpenSwarm
|
|
328
|
+
|
|
329
|
+
Eles são gerenciadores/mission control. `pi-ensemble` deve ser menor:
|
|
330
|
+
|
|
331
|
+
```txt
|
|
332
|
+
local coordination substrate, not an app shell
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
## 2. Não competir com tmux orchestrators
|
|
336
|
+
|
|
337
|
+
Tmux é adapter, não core.
|
|
338
|
+
|
|
339
|
+
Regra:
|
|
340
|
+
|
|
341
|
+
```txt
|
|
342
|
+
long message -> file/inbox
|
|
343
|
+
wake signal -> tmux/adapter opcional
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
## 3. Não spawnar agentes
|
|
347
|
+
|
|
348
|
+
Quase todos tentam spawn/stop/monitor. Isso aumenta risco e blast radius.
|
|
349
|
+
|
|
350
|
+
O diferencial:
|
|
351
|
+
|
|
352
|
+
```txt
|
|
353
|
+
pi-ensemble never runs commands, never starts agents, never accesses network
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
## 4. File-only é feature, não limitação
|
|
357
|
+
|
|
358
|
+
A maioria ou usa daemon, SQLite, tmux, Docker, MCP, GUI. O `pi-ensemble` deve ser:
|
|
359
|
+
|
|
360
|
+
```txt
|
|
361
|
+
mkdir .pi-ensemble
|
|
362
|
+
blackboard.md
|
|
363
|
+
agents/<agent>/inbox.md
|
|
364
|
+
audit.jsonl
|
|
365
|
+
worktrees.json
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
Humano pode abrir e entender tudo.
|
|
369
|
+
|
|
370
|
+
## 5. Claims de worktree/path são importantes
|
|
371
|
+
|
|
372
|
+
A paisagem confirma que git worktrees/isolamento são padrão. `pi-ensemble` não precisa criar worktrees, mas precisa registrar ownership:
|
|
373
|
+
|
|
374
|
+
```txt
|
|
375
|
+
ensemble claim ./path --agent claude-a
|
|
376
|
+
ensemble release ./path --agent claude-a
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
## 6. Pi maestro + múltiplos Claude Codes
|
|
380
|
+
|
|
381
|
+
A arquitetura recomendada para Felipe:
|
|
382
|
+
|
|
383
|
+
- **Pi maestro**: mantém memória, objetivos, decisões, publicação, auditoria e pergunta viva.
|
|
384
|
+
- **Claude Code worker A**: execução técnica/código real.
|
|
385
|
+
- **Claude Code worker B**: revisão/testes/benchmarks.
|
|
386
|
+
- **Claude Code worker C**: pesquisa/repos/issues/docs.
|
|
387
|
+
- **Codex/Pi subagents**: scouts/reviewers isolados quando couber.
|
|
388
|
+
- **pi-ensemble**: protocolo comum de mensagens/claims entre todos.
|
|
389
|
+
|
|
390
|
+
## 7. O nome/framing precisa fugir de hype
|
|
391
|
+
|
|
392
|
+
Evitar:
|
|
393
|
+
|
|
394
|
+
```txt
|
|
395
|
+
swarm
|
|
396
|
+
hivemind
|
|
397
|
+
control plane
|
|
398
|
+
command bus
|
|
399
|
+
agent orchestration platform
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
Usar:
|
|
403
|
+
|
|
404
|
+
```txt
|
|
405
|
+
blackboard + mailbox protocol for local coding agents
|
|
406
|
+
structured handoff for multi-agent coding workflows
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
# Relação com o scaffold atual
|
|
412
|
+
|
|
413
|
+
O scaffold atual em `/home/aya/implante/tools/pi-ensemble/` está alinhado com o benchmark:
|
|
414
|
+
|
|
415
|
+
- CLI `ensemble`;
|
|
416
|
+
- Pi extension;
|
|
417
|
+
- file-only;
|
|
418
|
+
- blackboard;
|
|
419
|
+
- inboxes;
|
|
420
|
+
- audit log;
|
|
421
|
+
- claims;
|
|
422
|
+
- sem spawn;
|
|
423
|
+
- sem rede;
|
|
424
|
+
- sem tmux core.
|
|
425
|
+
|
|
426
|
+
A diferença que talvez precise entrar nos docs:
|
|
427
|
+
|
|
428
|
+
1. uma página `docs/LANDSCAPE.md` com este benchmark;
|
|
429
|
+
2. uma tabela “not a replacement for claude-squad/multiclaude/etc.”;
|
|
430
|
+
3. exemplos de uso com Pi maestro + Claude workers;
|
|
431
|
+
4. clareza de adapters: tmux wake, watcher, dashboard são fora do core.
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
# Atualização — 2026-05-06
|
|
436
|
+
|
|
437
|
+
Uma busca nova confirmou que o campo está se movendo rápido em direção a agent teams e file-based coordination.
|
|
438
|
+
|
|
439
|
+
Novos sinais relevantes:
|
|
440
|
+
|
|
441
|
+
- **Claude Code Agent Teams oficial** — Claude Code já documenta coordenação de múltiplas sessões com task coordination, messaging e limitações conhecidas de retomada/coordenação/shutdown.
|
|
442
|
+
- **openedclaude/claude-reviews-claude** — leitura arquitetural do sistema de agent swarms do Claude Code, incluindo mailbox file-based e lockfile concurrency.
|
|
443
|
+
- **ComposioHQ/agent-orchestrator#853** — issue propondo substituir tmux messaging por protocolo file-based JSONL; tmux ficaria para lifecycle/acesso humano.
|
|
444
|
+
- **internet-dot/agent-message-queue** — AMQ como bus local file-based estilo Maildir para agent sessions/adapters; não tenta controlar task decomposition nem scheduler.
|
|
445
|
+
- **initech / cccc / wave orchestrator** — exemplos de uma camada mais alta de terminal/IPC/dashboard/control plane surgindo por cima do mesmo problema.
|
|
446
|
+
- **novas extensões Pi agent-teams/coordinator** — reforçam que o ecossistema Pi também quer modo maestro/worker, mas frequentemente via spawn/RPC/subagentes.
|
|
447
|
+
|
|
448
|
+
Conclusão da atualização:
|
|
449
|
+
|
|
450
|
+
> O diferencial do `pi-ensemble` ficou mais claro: ele deve continuar menor do que os orchestrators. O valor é ser o substrato local legível que pode conviver com Claude Agent Teams, tmux launchers, Pi coordinators, dashboards e message queues.
|
|
451
|
+
|
|
452
|
+
O roadmap derivado está em [`ROADMAP.md`](ROADMAP.md).
|