@deeplake/hivemind 0.7.15 → 0.7.16
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.
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Cloud-backed persistent shared memory for AI agents powered by Deeplake",
|
|
9
|
-
"version": "0.7.
|
|
9
|
+
"version": "0.7.16"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "hivemind",
|
|
14
14
|
"description": "Persistent shared memory powered by Deeplake — captures all session activity and provides cross-session, cross-agent memory search",
|
|
15
|
-
"version": "0.7.
|
|
15
|
+
"version": "0.7.16",
|
|
16
16
|
"source": "./claude-code",
|
|
17
17
|
"homepage": "https://github.com/activeloopai/hivemind"
|
|
18
18
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hivemind",
|
|
3
3
|
"description": "Cloud-backed persistent memory powered by Deeplake — read, write, and share memory across Claude Code sessions and agents",
|
|
4
|
-
"version": "0.7.
|
|
4
|
+
"version": "0.7.16",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Activeloop",
|
|
7
7
|
"url": "https://deeplake.ai"
|
package/README.md
CHANGED
|
@@ -11,24 +11,27 @@
|
|
|
11
11
|
<h4 align="center">One brain for all your agents</h4>
|
|
12
12
|
|
|
13
13
|
<p align="center">
|
|
14
|
+
<a href="https://www.npmjs.com/package/@deeplake/hivemind"><img src="https://img.shields.io/npm/v/@deeplake/hivemind?color=blue&label=npm" alt="npm"></a>
|
|
15
|
+
<a href="https://github.com/activeloopai/hivemind/stargazers"><img src="https://img.shields.io/github/stars/activeloopai/hivemind?style=social" alt="GitHub stars"></a>
|
|
14
16
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="License"></a>
|
|
15
17
|
<a href="package.json"><img src="https://img.shields.io/badge/node-%3E%3D22.0.0-brightgreen.svg" alt="Node"></a>
|
|
16
18
|
<a href="https://deeplake.ai"><img src="https://img.shields.io/badge/Powered%20by-Deeplake-orange.svg" alt="Deeplake"></a>
|
|
17
19
|
</p>
|
|
18
20
|
|
|
19
21
|
<p align="center">
|
|
20
|
-
|
|
22
|
+
Auto-learning, cloud-backed shared brain for <b>Claude Code • OpenClaw • Codex • Cursor • Hermes • pi</b> agents.<br>
|
|
21
23
|
</p>
|
|
22
24
|
|
|
23
|
-
> One
|
|
25
|
+
> One engineer's agent figures out a tricky migration on Monday.
|
|
24
26
|
>
|
|
25
|
-
>
|
|
27
|
+
> Tuesday, every agent on the team can execute the pattern.
|
|
26
28
|
|
|
27
|
-
Hivemind
|
|
29
|
+
**Beyond memory.** Hivemind captures every coding-agent interaction in your org as a structured trace, codifies repeated patterns into reusable skills, and propagates those skills to every agent on your team.
|
|
28
30
|
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
31
|
+
- 📥 **Captures** every session's prompts, tool calls, and responses as structured traces in Deeplake
|
|
32
|
+
- 🧠 **Codifies** patterns in those traces into reusable skills, available to every agent on your team
|
|
33
|
+
- 🔍 **Searches** across all traces and skills with lexical retrieval (grep fallback when index unavailable)
|
|
34
|
+
- 🔗 **Propagates** capability across sessions, agents, teammates, and machines in real time
|
|
32
35
|
- 📁 **Intercepts** file operations on `~/.deeplake/memory/` through a virtual filesystem backed by SQL
|
|
33
36
|
- 📝 **Summarizes** sessions into AI-generated wiki pages via a background worker at session end
|
|
34
37
|
|
|
@@ -40,7 +43,7 @@ One command, all your agents:
|
|
|
40
43
|
npm install -g @deeplake/hivemind && hivemind install
|
|
41
44
|
```
|
|
42
45
|
|
|
43
|
-
|
|
46
|
+
The installer detects every supported assistant on your machine (table below), wires up the hooks, and opens a browser once for login. Restart them after install.
|
|
44
47
|
|
|
45
48
|
**Install for a specific assistant only:**
|
|
46
49
|
|
|
@@ -188,51 +191,21 @@ hivemind codex uninstall # remove from one
|
|
|
188
191
|
|
|
189
192
|
## How it works
|
|
190
193
|
|
|
191
|
-
|
|
192
|
-
┌─────────────────────────────────────────────────────┐
|
|
193
|
-
│ Your Coding Agent │
|
|
194
|
-
└──────────────────────────┬──────────────────────────┘
|
|
195
|
-
│
|
|
196
|
-
┌──────────────────▼──────────────────┐
|
|
197
|
-
│ 📥 Capture (every turn) │
|
|
198
|
-
│ prompts · tool calls · responses │
|
|
199
|
-
└──────────────────┬──────────────────┘
|
|
200
|
-
│
|
|
201
|
-
┌──────────────────▼──────────────────┐
|
|
202
|
-
│ 🧠 Hivemind │
|
|
203
|
-
│ SQL tables · Virtual File System │
|
|
204
|
-
│ Search Memory · inject context │
|
|
205
|
-
└──────────────────┬──────────────────┘
|
|
206
|
-
│
|
|
207
|
-
┌──────────────────▼──────────────────┐
|
|
208
|
-
│ 🌊 Deeplake │
|
|
209
|
-
│ Shared across all agents │
|
|
210
|
-
│ Postgres · S3 │
|
|
211
|
-
└─────────────────────────────────────┘
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
Every session is captured. Every agent can recall. Teammates in the same org see the same memory.
|
|
194
|
+
**Capture → Codify → Propagate → Compound.** Every coding-agent interaction (prompt, tool call, response) is captured as a structured trace in Deeplake. A background worker mines traces for repeated patterns and codifies them into `SKILL.md` files, scoped to your workspace. Codified skills propagate into every Hivemind-connected agent's context at inference time. The agent your junior engineer used this morning is sharper because of what your senior engineer's agent figured out last week.
|
|
215
195
|
|
|
216
196
|
## Features
|
|
217
197
|
|
|
218
198
|
### 🔍 Natural search
|
|
219
199
|
|
|
220
|
-
Just ask
|
|
200
|
+
Just ask your agent naturally:
|
|
221
201
|
|
|
222
202
|
```
|
|
223
203
|
"What was Emanuele working on?"
|
|
224
|
-
"Search
|
|
204
|
+
"Search traces for authentication bugs we've solved"
|
|
225
205
|
"What did we decide about the API design?"
|
|
206
|
+
"Show me skills my team has codified for handling migrations"
|
|
226
207
|
```
|
|
227
208
|
|
|
228
|
-
### 📝 AI-generated session summaries
|
|
229
|
-
|
|
230
|
-
After each session, a background worker generates a wiki summary: key decisions, code changes, next steps. Browse them at `~/.deeplake/memory/summaries/`.
|
|
231
|
-
|
|
232
|
-
### 👥 Team sharing
|
|
233
|
-
|
|
234
|
-
Invite teammates to your Deeplake org. Their agents see your memory, your agents see theirs. No setup, no sync, no merge conflicts.
|
|
235
|
-
|
|
236
209
|
### 🔒 Privacy controls
|
|
237
210
|
|
|
238
211
|
Disable capture entirely:
|
|
@@ -256,10 +229,11 @@ This plugin captures session activity and stores it in your Deeplake workspace:
|
|
|
256
229
|
| User prompts | Every message you send |
|
|
257
230
|
| Tool calls | Tool name + full input |
|
|
258
231
|
| Tool responses | Full tool output |
|
|
259
|
-
| Assistant responses |
|
|
232
|
+
| Assistant responses | The agent's final response |
|
|
260
233
|
| Subagent activity | Subagent tool calls and responses |
|
|
234
|
+
| Codified skills | Patterns extracted from traces |
|
|
261
235
|
|
|
262
|
-
**All users in your Deeplake workspace can read this data.** A DATA NOTICE is displayed at the start of every session.
|
|
236
|
+
**All users in your Deeplake workspace can read this data.** That's the design — shared capability requires shared substrate. A DATA NOTICE is displayed at the start of every session. Workspace-level isolation prevents data leakage between orgs.
|
|
263
237
|
|
|
264
238
|
## Configuration
|
|
265
239
|
|
|
@@ -276,309 +250,41 @@ This plugin captures session activity and stores it in your Deeplake workspace:
|
|
|
276
250
|
| `HIVEMIND_EMBEDDINGS` | `true` | Set to `false` to force lexical-only mode |
|
|
277
251
|
| `HIVEMIND_DEBUG` | — | Set to `1` for verbose hook debug logs |
|
|
278
252
|
|
|
279
|
-
##
|
|
280
|
-
|
|
281
|
-
Hivemind can run a local embedding daemon (nomic-embed-text-v1.5, ~130 MB)
|
|
282
|
-
so that `Grep` over `~/.deeplake/memory/` uses hybrid semantic + lexical
|
|
283
|
-
ranking instead of pure BM25. This is **off by default** — the daemon
|
|
284
|
-
depends on `@huggingface/transformers`, which pulls onnxruntime-node and
|
|
285
|
-
sharp (~600 MB total with native binaries). Shipping that with every agent
|
|
286
|
-
install would 60× the install size for a feature most users don't need.
|
|
287
|
-
|
|
288
|
-
To enable, run the bundled command:
|
|
289
|
-
|
|
290
|
-
```bash
|
|
291
|
-
hivemind embeddings install
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
This installs `@huggingface/transformers` **once** into a shared directory
|
|
295
|
-
(`~/.hivemind/embed-deps/`) and symlinks every detected agent's plugin to
|
|
296
|
-
it, so the 600 MB cost is paid one time regardless of how many agents you
|
|
297
|
-
have wired up. Re-run the same command after installing a new agent and
|
|
298
|
-
the new symlink is added (the npm install is skipped because it's cached).
|
|
299
|
-
|
|
300
|
-
Or do it in one shot at install time:
|
|
301
|
-
|
|
302
|
-
```bash
|
|
303
|
-
hivemind install --with-embeddings # all detected agents
|
|
304
|
-
hivemind <agent> install --with-embeddings # a single agent
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
Other commands:
|
|
308
|
-
|
|
309
|
-
```bash
|
|
310
|
-
hivemind embeddings status # show shared deps + per-agent state
|
|
311
|
-
hivemind embeddings uninstall # remove the per-agent symlinks
|
|
312
|
-
hivemind embeddings uninstall --prune # also delete the shared dir (~600 MB)
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
Restart your agents after enabling. From the next session, captured
|
|
316
|
-
messages and AI-generated summaries will include a 768-dim embedding,
|
|
317
|
-
and semantic recall queries will route through the local daemon (the
|
|
318
|
-
nomic model is downloaded on first use and cached in `~/.cache/huggingface/`).
|
|
319
|
-
|
|
320
|
-
If `@huggingface/transformers` is **not** present, Hivemind silently
|
|
321
|
-
degrades to lexical-only mode:
|
|
253
|
+
## Semantic search (optional)
|
|
322
254
|
|
|
323
|
-
-
|
|
324
|
-
- ✅ `Grep` still works via BM25 / `ILIKE` matching on text columns.
|
|
325
|
-
- ⚪ The `message_embedding` / `summary_embedding` columns stay `NULL`.
|
|
326
|
-
- ⚪ The hook log notes `embeddings: no-transformers` once at session start.
|
|
255
|
+
Hivemind ships with a local embedding daemon (nomic-embed-text-v1.5) for hybrid semantic + lexical search over `~/.deeplake/memory/`. **Off by default** because the dependency footprint is ~600 MB. Enable with `hivemind embeddings install` (or `hivemind install --with-embeddings`). Without it, search degrades silently to BM25/lexical-only.
|
|
327
256
|
|
|
328
|
-
|
|
329
|
-
`HIVEMIND_EMBEDDINGS=false` (useful for CI or air-gapped environments).
|
|
257
|
+
Full guide: **[docs/EMBEDDINGS.md](docs/EMBEDDINGS.md)**.
|
|
330
258
|
|
|
331
259
|
## Summaries
|
|
332
260
|
|
|
333
|
-
|
|
334
|
-
**AI-written wiki summary** for each session and stores it in the
|
|
335
|
-
`memory` table (alongside its 768-dim `summary_embedding`). The summary
|
|
336
|
-
is what shows up when you `Grep` for past sessions or follow links from
|
|
337
|
-
`~/.deeplake/memory/index.md`.
|
|
338
|
-
|
|
339
|
-
### When summaries are written
|
|
340
|
-
|
|
341
|
-
Each agent (Claude Code / Codex / Cursor / Hermes / pi) fires a wiki
|
|
342
|
-
worker on two triggers:
|
|
343
|
-
|
|
344
|
-
| Trigger | When it fires |
|
|
345
|
-
|-------------------|-------------------------------------------------------------------------------|
|
|
346
|
-
| **Final** | At session end (Stop / SessionEnd / session_shutdown), once. |
|
|
347
|
-
| **Periodic** | Mid-session, when **either** of two thresholds is hit since the last summary: |
|
|
348
|
-
| | • messages-since-last-summary ≥ `HIVEMIND_SUMMARY_EVERY_N_MSGS` (default 50) |
|
|
349
|
-
| | • elapsed time ≥ `HIVEMIND_SUMMARY_EVERY_HOURS` (default 2) |
|
|
350
|
-
|
|
351
|
-
The first message after a long pause therefore triggers a fresh
|
|
352
|
-
summary; long sessions naturally checkpoint every ~50 messages.
|
|
353
|
-
|
|
354
|
-
A per-session JSON sidecar at
|
|
355
|
-
`~/.claude/hooks/summary-state/<sessionId>.json` tracks
|
|
356
|
-
`{lastSummaryAt, lastSummaryCount, totalCount}`. The dir is shared
|
|
357
|
-
across all agents (session ids are UUIDs so no collisions). It is
|
|
358
|
-
**never deleted**, so resuming a session via `--resume` / `--continue`
|
|
359
|
-
picks up where it left off.
|
|
360
|
-
|
|
361
|
-
### How a summary is generated
|
|
362
|
-
|
|
363
|
-
1. The wiki worker queries the `sessions` table for every event tied to
|
|
364
|
-
that session.
|
|
365
|
-
2. It builds a structured prompt asking the host agent's CLI to extract
|
|
366
|
-
entities, decisions, files modified, open questions, etc.
|
|
367
|
-
3. It shells out to that agent's CLI (`claude -p`, `codex exec`,
|
|
368
|
-
`pi --print`, …) with the prompt — never a separate API key, the
|
|
369
|
-
agent's existing credentials are used.
|
|
370
|
-
4. The generated markdown is uploaded to the `memory` table at
|
|
371
|
-
`/summaries/<user>/<sessionId>.md`. The shared embedding daemon
|
|
372
|
-
produces the 768-dim `summary_embedding` so the summary is recallable
|
|
373
|
-
via semantic search.
|
|
374
|
-
|
|
375
|
-
A lock file at `~/.claude/hooks/summary-state/<sessionId>.lock`
|
|
376
|
-
prevents two workers from running concurrently for the same session.
|
|
377
|
-
|
|
378
|
-
### Configuration
|
|
379
|
-
|
|
380
|
-
| Env var | Default | Effect |
|
|
381
|
-
|------------------------------------|----------------|-----------------------------------------------------|
|
|
382
|
-
| `HIVEMIND_SUMMARY_EVERY_N_MSGS` | `50` | Trigger periodic when messages-since-last ≥ this |
|
|
383
|
-
| `HIVEMIND_SUMMARY_EVERY_HOURS` | `2` | Trigger periodic after this many hours, with ≥1 msg |
|
|
384
|
-
| `HIVEMIND_CURSOR_MODEL` | `auto` | (cursor only) model passed to `cursor-agent --print --model` |
|
|
385
|
-
| `HIVEMIND_HERMES_PROVIDER` | `openrouter` | (hermes only) provider passed to `hermes -z --provider` |
|
|
386
|
-
| `HIVEMIND_HERMES_MODEL` | `anthropic/claude-haiku-4-5` | (hermes only) model passed to `hermes -z -m` |
|
|
387
|
-
| `HIVEMIND_PI_PROVIDER` | `google` | (pi only) provider passed to `pi --print --provider`|
|
|
388
|
-
| `HIVEMIND_PI_MODEL` | `gemini-2.5-flash` | (pi only) model passed to `pi --print --model` |
|
|
389
|
-
| `HIVEMIND_CAPTURE=false` | unset | Disable both capture and summary generation |
|
|
390
|
-
|
|
391
|
-
For pi specifically, the wiki worker is bundled separately at
|
|
392
|
-
`~/.pi/agent/hivemind/wiki-worker.js` (deposited by `hivemind pi install`).
|
|
393
|
-
The other agents ship the wiki worker inside their per-agent plugin
|
|
394
|
-
bundle.
|
|
395
|
-
|
|
396
|
-
## Skills (skilify)
|
|
397
|
-
|
|
398
|
-
Hivemind also crystallises **recurring patterns from your recent sessions
|
|
399
|
-
into reusable Claude Code skills**, automatically. Same architecture as
|
|
400
|
-
the wiki worker: an async background process that fires on Stop /
|
|
401
|
-
SessionEnd, mines recent sessions in scope, asks Haiku whether the
|
|
402
|
-
activity contains something worth keeping, and writes a `SKILL.md` if so.
|
|
403
|
-
|
|
404
|
-
### When the skilify worker fires
|
|
405
|
-
|
|
406
|
-
| Trigger | When it fires |
|
|
407
|
-
|------------------|--------------------------------------------------------------------------------|
|
|
408
|
-
| **Stop counter** | Mid-session, after every `HIVEMIND_SKILIFY_EVERY_N_TURNS` (default 20) turns. |
|
|
409
|
-
| **SessionEnd** | Always at end-of-session, regardless of counter — catches tail-of-session knowledge. |
|
|
410
|
-
|
|
411
|
-
Per-project counter state lives at
|
|
412
|
-
`~/.deeplake/state/skilify/<project-key>.json`. Project key is the sha1
|
|
413
|
-
of `git config remote.origin.url` (with the absolute path as fallback for
|
|
414
|
-
non-git dirs).
|
|
415
|
-
|
|
416
|
-
### How a skill is generated
|
|
417
|
-
|
|
418
|
-
1. The worker pulls the **last 10 sessions in scope** from the `sessions`
|
|
419
|
-
Deeplake table — strictly newer than the watermark in the state file.
|
|
420
|
-
2. It strips each session to **prompt + assistant text only** (tool calls
|
|
421
|
-
and thinking blocks are dropped — they're noise for skill mining).
|
|
422
|
-
3. It builds a gate prompt: existing project skill bodies + the 10
|
|
423
|
-
stripped exchanges + decision rules.
|
|
424
|
-
4. It runs `claude -p haiku --permission-mode bypassPermissions` with the
|
|
425
|
-
prompt. The model returns a JSON verdict:
|
|
426
|
-
- `KEEP <name> <body>` — write a new skill.
|
|
427
|
-
- `MERGE <existing-name> <merged-body>` — update an existing skill, bump version.
|
|
428
|
-
- `SKIP <reason>` — pattern is one-off / generic / already covered.
|
|
429
|
-
5. On KEEP/MERGE the skill is written to `<project>/.claude/skills/<name>/SKILL.md`
|
|
430
|
-
(or `~/.claude/skills/...` if you've set `install` to `global`), with
|
|
431
|
-
provenance frontmatter (`source_sessions`, `version`, `created_by_agent`,
|
|
432
|
-
timestamps).
|
|
433
|
-
6. A row is also inserted into the `skills` Deeplake table for org-wide
|
|
434
|
-
provenance (append-only — never UPDATE, sidesteps the
|
|
435
|
-
UPDATE-coalescing quirk).
|
|
436
|
-
|
|
437
|
-
### `/skilify` — managing scope, team, install location
|
|
438
|
-
|
|
439
|
-
The `/skilify` slash command (Claude Code, Codex) and the `hivemind
|
|
440
|
-
skilify` CLI control mining behaviour.
|
|
261
|
+
After each session, a background worker generates an AI-written wiki summary and stores it in the `memory` table alongside its 768-dim embedding. Long sessions checkpoint mid-session every 50 messages or 2 hours (configurable). The wiki worker shells out to the host agent's own CLI (`claude -p`, `codex exec`, `pi --print`, …) — no separate API key. Browse summaries at `~/.deeplake/memory/summaries/`.
|
|
441
262
|
|
|
442
|
-
|
|
443
|
-
hivemind skilify # show current scope, team, install, per-project state
|
|
444
|
-
hivemind skilify scope <me|team|org> # who counts as "in scope" for mining
|
|
445
|
-
hivemind skilify install <project|global> # where new skills are written
|
|
446
|
-
hivemind skilify promote <skill-name> # move a project skill to ~/.claude/skills/
|
|
447
|
-
hivemind skilify team add <username> # add to the team list (used when scope=team)
|
|
448
|
-
hivemind skilify team remove <username> # remove from team
|
|
449
|
-
hivemind skilify team list # list current team members
|
|
450
|
-
```
|
|
451
|
-
|
|
452
|
-
The team list flows into the worker's session-fetch SQL: `scope=me`
|
|
453
|
-
filters by your own username, `scope=team` filters by `author IN
|
|
454
|
-
(<team>)`, `scope=org` applies no author filter.
|
|
455
|
-
|
|
456
|
-
Config persists at `~/.deeplake/state/skilify/config.json` (one global
|
|
457
|
-
file shared across projects).
|
|
458
|
-
|
|
459
|
-
### `pull` / `unpull` — sharing skills across the org
|
|
460
|
-
|
|
461
|
-
Once a teammate's skills are mined into the Deeplake `skills` table, you
|
|
462
|
-
can install them locally with `pull`. Layout written to disk:
|
|
263
|
+
Triggers, generation flow, and env-var reference: **[docs/SUMMARIES.md](docs/SUMMARIES.md)**.
|
|
463
264
|
|
|
464
|
-
|
|
465
|
-
<root>/<name>--<author>/SKILL.md ← pulled skills (e.g. deploy--alice/)
|
|
466
|
-
<root>/<name>/SKILL.md ← your locally-mined skills (flat, no suffix)
|
|
467
|
-
```
|
|
468
|
-
|
|
469
|
-
The `--<author>` suffix keeps cross-author entries with the same name
|
|
470
|
-
disjoint and lets Claude Code's single-depth skill loader find pulled
|
|
471
|
-
skills without any symlink trickery. `<root>` is `~/.claude/skills` for
|
|
472
|
-
`--to global` and `<cwd>/.claude/skills` for `--to project`.
|
|
473
|
-
|
|
474
|
-
```bash
|
|
475
|
-
hivemind skilify pull # all authors, install globally
|
|
476
|
-
hivemind skilify pull --user alice@example.com # only this author
|
|
477
|
-
hivemind skilify pull --users a@x.com,b@y.com # multiple authors (CSV)
|
|
478
|
-
hivemind skilify pull --all-users # explicit "no author filter" (default)
|
|
479
|
-
hivemind skilify pull --to project # install under <cwd>/.claude/skills
|
|
480
|
-
hivemind skilify pull --dry-run # preview, no disk writes
|
|
481
|
-
hivemind skilify pull --force # overwrite even when local version >= remote
|
|
482
|
-
hivemind skilify pull <skill-name> # pull only that skill (combinable with --user)
|
|
483
|
-
```
|
|
265
|
+
## Skills (skillify)
|
|
484
266
|
|
|
485
|
-
|
|
486
|
-
`~/.deeplake/state/skilify/pulled.json`. That manifest is the source of
|
|
487
|
-
truth for `unpull` — anything not in the manifest is **never** touched
|
|
488
|
-
by default, even if its directory follows the `<name>--<author>` shape
|
|
489
|
-
(this protects user-authored variant skills like `deploy--blue-green`).
|
|
267
|
+
Hivemind **codifies recurring patterns from your team's recent sessions into reusable skills** that propagate to every agent on your team — automatically. An async background worker fires on Stop / SessionEnd, mines recent sessions in scope, asks Haiku whether the activity contains something worth keeping, and writes a `SKILL.md` to `<project>/.claude/skills/<name>/`.
|
|
490
268
|
|
|
491
269
|
```bash
|
|
492
|
-
hivemind
|
|
493
|
-
hivemind
|
|
494
|
-
hivemind
|
|
495
|
-
hivemind
|
|
496
|
-
hivemind skilify unpull --dry-run # preview, no disk writes
|
|
497
|
-
hivemind skilify unpull --to project # operate on <cwd>/.claude/skills instead of global
|
|
498
|
-
hivemind skilify unpull --all # ALSO remove flat-layout (locally-mined) skills — destructive
|
|
499
|
-
hivemind skilify unpull --legacy-cleanup # ALSO remove pre-`--author`-layout `<projectkey>/` dirs from older skilify versions
|
|
270
|
+
hivemind skillify # show current scope, team, install, per-project state
|
|
271
|
+
hivemind skillify scope <me|team|org> # who counts as "in scope" for mining
|
|
272
|
+
hivemind skillify pull # install teammates' skills locally
|
|
273
|
+
hivemind skillify unpull # remove pulled skills
|
|
500
274
|
```
|
|
501
275
|
|
|
502
|
-
|
|
503
|
-
(e.g. `rm -rf` by hand), the next `unpull` reports it as `manifest-orphan`
|
|
504
|
-
and prunes the entry from the manifest without errors.
|
|
505
|
-
|
|
506
|
-
Cross-project caveat: same `(name, author)` from two different projects
|
|
507
|
-
collides on disk under the new flat layout — the more recently pulled
|
|
508
|
-
row wins, and the prior `SKILL.md` is preserved as `SKILL.md.bak`. The
|
|
509
|
-
underlying row stays in the Deeplake `skills` table, so re-pulling from
|
|
510
|
-
the other project recovers it.
|
|
511
|
-
|
|
512
|
-
### Configuration
|
|
513
|
-
|
|
514
|
-
| Env var | Default | Effect |
|
|
515
|
-
|--------------------------------------|---------|---------------------------------------------------------|
|
|
516
|
-
| `HIVEMIND_SKILIFY_EVERY_N_TURNS` | `20` | Stop-counter threshold for mid-session worker fires |
|
|
517
|
-
| `HIVEMIND_SKILLS_TABLE` | `skills`| Deeplake table name for org-wide provenance |
|
|
518
|
-
| `HIVEMIND_SKILIFY_WORKER=1` | unset | Recursion guard (set automatically inside the worker) |
|
|
519
|
-
| `HIVEMIND_CURSOR_MODEL` | `auto` | (cursor only) model passed to the cursor-agent gate call |
|
|
520
|
-
| `HIVEMIND_HERMES_PROVIDER` | `openrouter` | (hermes only) provider passed to the hermes gate call |
|
|
521
|
-
| `HIVEMIND_HERMES_MODEL` | `anthropic/claude-haiku-4-5` | (hermes only) model passed to hermes |
|
|
522
|
-
|
|
523
|
-
### Per-agent gate CLI
|
|
524
|
-
|
|
525
|
-
The skilify worker calls each agent's own headless CLI for the gate
|
|
526
|
-
prompt — so a user who only has codex / cursor / hermes installed
|
|
527
|
-
never needs `claude` in their PATH:
|
|
528
|
-
|
|
529
|
-
| Agent | Gate command |
|
|
530
|
-
|-------------|----------------------------------------------------------------------------------------|
|
|
531
|
-
| claude_code | `claude -p <prompt> --no-session-persistence --model haiku --permission-mode bypassPermissions` |
|
|
532
|
-
| codex | `codex exec --dangerously-bypass-approvals-and-sandbox <prompt>` |
|
|
533
|
-
| cursor | `cursor-agent --print --model <HIVEMIND_CURSOR_MODEL> --force --output-format text <prompt>` |
|
|
534
|
-
| hermes | `hermes -z <prompt> --provider <HIVEMIND_HERMES_PROVIDER> -m <HIVEMIND_HERMES_MODEL> --yolo --ignore-user-config` |
|
|
535
|
-
|
|
536
|
-
For hermes via OpenRouter (the default), set `OPENROUTER_API_KEY` in
|
|
537
|
-
the environment; the worker inherits the parent process env. Other
|
|
538
|
-
providers (anthropic, openai, etc.) need their respective API keys.
|
|
539
|
-
|
|
540
|
-
### Logs
|
|
541
|
-
|
|
542
|
-
Worker activity logs to `~/.claude/hooks/skilify.log`. Each line shows
|
|
543
|
-
which session pool was mined, what the gate decided, and whether a file
|
|
544
|
-
was written.
|
|
276
|
+
Triggers, generation flow, full `pull` / `unpull` semantics, gate-CLI table per agent, env vars, logs: **[docs/SKILLIFY.md](docs/SKILLIFY.md)**.
|
|
545
277
|
|
|
546
278
|
## Architecture
|
|
547
279
|
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
| Agent | Mechanism | Hooks/tools wired |
|
|
551
|
-
|-------------------|------------------------------------|-----------------------------------------------------------------------------------------|
|
|
552
|
-
| **Claude Code** | Marketplace plugin | `SessionStart` · `UserPromptSubmit` · `PreToolUse` · `PostToolUse` · `Stop` · `SubagentStop` · `SessionEnd` |
|
|
553
|
-
| **Codex** | `~/.codex/hooks.json` | `SessionStart` · `UserPromptSubmit` · `PreToolUse(Bash)` · `PostToolUse` · `Stop` |
|
|
554
|
-
| **OpenClaw** | Native extension at `~/.openclaw/extensions/hivemind/` | `agent_end` capture · `before_agent_start` recall · contracted tools (`hivemind_search`/`read`/`index`) |
|
|
555
|
-
| **Cursor (1.7+)** | `~/.cursor/hooks.json` | `sessionStart` · `beforeSubmitPrompt` · `postToolUse` · `afterAgentResponse` · `stop` · `sessionEnd` |
|
|
556
|
-
| **Hermes** | Skill at `~/.hermes/skills/hivemind-memory/` | recall via grep on `~/.deeplake/memory/` |
|
|
557
|
-
| **pi** | `~/.pi/agent/AGENTS.md` + skill | recall via grep on `~/.deeplake/memory/` |
|
|
280
|
+
Per-agent integration mechanisms (marketplace plugin, hooks, skills, native extension) and monorepo structure: **[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)**.
|
|
558
281
|
|
|
559
|
-
|
|
282
|
+
## Roadmap
|
|
560
283
|
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
│ ├── hooks/codex/ ← Codex hooks
|
|
566
|
-
│ ├── hooks/cursor/ ← Cursor hooks
|
|
567
|
-
│ ├── hooks/hermes/ ← Hermes shell hooks
|
|
568
|
-
│ ├── hooks/pi/ ← pi wiki-worker (extension lives in pi/extension-source/)
|
|
569
|
-
│ ├── embeddings/ ← nomic embed-daemon + protocol + SQL helpers
|
|
570
|
-
│ ├── mcp/ ← MCP server (used by Hermes; available to any future MCP-aware client)
|
|
571
|
-
│ ├── commands/ ← auth, auth-creds, auth-login, session-prune
|
|
572
|
-
│ └── cli/ ← unified `hivemind install` CLI + per-agent installers
|
|
573
|
-
├── claude-code/ ← Claude Code plugin source (marketplace-distributed)
|
|
574
|
-
├── codex/ ← Codex plugin build output (npm-distributed)
|
|
575
|
-
├── cursor/ ← Cursor plugin build output (npm-distributed)
|
|
576
|
-
├── hermes/ ← Hermes plugin build output (npm-distributed)
|
|
577
|
-
├── mcp/ ← MCP server build output (shared by Hermes + future MCP clients)
|
|
578
|
-
├── openclaw/ ← OpenClaw plugin source + build output (ClawHub-distributed)
|
|
579
|
-
├── pi/ ← pi extension source (ships raw .ts; pi compiles at load)
|
|
580
|
-
└── bundle/ ← unified `hivemind` CLI build output
|
|
581
|
-
```
|
|
284
|
+
- **Trajectory export for fine-tuning.** Because traces are stored in Deeplake's tensor format, they're export-ready as PyTorch datasets. Teams running their own open-source models can fine-tune on their org's accumulated trajectories. A handful of advanced customers are already doing this against the trajectories their Claude Code and Codex agents generated.
|
|
285
|
+
- **GPU-accelerated dense retrieval at scale.** Local CPU embeddings already ship via the optional nomic-embed daemon (see [Semantic search](#semantic-search-optional)). Next: GPU-accelerated vector search over the full trace store, on by default.
|
|
286
|
+
- **Skill versioning and review.** Pre-release human review for codified skills before they propagate org-wide, for teams that want a curation step.
|
|
287
|
+
- **More agents.** If your team uses an agent that isn't on the supported-assistants list above, open an issue.
|
|
582
288
|
|
|
583
289
|
## Security
|
|
584
290
|
|
package/openclaw/dist/index.js
CHANGED
|
@@ -1070,7 +1070,7 @@ function extractLatestVersion(body) {
|
|
|
1070
1070
|
return typeof v === "string" && v.length > 0 ? v : null;
|
|
1071
1071
|
}
|
|
1072
1072
|
function getInstalledVersion() {
|
|
1073
|
-
return "0.7.
|
|
1073
|
+
return "0.7.16".length > 0 ? "0.7.16" : null;
|
|
1074
1074
|
}
|
|
1075
1075
|
function isNewer(latest, current) {
|
|
1076
1076
|
const parse = (v) => v.replace(/-.*$/, "").split(".").map(Number);
|
package/openclaw/package.json
CHANGED