gossipcat 0.1.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/LICENSE +21 -0
- package/README.md +720 -0
- package/dist-dashboard/assets/banner.png +0 -0
- package/dist-dashboard/assets/gossip-mini.png +0 -0
- package/dist-dashboard/assets/gossipcat.png +0 -0
- package/dist-dashboard/assets/index-BvqFkH-m.css +1 -0
- package/dist-dashboard/assets/index-Dsv-K6u_.js +65 -0
- package/dist-dashboard/favicon.png +0 -0
- package/dist-dashboard/index.html +31 -0
- package/dist-mcp/default-rules/gossipcat-rules.md +135 -0
- package/dist-mcp/default-skills/api-design.md +32 -0
- package/dist-mcp/default-skills/catalog.json +101 -0
- package/dist-mcp/default-skills/ci-cd.md +32 -0
- package/dist-mcp/default-skills/code-review.md +40 -0
- package/dist-mcp/default-skills/debugging.md +42 -0
- package/dist-mcp/default-skills/documentation.md +31 -0
- package/dist-mcp/default-skills/frontend.md +32 -0
- package/dist-mcp/default-skills/implementation.md +39 -0
- package/dist-mcp/default-skills/infrastructure.md +32 -0
- package/dist-mcp/default-skills/memory-retrieval.md +43 -0
- package/dist-mcp/default-skills/research.md +44 -0
- package/dist-mcp/default-skills/security-audit.md +47 -0
- package/dist-mcp/default-skills/system-design.md +42 -0
- package/dist-mcp/default-skills/testing.md +38 -0
- package/dist-mcp/default-skills/typescript.md +32 -0
- package/dist-mcp/default-skills/ui-design.md +33 -0
- package/dist-mcp/default-skills/verification.md +49 -0
- package/dist-mcp/mcp-server.js +40878 -0
- package/package.json +50 -0
- package/scripts/postinstall.js +63 -0
package/README.md
ADDED
|
@@ -0,0 +1,720 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="packages/dashboard-v2/public/assets/banner.png" alt="Gossipcat" width="600" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<em>agentic orchestration framework — agents that learn, adapt, and get better every round.</em>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://github.com/ataberk-xyz/gossipcat-ai/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License" /></a>
|
|
11
|
+
<a href="#quickstart"><img src="https://img.shields.io/badge/node-22%2B-green" alt="Node 22+" /></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<a href="#quickstart"><strong>Quickstart</strong></a> ·
|
|
16
|
+
<a href="#how-it-works"><strong>How It Works</strong></a> ·
|
|
17
|
+
<a href="#usage"><strong>Usage</strong></a> ·
|
|
18
|
+
<a href="#for-ai-agents"><strong>For AI Agents</strong></a> ·
|
|
19
|
+
<a href="#dashboard"><strong>Dashboard</strong></a> ·
|
|
20
|
+
<a href="#configuration"><strong>Configuration</strong></a> ·
|
|
21
|
+
<a href="#roadmap"><strong>Roadmap</strong></a>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
<br/>
|
|
25
|
+
|
|
26
|
+
## What is Gossipcat?
|
|
27
|
+
|
|
28
|
+
Gossipcat is an MCP server that orchestrates multiple AI agents to review your code in parallel. Agents independently review, then cross-review each other's findings. Agreements are confirmed. Hallucinations are caught and penalized. Over time, each agent builds an accuracy profile — the system learns who to trust for what.
|
|
29
|
+
|
|
30
|
+
<br/>
|
|
31
|
+
|
|
32
|
+
## Why multi-agent?
|
|
33
|
+
|
|
34
|
+
| Without gossipcat | With gossipcat |
|
|
35
|
+
|---|---|
|
|
36
|
+
| One AI reviews your code — and hallucinates a finding you waste 20 minutes on | Multiple agents cross-check each other — hallucinations get caught before you see them |
|
|
37
|
+
| Every agent gets the same tasks regardless of track record | Dispatch weights route tasks to the agent with the best accuracy in that category |
|
|
38
|
+
| An agent keeps making the same class of mistake | Skill files are auto-generated from failure data and injected into future prompts |
|
|
39
|
+
| You don't know which agent to trust | Accuracy, uniqueness, and reliability scores are tracked per agent, per category |
|
|
40
|
+
|
|
41
|
+
<br/>
|
|
42
|
+
|
|
43
|
+
## Gossipcat is right for you if
|
|
44
|
+
|
|
45
|
+
- You want **multiple AI models** catching different classes of bugs
|
|
46
|
+
- You don't trust a single agent to catch everything
|
|
47
|
+
- You want agents to **cross-check each other's findings** before you act on them
|
|
48
|
+
- You want to know which agents are **actually accurate** vs. hallucinating
|
|
49
|
+
- You want agents that **get better over time** based on their track record
|
|
50
|
+
|
|
51
|
+
<br/>
|
|
52
|
+
|
|
53
|
+
## Features
|
|
54
|
+
|
|
55
|
+
<table>
|
|
56
|
+
<tr>
|
|
57
|
+
<td align="center" width="33%">
|
|
58
|
+
<h3>Consensus Review</h3>
|
|
59
|
+
3+ agents review independently, then cross-review each other. Findings tagged as CONFIRMED, DISPUTED, or UNIQUE.
|
|
60
|
+
</td>
|
|
61
|
+
<td align="center" width="33%">
|
|
62
|
+
<h3>Adaptive Dispatch</h3>
|
|
63
|
+
Agent accuracy is tracked per-category. Dispatch weights adjust automatically — the best agent for the job gets picked.
|
|
64
|
+
</td>
|
|
65
|
+
<td align="center" width="33%">
|
|
66
|
+
<h3>Skill Development</h3>
|
|
67
|
+
When an agent keeps failing in a category, targeted skills are generated from failure data and injected into future prompts. Effectiveness is measured with a z-test on post-bind signals — passed, failed, or inconclusive.
|
|
68
|
+
</td>
|
|
69
|
+
</tr>
|
|
70
|
+
<tr>
|
|
71
|
+
<td align="center">
|
|
72
|
+
<h3>Multi-Provider</h3>
|
|
73
|
+
Mix Anthropic, Google, OpenAI, and OpenClaw agents in one team. Each brings different strengths. Native agents need no API key. 🦞 Lobster friendly.
|
|
74
|
+
</td>
|
|
75
|
+
<td align="center">
|
|
76
|
+
<h3>Live Dashboard</h3>
|
|
77
|
+
Real-time view of tasks, consensus reports, agent scores, and activity feed. Terminal Amber theme. WebSocket updates.
|
|
78
|
+
</td>
|
|
79
|
+
<td align="center">
|
|
80
|
+
<h3>Agent Memory</h3>
|
|
81
|
+
Per-agent cognitive memory persists across sessions. Agents remember past findings, patterns, and project context.
|
|
82
|
+
</td>
|
|
83
|
+
</tr>
|
|
84
|
+
</table>
|
|
85
|
+
|
|
86
|
+
<br/>
|
|
87
|
+
|
|
88
|
+
<div align="center">
|
|
89
|
+
<table>
|
|
90
|
+
<tr>
|
|
91
|
+
<td align="center"><strong>Works<br/>with</strong></td>
|
|
92
|
+
<td align="center">
|
|
93
|
+
<img src="https://img.shields.io/badge/Claude%20Code-supported-orange?style=flat&logo=anthropic&logoColor=white" alt="Claude Code" /><br/><sub>Full support</sub>
|
|
94
|
+
</td>
|
|
95
|
+
<td align="center"><strong>Cursor</strong><br/><sub>Not yet</sub></td>
|
|
96
|
+
<td align="center"><strong>Windsurf</strong><br/><sub>Not yet</sub></td>
|
|
97
|
+
<td align="center"><strong>VS Code</strong><br/><sub>Not yet</sub></td>
|
|
98
|
+
</tr>
|
|
99
|
+
</table>
|
|
100
|
+
|
|
101
|
+
<br/>
|
|
102
|
+
|
|
103
|
+
<table>
|
|
104
|
+
<tr>
|
|
105
|
+
<td align="center"><strong>Provider<br/>gateways</strong></td>
|
|
106
|
+
<td align="center">
|
|
107
|
+
<img src="https://img.shields.io/badge/OpenClaw-gateway-4A90D9?style=flat" alt="OpenClaw" /><br/><sub>HTTP gateway ✅</sub>
|
|
108
|
+
</td>
|
|
109
|
+
<td align="center">
|
|
110
|
+
<img src="https://img.shields.io/badge/Ollama-local-gray?style=flat" alt="Ollama" /><br/><sub>Local models ✅</sub>
|
|
111
|
+
</td>
|
|
112
|
+
<td align="center">
|
|
113
|
+
<img src="https://img.shields.io/badge/OpenAI--compatible-any-green?style=flat" alt="OpenAI-compatible" /><br/><sub>Any base_url ✅</sub>
|
|
114
|
+
</td>
|
|
115
|
+
</tr>
|
|
116
|
+
</table>
|
|
117
|
+
</div>
|
|
118
|
+
|
|
119
|
+
<br/>
|
|
120
|
+
|
|
121
|
+
## How it works
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
dispatch ──→ parallel review ──→ cross-review ──→ consensus
|
|
125
|
+
│
|
|
126
|
+
┌─────┴─────┐
|
|
127
|
+
▼ ▼
|
|
128
|
+
signals skill development
|
|
129
|
+
│ │
|
|
130
|
+
▼ ▼
|
|
131
|
+
dispatch weights targeted prompts
|
|
132
|
+
(who gets picked) (agent improves)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
| Step | What happens |
|
|
136
|
+
|------|-------------|
|
|
137
|
+
| **Dispatch** | Tasks routed to agents based on dispatch weights (accuracy history per category) |
|
|
138
|
+
| **Parallel review** | Agents work independently, each producing findings with confidence scores |
|
|
139
|
+
| **Cross-review** | Each agent reviews peers' findings: agree, disagree, unverified, or new finding |
|
|
140
|
+
| **Consensus** | Findings deduplicated and tagged: CONFIRMED, DISPUTED, UNVERIFIED, UNIQUE |
|
|
141
|
+
| **Signals** | You verify findings against code and record accuracy signals |
|
|
142
|
+
| **Skill development** | Agents with repeated failures get targeted skill files injected into future prompts |
|
|
143
|
+
|
|
144
|
+
<br/>
|
|
145
|
+
|
|
146
|
+
## Two types of agents
|
|
147
|
+
|
|
148
|
+
| | Native | Relay |
|
|
149
|
+
|---|---|---|
|
|
150
|
+
| **Runs as** | Claude Code subagent (`Agent()` tool) | WebSocket worker on relay server |
|
|
151
|
+
| **Providers** | Anthropic (Claude) | Google (Gemini), OpenAI, any provider |
|
|
152
|
+
| **API key** | None — uses your Claude Code subscription | Required per provider |
|
|
153
|
+
| **Defined in** | `.claude/agents/*.md` | `.gossip/config.json` |
|
|
154
|
+
| **Consensus** | Yes | Yes |
|
|
155
|
+
| **Memory & Skills** | Yes | Yes |
|
|
156
|
+
|
|
157
|
+
Both types participate equally in consensus, cross-review, and skill development. Native subagents get skill files injected into their system prompts and can call `gossip_remember` for memory recall. Relay workers call the equivalent `memory_query` tool and get `file_read` + `file_grep` during cross-review so their verification parity matches natives.
|
|
158
|
+
|
|
159
|
+
<br/>
|
|
160
|
+
|
|
161
|
+
## Quickstart
|
|
162
|
+
|
|
163
|
+
**Requirements:** Node.js 22+
|
|
164
|
+
|
|
165
|
+
### 1. Install
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
npm install -g gossipcat
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
That's it. The install drops a `gossipcat` binary on your `PATH` and ships both the MCP server bundle and the dashboard assets. No clone, no build step.
|
|
172
|
+
|
|
173
|
+
If you prefer project-local install:
|
|
174
|
+
```bash
|
|
175
|
+
npm install --save-dev gossipcat
|
|
176
|
+
```
|
|
177
|
+
The postinstall will write a `.mcp.json` into your project root automatically. Open Claude Code in that directory and gossipcat connects.
|
|
178
|
+
|
|
179
|
+
### 2. Register with Claude Code
|
|
180
|
+
|
|
181
|
+
For global registration (available in every project):
|
|
182
|
+
```bash
|
|
183
|
+
claude mcp add gossipcat -s user -- gossipcat
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
The dashboard launches automatically on port `24420` when the relay starts — no extra setup needed.
|
|
187
|
+
|
|
188
|
+
**From source** (contributors only):
|
|
189
|
+
```bash
|
|
190
|
+
git clone https://github.com/ataberk-xyz/gossipcat-ai.git
|
|
191
|
+
cd gossipcat-ai && npm install && npm run build:mcp
|
|
192
|
+
claude mcp add gossipcat -s user -- node "$PWD/dist-mcp/mcp-server.js"
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### 3. API keys
|
|
196
|
+
|
|
197
|
+
Add env vars for the providers you want to use. Pass them with `-e` when registering, or set them in your shell environment.
|
|
198
|
+
|
|
199
|
+
| Provider | Env var | Notes |
|
|
200
|
+
|----------|---------|-------|
|
|
201
|
+
| Native (Claude Code) | — | Dispatches through your active Claude Code subscription. No key needed. |
|
|
202
|
+
| Anthropic API | `ANTHROPIC_API_KEY` | Direct API access if you don't want to go through Claude Code. |
|
|
203
|
+
| Google Gemini | `GOOGLE_API_KEY` | Gemini Pro / Flash relay agents. |
|
|
204
|
+
| OpenAI | `OPENAI_API_KEY` (+ optional `OPENAI_BASE_URL`) | GPT-4 / GPT-4o relay agents. `OPENAI_BASE_URL` lets you point at OpenAI-compatible gateways (Azure, Together, Groq, etc.). |
|
|
205
|
+
| OpenClaw | — (local gateway) | OpenAI-compatible, defaults to `http://127.0.0.1:18789/v1`. No API key — auth handled by your local OpenClaw daemon. |
|
|
206
|
+
| Ollama (local) | — | Runs locally via `http://localhost:11434`. No key. Pull your model first with `ollama pull llama3.1:8b`. |
|
|
207
|
+
|
|
208
|
+
#### Examples — registering gossipcat with each provider
|
|
209
|
+
|
|
210
|
+
**Native only** (zero API keys — everything runs through Claude Code):
|
|
211
|
+
```bash
|
|
212
|
+
claude mcp add gossipcat -s user -- gossipcat
|
|
213
|
+
```
|
|
214
|
+
Then in session ask for a team built from `sonnet-reviewer` / `haiku-researcher` / `opus-implementer`. Native agents dispatch through `Agent()` and relay back. Good zero-config starting point.
|
|
215
|
+
|
|
216
|
+
**Anthropic API** (direct, bypasses Claude Code):
|
|
217
|
+
```bash
|
|
218
|
+
claude mcp add gossipcat -s user \
|
|
219
|
+
-e ANTHROPIC_API_KEY=sk-ant-... \
|
|
220
|
+
-- gossipcat
|
|
221
|
+
```
|
|
222
|
+
Use this if you want relay agents running Claude models without going through the Claude Code subscription path — e.g. for parallelism beyond Claude Code's concurrency cap, or for running long background reviews while you keep working.
|
|
223
|
+
|
|
224
|
+
**Google Gemini**:
|
|
225
|
+
```bash
|
|
226
|
+
claude mcp add gossipcat -s user \
|
|
227
|
+
-e GOOGLE_API_KEY=AIza... \
|
|
228
|
+
-- gossipcat
|
|
229
|
+
```
|
|
230
|
+
Enables `gemini-reviewer`, `gemini-tester`, `gemini-implementer` on the relay. Watch the quota — gossipcat has a built-in 429 watcher that falls back to native agents when Gemini is cooling down.
|
|
231
|
+
|
|
232
|
+
**OpenAI** (and OpenAI-compatible gateways):
|
|
233
|
+
```bash
|
|
234
|
+
claude mcp add gossipcat -s user \
|
|
235
|
+
-e OPENAI_API_KEY=sk-... \
|
|
236
|
+
-- gossipcat
|
|
237
|
+
```
|
|
238
|
+
For Azure / Together / Groq / OpenRouter, add `OPENAI_BASE_URL`:
|
|
239
|
+
```bash
|
|
240
|
+
claude mcp add gossipcat -s user \
|
|
241
|
+
-e OPENAI_API_KEY=your-key \
|
|
242
|
+
-e OPENAI_BASE_URL=https://api.groq.com/openai/v1 \
|
|
243
|
+
-- gossipcat
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**OpenClaw** (local gateway):
|
|
247
|
+
```bash
|
|
248
|
+
# Start the OpenClaw daemon first (see openclaw docs), default port 18789
|
|
249
|
+
claude mcp add gossipcat -s user -- gossipcat
|
|
250
|
+
```
|
|
251
|
+
No env vars. Configure an agent with `provider: "openclaw"` in `.gossip/config.json` and gossipcat talks to the local gateway automatically. Override the port with `base_url` in the agent config if your daemon runs elsewhere.
|
|
252
|
+
|
|
253
|
+
**Ollama** (fully local, no API):
|
|
254
|
+
```bash
|
|
255
|
+
# Pull a model once
|
|
256
|
+
ollama pull llama3.1:8b
|
|
257
|
+
# Then register gossipcat
|
|
258
|
+
claude mcp add gossipcat -s user -- gossipcat
|
|
259
|
+
```
|
|
260
|
+
Configure the agent with `provider: "local"` and `model: "llama3.1:8b"` in `.gossip/config.json`. Good for airgapped dev, offline work, and burning-down-test-debt sessions where you don't want to spend API credits.
|
|
261
|
+
|
|
262
|
+
**Mixed setup** (common production shape — Gemini cheap reviewers + Anthropic heavy implementers):
|
|
263
|
+
```bash
|
|
264
|
+
claude mcp add gossipcat -s user \
|
|
265
|
+
-e GOOGLE_API_KEY=AIza... \
|
|
266
|
+
-e ANTHROPIC_API_KEY=sk-ant-... \
|
|
267
|
+
-- gossipcat
|
|
268
|
+
```
|
|
269
|
+
Then set up a team with `gemini-reviewer` + `haiku-researcher` (native) + `opus-implementer` (native) + `sonnet-reviewer` (native). Gossipcat dispatches by category strength from the signal pipeline.
|
|
270
|
+
|
|
271
|
+
Keys are stored persistently and cross-platform:
|
|
272
|
+
- **macOS** — OS Keychain
|
|
273
|
+
- **Linux** — Secret Service (`secret-tool`)
|
|
274
|
+
- **Windows / other** — AES-256-GCM encrypted file
|
|
275
|
+
|
|
276
|
+
### 4. Initialize your team
|
|
277
|
+
|
|
278
|
+
Start a Claude Code session in any project and ask Claude to set up your team:
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
"Set up a gossipcat team with a Gemini reviewer and a Sonnet implementer"
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Claude Code calls `gossip_setup()` to create your `.gossip/config.json` and agent definitions. You choose the providers, models, and roles — gossipcat adapts to your setup.
|
|
285
|
+
|
|
286
|
+
Available presets: `reviewer`, `implementer`, `tester`, `researcher`, `debugger`, `architect`, `security`, `designer`, `planner`, `devops`, `documenter`
|
|
287
|
+
|
|
288
|
+
<br/>
|
|
289
|
+
|
|
290
|
+
## Use Cases
|
|
291
|
+
|
|
292
|
+
### Build something — gossipcat picks the team
|
|
293
|
+
|
|
294
|
+
```
|
|
295
|
+
"I want to build a Stripe integration, set up a team for that"
|
|
296
|
+
"I'm adding real-time notifications — what agents do I need?"
|
|
297
|
+
"Set up a team for a TypeScript REST API project"
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
Describe what you're building. Gossipcat proposes an agent team tailored to the task — right presets, right skills, right mix of providers. You review the proposal and approve it. From that point on, agents dispatch automatically based on what your code touches.
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
### Review code before committing
|
|
305
|
+
|
|
306
|
+
```
|
|
307
|
+
"Review the changes I just made"
|
|
308
|
+
"Do a consensus review on the auth module"
|
|
309
|
+
"Check my last 3 commits for bugs"
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
Three agents review your diff independently, then cross-check each other's findings. You get a report with CONFIRMED bugs (multiple agents agree), DISPUTED findings (agents disagree), and UNIQUE findings (only one agent found it). You only act on what's verified.
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
### Catch security issues
|
|
317
|
+
|
|
318
|
+
```
|
|
319
|
+
"Security audit the payment handler"
|
|
320
|
+
"Check the login flow for vulnerabilities"
|
|
321
|
+
"Review the API endpoints for injection risks"
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
Dispatch your security-focused agents in parallel. Each reviews from a different angle — one checks OWASP vectors, another checks input validation, another checks auth logic. Findings that survive cross-review are real.
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
### Research a codebase before building
|
|
329
|
+
|
|
330
|
+
```
|
|
331
|
+
"Research how the WebSocket connection lifecycle works before I touch it"
|
|
332
|
+
"Explain the dispatch pipeline — I need to add a new routing mode"
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
Agents read the code, trace call paths, and write a summary back to session memory. Next time you ask about the same area, they already know it.
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
### Get a second opinion on your own review
|
|
340
|
+
|
|
341
|
+
```
|
|
342
|
+
"I think there's a race condition in this Map — check if I'm right"
|
|
343
|
+
"Verify whether this fix actually resolves the issue"
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
Describe what you think you're seeing. Agents check independently and either confirm or disprove it. Author self-review is optimistic by nature — this isn't.
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
### Track which agents are actually reliable
|
|
351
|
+
|
|
352
|
+
```
|
|
353
|
+
"Show me agent scores"
|
|
354
|
+
"Which agent is best at security reviews?"
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
Every finding gets verified and turned into a signal. Accuracy, uniqueness, and reliability are tracked per agent. Over time, dispatch weights shift — the agents that keep catching real bugs get more work.
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
### Improve a struggling agent
|
|
362
|
+
|
|
363
|
+
```
|
|
364
|
+
"Gemini keeps hallucinating about concurrency — fix it"
|
|
365
|
+
"Develop a skill for the reviewer's repeated type-safety misses"
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
Gossipcat generates a targeted skill file from the agent's failure data and injects it into future prompts. Signals penalize past mistakes; skills prevent future ones.
|
|
369
|
+
|
|
370
|
+
<br/>
|
|
371
|
+
|
|
372
|
+
## Usage
|
|
373
|
+
|
|
374
|
+
Once gossipcat is installed, you interact with it through natural language in Claude Code. The CLAUDE.md rules file (auto-generated on first boot) teaches Claude Code how to use the gossipcat tools — you just describe what you want.
|
|
375
|
+
|
|
376
|
+
### What to say to Claude Code
|
|
377
|
+
|
|
378
|
+
| What you want | What to type |
|
|
379
|
+
|---------------|-------------|
|
|
380
|
+
| Review your latest changes | *"Review my recent changes"* |
|
|
381
|
+
| Deep review of critical code | *"Do a consensus review on the auth module"* |
|
|
382
|
+
| Catch security issues | *"Security audit the payment handler"* |
|
|
383
|
+
| Research before building | *"How does the dispatch pipeline work?"* |
|
|
384
|
+
| Get a second opinion | *"Check if I'm right about this race condition"* |
|
|
385
|
+
| Check which agents are performing well | *"Show me agent scores"* |
|
|
386
|
+
| Improve a struggling agent | *"Develop a skill for the reviewer's type-safety misses"* |
|
|
387
|
+
| Save context for next session | *"Save session"* |
|
|
388
|
+
|
|
389
|
+
Claude Code reads the dispatch rules from `.claude/rules/gossipcat.md` and automatically decides whether to use single-agent, parallel, or consensus mode based on what your change touches.
|
|
390
|
+
|
|
391
|
+
### Example session
|
|
392
|
+
|
|
393
|
+
```
|
|
394
|
+
You: "Review the changes I made to the relay server with the gossipcat team"
|
|
395
|
+
|
|
396
|
+
Claude: Dispatches 3 agents via gossip_dispatch(mode: "consensus")
|
|
397
|
+
→ sonnet-reviewer checks for security issues
|
|
398
|
+
→ gemini-reviewer checks for logic bugs
|
|
399
|
+
→ gemini-tester checks for edge cases
|
|
400
|
+
|
|
401
|
+
Cross-review round: agents review each other's findings
|
|
402
|
+
|
|
403
|
+
Consensus report:
|
|
404
|
+
✓ CONFIRMED: race condition in connection cleanup (3/3 agree)
|
|
405
|
+
✓ CONFIRMED: missing error handler on WebSocket close (2/3 agree)
|
|
406
|
+
? UNVERIFIED: potential memory leak in Map (1 found, others couldn't verify)
|
|
407
|
+
|
|
408
|
+
Claude verifies the UNVERIFIED finding against your code,
|
|
409
|
+
records accuracy signals, and presents the final report.
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
### Under the hood
|
|
413
|
+
|
|
414
|
+
Claude Code translates your requests into gossipcat MCP tool calls:
|
|
415
|
+
|
|
416
|
+
```
|
|
417
|
+
gossip_run(agent_id: "auto", task: "...") → single-agent task
|
|
418
|
+
gossip_dispatch(mode: "consensus", tasks: [...]) → multi-agent review
|
|
419
|
+
gossip_collect(consensus: true) → cross-review + report
|
|
420
|
+
gossip_signals(action: "record", signals: [...]) → record accuracy
|
|
421
|
+
gossip_scores() → view agent performance
|
|
422
|
+
gossip_skills(action: "develop", ...) → improve struggling agents
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
You don't need to type these — Claude Code handles tool selection. But you can call them directly if you want fine-grained control.
|
|
426
|
+
|
|
427
|
+
<br/>
|
|
428
|
+
|
|
429
|
+
## For AI Agents
|
|
430
|
+
|
|
431
|
+
> **Currently supported orchestrator: Claude Code only.** Cursor, Windsurf, and VS Code agents do not yet have native agent support and cannot run consensus cross-review. If you are reading this as a Claude Code instance with the gossipcat MCP server connected, this guide applies to you.
|
|
432
|
+
|
|
433
|
+
If you are a Claude Code instance reading this to understand how to use gossipcat, here is the complete operational guide.
|
|
434
|
+
|
|
435
|
+
**You are the orchestrator.** Gossipcat gives you tools to dispatch work to a team of specialized agents, collect their results, run cross-review consensus, and record accuracy signals. You do not implement code directly — you coordinate.
|
|
436
|
+
|
|
437
|
+
### Step 1 — Check what you have
|
|
438
|
+
|
|
439
|
+
```
|
|
440
|
+
gossip_status()
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
This tells you: which agents are available, their providers/models, relay status, dashboard URL, and suggested workflows. Always call this first in a new session.
|
|
444
|
+
|
|
445
|
+
### Step 2 — Dispatch work
|
|
446
|
+
|
|
447
|
+
**Single agent (auto-selected):**
|
|
448
|
+
```
|
|
449
|
+
gossip_run(agent_id: "auto", task: "Review the auth module for security issues")
|
|
450
|
+
```
|
|
451
|
+
The system picks the best agent for the task based on past accuracy. For relay agents, this returns the result directly. For native agents (Claude Code subagents), it returns `⚠️ EXECUTE NOW` instructions — follow them immediately in the same response.
|
|
452
|
+
|
|
453
|
+
**Parallel (fan-out, no consensus):**
|
|
454
|
+
```
|
|
455
|
+
gossip_dispatch(mode: "parallel", tasks: [
|
|
456
|
+
{ agent_id: "gemini-reviewer", task: "..." },
|
|
457
|
+
{ agent_id: "sonnet-reviewer", task: "..." }
|
|
458
|
+
])
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
**Consensus (cross-review):**
|
|
462
|
+
```
|
|
463
|
+
gossip_dispatch(mode: "consensus", tasks: [
|
|
464
|
+
{ agent_id: "gemini-reviewer", task: "..." },
|
|
465
|
+
{ agent_id: "sonnet-reviewer", task: "..." },
|
|
466
|
+
{ agent_id: "haiku-researcher", task: "..." }
|
|
467
|
+
])
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
### Step 3 — Collect results
|
|
471
|
+
|
|
472
|
+
```
|
|
473
|
+
gossip_collect(task_ids: ["id1", "id2", "id3"], consensus: true)
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
With `consensus: true`, agents cross-review each other's findings. If native agents are in the round, `gossip_collect` returns `⚠️ EXECUTE NOW` with prompts — dispatch those `Agent()` calls immediately, then relay each result via `gossip_relay_cross_review`.
|
|
477
|
+
|
|
478
|
+
### Step 4 — Verify and record signals
|
|
479
|
+
|
|
480
|
+
After consensus, **verify every UNVERIFIED finding** against the actual code (grep/read the cited files). Then record signals:
|
|
481
|
+
|
|
482
|
+
```
|
|
483
|
+
gossip_signals(action: "record", signals: [{
|
|
484
|
+
signal: "unique_confirmed", // or "hallucination_caught", "agreement"
|
|
485
|
+
agent_id: "gemini-reviewer",
|
|
486
|
+
finding: "Race condition in task map at line 47",
|
|
487
|
+
finding_id: "<consensus_id>:<agent_id>:f1" // mandatory
|
|
488
|
+
}])
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
Signals update dispatch weights. Agents that hallucinate get penalized. Agents that catch real bugs get promoted.
|
|
492
|
+
|
|
493
|
+
### Key rules
|
|
494
|
+
|
|
495
|
+
- **Always follow `⚠️ EXECUTE NOW`** — dispatch those `Agent()` calls in the same response, do not wait.
|
|
496
|
+
- **Never leave UNVERIFIED findings unexamined** — read the code, confirm or deny, record the signal.
|
|
497
|
+
- **`finding_id` is mandatory on every signal** — format: `<consensus_id>:<agent_id>:fN`.
|
|
498
|
+
- **Use `gossip_progress` after reconnect** — if a consensus round was in flight, it re-surfaces the pending EXECUTE NOW prompts.
|
|
499
|
+
|
|
500
|
+
### When to use consensus
|
|
501
|
+
|
|
502
|
+
Use `gossip_dispatch(mode: "consensus")` when the change touches: shared mutable state, auth/sessions, file persistence, or the core dispatch pipeline. Use `gossip_run` for single-agent research, exploration, or review tasks that don't need cross-validation.
|
|
503
|
+
|
|
504
|
+
---
|
|
505
|
+
|
|
506
|
+
## MCP Tools
|
|
507
|
+
|
|
508
|
+
These tools are called by the internal LLM (the orchestrator — Claude Code with gossipcat MCP). You don't invoke them manually; the orchestrator selects and calls them based on your requests.
|
|
509
|
+
|
|
510
|
+
| Tool | Purpose |
|
|
511
|
+
|------|---------|
|
|
512
|
+
| `gossip_status` | System status, dashboard URL, agent list |
|
|
513
|
+
| `gossip_run` | Single-agent dispatch with auto agent selection |
|
|
514
|
+
| `gossip_dispatch` | Multi-agent dispatch: `single`, `parallel`, or `consensus` |
|
|
515
|
+
| `gossip_collect` | Collect results with optional cross-review synthesis |
|
|
516
|
+
| `gossip_relay` | Feed native agent results back into the pipeline |
|
|
517
|
+
| `gossip_relay_cross_review` | Feed native cross-review results into consensus |
|
|
518
|
+
| `gossip_plan` | Decompose task into sub-tasks with agent assignments |
|
|
519
|
+
| `gossip_signals` | Record or retract accuracy signals |
|
|
520
|
+
| `gossip_scores` | View agent accuracy, uniqueness, and dispatch weights |
|
|
521
|
+
| `gossip_skills` | Develop, bind, unbind, or list per-agent skills |
|
|
522
|
+
| `gossip_setup` | Create or update agent team |
|
|
523
|
+
| `gossip_session_save` | Save session context for next session |
|
|
524
|
+
| `gossip_remember` | Search an agent's cognitive memory |
|
|
525
|
+
| `gossip_progress` | Check in-progress task status |
|
|
526
|
+
| `gossip_tools` | List all available tools |
|
|
527
|
+
| `gossip_update` | Check for or apply gossipcat updates from npm |
|
|
528
|
+
| `gossip_bug_feedback` | File a GitHub issue on the gossipcat repo from an in-session bug report |
|
|
529
|
+
|
|
530
|
+
<br/>
|
|
531
|
+
|
|
532
|
+
## Dashboard
|
|
533
|
+
|
|
534
|
+
Build the dashboard (one time):
|
|
535
|
+
```bash
|
|
536
|
+
npm run build:dashboard
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
The dashboard launches automatically on port `24420` when gossipcat boots. Run `gossip_status` to get the URL and auth key:
|
|
540
|
+
|
|
541
|
+
```
|
|
542
|
+
Dashboard: http://localhost:24420/dashboard (key: a1b2c3...)
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
A new auth key is generated each session. Paste it when prompted to log in.
|
|
546
|
+
|
|
547
|
+
Built with React + Vite + shadcn/ui:
|
|
548
|
+
|
|
549
|
+
- **Overview** — agent cards with dispatch weights, recent tasks, finding metrics
|
|
550
|
+
- **Team** — all agents sorted by reliability
|
|
551
|
+
- **Tasks** — task history with agent, duration, and status
|
|
552
|
+
- **Findings** — consensus reports with CONFIRMED/DISPUTED/UNVERIFIED breakdowns
|
|
553
|
+
- **Agent detail** — per-agent memory, skills, scores, and task history
|
|
554
|
+
|
|
555
|
+
Live updates via WebSocket — every tool call pushes events to connected clients.
|
|
556
|
+
|
|
557
|
+
<br/>
|
|
558
|
+
|
|
559
|
+
## Architecture
|
|
560
|
+
|
|
561
|
+
```
|
|
562
|
+
gossipcat/
|
|
563
|
+
apps/
|
|
564
|
+
cli/ MCP server, native agent bridge, boot sequence
|
|
565
|
+
packages/
|
|
566
|
+
orchestrator/ Dispatch pipeline, consensus engine, memory, skills,
|
|
567
|
+
performance scoring, task graph, prompt assembly
|
|
568
|
+
relay/ WebSocket relay server, dashboard REST/WS API
|
|
569
|
+
dashboard-v2/ React + Vite frontend (Terminal Amber theme)
|
|
570
|
+
client/ Lightweight WebSocket client for relay connections
|
|
571
|
+
tools/ File/shell/git tool implementations for worker agents
|
|
572
|
+
types/ Shared TypeScript types and message protocol
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
<br/>
|
|
576
|
+
|
|
577
|
+
## OpenClaw Integration
|
|
578
|
+
|
|
579
|
+
<p align="center">
|
|
580
|
+
<img src="https://img.shields.io/badge/OpenClaw-gateway-4A90D9?style=for-the-badge" alt="OpenClaw" />
|
|
581
|
+
<img src="https://img.shields.io/badge/%F0%9F%A6%9E-lobster%20friendly-red?style=for-the-badge" alt="Lobster friendly" />
|
|
582
|
+
</p>
|
|
583
|
+
|
|
584
|
+
Gossipcat supports [OpenClaw](https://github.com/openclaw/openclaw) as a provider gateway. OpenClaw runs locally and exposes an OpenAI-compatible HTTP API — gossipcat talks to it like any other relay agent, with your stored gateway token and a separate quota slot so OpenClaw rate limits never bleed into your OpenAI agents.
|
|
585
|
+
|
|
586
|
+
### Wiring an OpenClaw agent
|
|
587
|
+
|
|
588
|
+
Store your gateway token once (macOS):
|
|
589
|
+
```bash
|
|
590
|
+
security add-generic-password -s gossip-mesh -a openclaw -w <your-gateway-token>
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
On Linux:
|
|
594
|
+
```bash
|
|
595
|
+
secret-tool store --label "Gossip Mesh openclaw" service gossip-mesh provider openclaw
|
|
596
|
+
# (enter token when prompted)
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
Then add it to your team:
|
|
600
|
+
```
|
|
601
|
+
"Add an OpenClaw reviewer to my team"
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
Or directly via `gossip_setup`:
|
|
605
|
+
```
|
|
606
|
+
gossip_setup(mode: "merge", agents: [{
|
|
607
|
+
id: "openclaw-agent",
|
|
608
|
+
type: "custom",
|
|
609
|
+
provider: "openclaw",
|
|
610
|
+
custom_model: "openclaw/default",
|
|
611
|
+
role: "reviewer",
|
|
612
|
+
skills: ["code_review", "typescript"]
|
|
613
|
+
}])
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
The gateway runs at `http://127.0.0.1:18789/v1` by default. Override with `base_url` if yours is on a different port. Available models: `openclaw`, `openclaw/default`, `openclaw/main`.
|
|
617
|
+
|
|
618
|
+
Once added, the agent participates in consensus rounds, accumulates accuracy signals, and gets skill files generated from its failure patterns — same as any other agent in the mesh.
|
|
619
|
+
|
|
620
|
+
<br/>
|
|
621
|
+
|
|
622
|
+
## Configuration
|
|
623
|
+
|
|
624
|
+
Config is searched in order: `.gossip/config.json` > `gossip.agents.json` > `gossip.agents.yaml`.
|
|
625
|
+
|
|
626
|
+
```json
|
|
627
|
+
{
|
|
628
|
+
"main_agent": {
|
|
629
|
+
"provider": "google",
|
|
630
|
+
"model": "gemini-2.5-pro"
|
|
631
|
+
},
|
|
632
|
+
"utility_model": {
|
|
633
|
+
"provider": "native",
|
|
634
|
+
"model": "haiku"
|
|
635
|
+
},
|
|
636
|
+
"consensus_judge": {
|
|
637
|
+
"provider": "anthropic",
|
|
638
|
+
"model": "claude-sonnet-4-6",
|
|
639
|
+
"native": true
|
|
640
|
+
},
|
|
641
|
+
"agents": {
|
|
642
|
+
"sonnet-reviewer": {
|
|
643
|
+
"provider": "anthropic",
|
|
644
|
+
"model": "claude-sonnet-4-6",
|
|
645
|
+
"preset": "reviewer",
|
|
646
|
+
"skills": ["code_review", "security_audit", "typescript"],
|
|
647
|
+
"native": true
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
| Field | Description |
|
|
654
|
+
|-------|-------------|
|
|
655
|
+
| `main_agent` | Internal tool LLM for routing, planning, and synthesis |
|
|
656
|
+
| `utility_model` | Memory compaction, gossip, lens generation |
|
|
657
|
+
| `consensus_judge` | Model for cross-review synthesis |
|
|
658
|
+
| `agents.<id>.provider` | `anthropic`, `google`, `openai`, `openclaw`, `local` |
|
|
659
|
+
| `agents.<id>.base_url` | Custom endpoint for `openai`/`openclaw` (e.g. `http://127.0.0.1:18789/v1`) |
|
|
660
|
+
| `agents.<id>.native` | `true` = runs via Claude Code Agent(), no API key |
|
|
661
|
+
| `agents.<id>.preset` | `reviewer`, `implementer`, `tester`, `researcher`, `debugger`, `architect`, `security`, `designer`, `planner`, `devops`, `documenter` |
|
|
662
|
+
| `agents.<id>.skills` | Skill labels for dispatch matching |
|
|
663
|
+
|
|
664
|
+
<br/>
|
|
665
|
+
|
|
666
|
+
## Host compatibility
|
|
667
|
+
|
|
668
|
+
Gossipcat auto-detects the host environment:
|
|
669
|
+
|
|
670
|
+
| Host | Native agents | Rules file |
|
|
671
|
+
|------|---------------|------------|
|
|
672
|
+
| Claude Code | Yes | `.claude/rules/gossipcat.md` |
|
|
673
|
+
| Cursor | No | `.cursor/rules/gossipcat.mdc` |
|
|
674
|
+
| Windsurf | No | `.windsurfrules` |
|
|
675
|
+
| VS Code | No | — |
|
|
676
|
+
|
|
677
|
+
<br/>
|
|
678
|
+
|
|
679
|
+
## Roadmap
|
|
680
|
+
|
|
681
|
+
| Feature | Status |
|
|
682
|
+
|---------|--------|
|
|
683
|
+
| Consensus code review | ✅ Shipped |
|
|
684
|
+
| Adaptive dispatch weights | ✅ Shipped |
|
|
685
|
+
| Per-agent skill development | ✅ Shipped |
|
|
686
|
+
| Agent cognitive memory | ✅ Shipped |
|
|
687
|
+
| Live dashboard | ✅ Shipped |
|
|
688
|
+
| Cross-platform key storage | ✅ Shipped |
|
|
689
|
+
| OpenAI-compatible gateway support (`base_url`) | ✅ Shipped |
|
|
690
|
+
| OpenClaw provider integration 🦞 | ✅ Shipped |
|
|
691
|
+
| Local LLM support (Ollama) | ✅ Shipped |
|
|
692
|
+
| Statistical skill effectiveness (z-test on per-category accuracy, auto pass/fail verdicts) | ✅ Shipped |
|
|
693
|
+
| Native subagents get skill injection + cognitive memory recall | ✅ Shipped |
|
|
694
|
+
| Relay cross-reviewers get `file_read` + `file_grep` (closes tool-blindness gap with natives) | ✅ Shipped |
|
|
695
|
+
| Full implementation workflow (agents write code) | 🔄 In progress |
|
|
696
|
+
| Dashboard enrichment (graphs, trends, session history) | ☐ Planned |
|
|
697
|
+
| Local Postgres migration (embedded Postgres for tasks/signals/consensus/memory — unblocks full task results, real queries, no more JSONL scans) | ☐ Planned |
|
|
698
|
+
| Full Cursor support | ☐ Planned |
|
|
699
|
+
| Windsurf / VS Code parity | ☐ Planned |
|
|
700
|
+
| Standalone CLI (no IDE required) | ☐ Planned |
|
|
701
|
+
| CLI parity with MCP pipeline (gossip, task graph, agent memory in chat mode) | ☐ Planned |
|
|
702
|
+
|
|
703
|
+
<br/>
|
|
704
|
+
|
|
705
|
+
|
|
706
|
+
<br/>
|
|
707
|
+
|
|
708
|
+
## Star History
|
|
709
|
+
|
|
710
|
+
<a href="https://www.star-history.com/?repos=gossipcat-ai%2Fgossipcat-ai&type=date&legend=bottom-right">
|
|
711
|
+
<picture>
|
|
712
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=gossipcat-ai/gossipcat-ai&type=date&theme=dark&legend=top-left" />
|
|
713
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=gossipcat-ai/gossipcat-ai&type=date&legend=top-left" />
|
|
714
|
+
<img alt="Star History Chart" src="https://api.star-history.com/chart?repos=gossipcat-ai/gossipcat-ai&type=date&legend=top-left" />
|
|
715
|
+
</picture>
|
|
716
|
+
</a>
|
|
717
|
+
|
|
718
|
+
## License
|
|
719
|
+
|
|
720
|
+
[MIT](LICENSE)
|