@legioncodeinc/honeycomb 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/LICENSE +661 -661
  4. package/README.md +314 -283
  5. package/assets/logos/honeycomb-memory-cluster.svg +17 -17
  6. package/assets/readme.md +117 -117
  7. package/assets/styles.css +11 -11
  8. package/assets/tokens/base.css +76 -76
  9. package/assets/tokens/colors.css +111 -111
  10. package/assets/tokens/fonts.css +32 -32
  11. package/assets/tokens/spacing.css +48 -48
  12. package/assets/tokens/typography.css +38 -38
  13. package/bundle/cli.js +522 -190
  14. package/daemon/index.js +43493 -43073
  15. package/daemon/restart-helper.js +0 -0
  16. package/embeddings/embed-daemon.js +1 -1
  17. package/harnesses/claude-code/.claude-plugin/plugin.json +2 -2
  18. package/harnesses/claude-code/bundle/capture.js +0 -0
  19. package/harnesses/claude-code/bundle/index.js +0 -0
  20. package/harnesses/claude-code/bundle/pre-tool-use.js +0 -0
  21. package/harnesses/claude-code/bundle/session-end.js +0 -0
  22. package/harnesses/claude-code/bundle/session-start.js +0 -0
  23. package/harnesses/claude-code/hooks/hooks.json +86 -86
  24. package/harnesses/codex/bundle/capture.js +0 -0
  25. package/harnesses/codex/bundle/index.js +0 -0
  26. package/harnesses/codex/bundle/pre-tool-use.js +0 -0
  27. package/harnesses/codex/bundle/session-start.js +0 -0
  28. package/harnesses/codex/package.json +2 -2
  29. package/harnesses/cursor/bundle/capture.js +0 -0
  30. package/harnesses/cursor/bundle/index.js +0 -0
  31. package/harnesses/cursor/bundle/pre-tool-use.js +0 -0
  32. package/harnesses/cursor/bundle/session-end.js +0 -0
  33. package/harnesses/cursor/bundle/session-start.js +0 -0
  34. package/harnesses/hermes/bundle/index.js +0 -0
  35. package/harnesses/openclaw/dist/index.js +1 -1
  36. package/harnesses/openclaw/openclaw.plugin.json +1 -1
  37. package/harnesses/openclaw/package.json +2 -2
  38. package/harnesses/pi/bundle/index.js +0 -0
  39. package/mcp/bundle/server.js +1 -1
  40. package/package.json +144 -144
  41. package/scripts/ensure-embed-deps.mjs +67 -67
  42. package/scripts/ensure-tree-sitter.mjs +89 -89
package/README.md CHANGED
@@ -1,283 +1,314 @@
1
- <!-- ─────────────────────────────── HERO ─────────────────────────────── -->
2
-
3
- <p align="center">
4
- <picture>
5
- <source media="(prefers-color-scheme: dark)" srcset="assets/logos/honeycomb-memory-cluster-wordmark-on-dark.svg">
6
- <img src="assets/logos/honeycomb-memory-cluster-wordmark.svg" alt="Honeycomb" height="84">
7
- </picture>
8
- </p>
9
-
10
- <p align="center">
11
- <strong>Shared, persistent memory for your AI coding agents.</strong><br>
12
- What one harness learns, every other one recalls, across sessions, tools, devices, and teammates.
13
- </p>
14
-
15
- <p align="center">
16
- <a href="https://www.npmjs.com/package/@legioncodeinc/honeycomb"><img src="https://img.shields.io/npm/v/@legioncodeinc/honeycomb?style=flat-square&color=F7A823&label=version" alt="npm version"></a>
17
- <img src="https://img.shields.io/badge/node-%E2%89%A522-339933?style=flat-square&logo=node.js&logoColor=white" alt="Node ≥ 22">
18
- <a href="https://deeplake.ai"><img src="https://img.shields.io/badge/powered%20by-Deep%20Lake-ff5a1f?style=flat-square" alt="Powered by Deep Lake"></a>
19
- <a href="#license"><img src="https://img.shields.io/badge/license-AGPL--3.0-blue?style=flat-square" alt="AGPL-3.0"></a>
20
- <img src="https://img.shields.io/badge/harnesses-6-F7A823?style=flat-square" alt="6 harnesses">
21
- </p>
22
-
23
- <!-- ────────────────────────────── PARTNERS ────────────────────────────── -->
24
-
25
- <p align="center">
26
- <a href="https://github.com/legioncodeinc">
27
- <picture>
28
- <source media="(prefers-color-scheme: dark)" srcset="assets/logos/legion-logo-dark.svg">
29
- <img src="assets/logos/legion-logo-light.svg" alt="Legion Code" height="34">
30
- </picture>
31
- </a>
32
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
33
- <a href="https://activeloop.ai">
34
- <picture>
35
- <source media="(prefers-color-scheme: dark)" srcset="assets/logos/activeloop-full-mark-logo-on-dark.svg">
36
- <img src="assets/logos/activeloop-full-mark-logo.svg" alt="Activeloop" height="26">
37
- </picture>
38
- </a>
39
- </p>
40
-
41
- <p align="center"><sub>A <a href="https://github.com/legioncodeinc"><strong>Legion Code</strong></a> &times; <a href="https://activeloop.ai"><strong>Activeloop</strong></a> collaboration · built on <a href="https://github.com/activeloopai/hivemind">Hivemind</a> &amp; <a href="https://deeplake.ai">Deep Lake</a></sub></p>
42
-
43
- ---
44
-
45
- AI coding agents forget. They forget across sessions, and they forget across tools. A decision you reached in Claude Code at midnight is invisible to Cursor the next morning. **Honeycomb fixes that.** A local daemon captures what happens on every turn, distills it, and serves it back to any harness that asks. Learn something once; recall it everywhere, on any machine, in any tool, for anyone on your team.
46
-
47
- > **New here?** One command and you're on a dashboard. [Jump to Install](#-install-one-command). · **Want the docs?** Everything lives at **[theapiary.sh](https://theapiary.sh)**.
48
-
49
- <table>
50
- <tr>
51
- <td width="50%" valign="top">
52
-
53
- #### 🛹 For AI augmented devs
54
- Stop re-explaining your project to a fresh agent every morning. Honeycomb remembers your decisions, your conventions, and the fixes that worked, then primes your next session with them automatically. One install command, a friendly dashboard, no SQL, no config gauntlet.
55
-
56
- </td>
57
- <td width="50%" valign="top">
58
-
59
- #### 🏢 For enterprise teams
60
- One shared brain across every developer, device, and coding tool. A skill discovered by one engineer propagates to the whole team on their next session. Tenancy is enforced at the storage layer; credentials live behind a single loopback boundary; everything is versioned and auditable.
61
-
62
- </td>
63
- </tr>
64
- </table>
65
-
66
- ---
67
-
68
- ## What makes Honeycomb different
69
-
70
- A vector database can store text and hand it back by similarity. Honeycomb does that, and then keeps going. On top of [Activeloop Deep Lake](https://deeplake.ai), **[Legion Code](https://github.com/legioncodeinc)** builds the memory system that turns raw recall into a brain your agents actually trust:
71
-
72
- - **🧠 Three-tier memory.** Every memory exists at three resolutions at once (one-line **key** → **summary** → full **raw** session). Agents skim the keys, then zoom into detail only when they need it. *(Legion Code)*
73
- - **🎯 Session priming.** At session start a tiny, bounded index (~300-800 tokens) of your most relevant keys is pushed once; the agent pulls deeper on demand. No per-turn injection, no "lost in the middle." *(Legion Code)*
74
- - **🍯 Skillify & propagation.** The daemon mines reusable skills out of real sessions, gates them for quality, and auto-pulls the team's latest skills into every agent at session start. Author a skill once; everyone gets it. *(Legion Code)*
75
- - **🌼 The pollinating loop.** A periodic maintenance pass reasons over accumulated memory and the entity graph to merge duplicates, prune junk, and supersede stale facts, so memory gets *sharper* over time, not noisier. *(Legion Code)*
76
- - **🕸️ Knowledge graph.** An entity-centric, versioned, provenance-tracked index over your memories. Newer facts supersede stale ones; every claim traces back to the session that produced it. *(Legion Code)*
77
- - **🔀 Hybrid recall.** Lexical (BM25) and semantic (768-dim vectors) search fused by Reciprocal Rank Fusion, with a measured **recall@5 0.72-0.78**. *(built on Deep Lake)*
78
- - **🗺️ Codebase graph.** A multi-language AST graph (TypeScript, JS, Python, Go, Rust, Java, Ruby, C/C++) of files, functions, and their call/import/extends edges, queryable for impact and neighborhood. *(Legion Code)*
79
-
80
- ---
81
-
82
- ## 🚀 Install (one command)
83
-
84
- No Node? No npm? No problem. The installer detects and sets up everything, then **opens a dashboard in your browser**. The terminal is just a progress log; the product is the first thing you touch.
85
-
86
- ```bash
87
- # macOS / Linux
88
- curl -fsSL https://get.theapiary.sh | sh
89
- ```
90
-
91
- ```powershell
92
- # Windows (PowerShell)
93
- irm https://get.theapiary.sh/install.ps1 | iex
94
- ```
95
-
96
- That single line installs a current Node/npm if missing, installs **`@legioncodeinc/honeycomb`** globally, brings up the daemon on `127.0.0.1:3850`, opens the dashboard, and sets up **[HiveDoctor](#-hivedoctor-the-self-healing-watchdog)**, a tiny watchdog that keeps it all healthy (opt out with `--no-hivedoctor`). Then:
97
-
98
- 1. The dashboard loads in a **pre-auth setup state**. No token ever touches your shell.
99
- 2. Click **"First time setup."** Honeycomb runs the Deep Lake device-flow login *for* you, shows the code right on the page, and opens the verification tab.
100
- 3. Done. The same running daemon lights up its Deep Lake-backed surfaces, and capture and recall go live.
101
-
102
- > Already running **Hivemind**? The dashboard detects it, explains that running both is unsupported, and **"Proceed with Honeycomb"** migrates you cleanly. Prefer to inspect before you pipe? The script and a published `SHA256SUMS` are served from [get.theapiary.sh](https://get.theapiary.sh).
103
-
104
- <details>
105
- <summary><strong>Prefer to build from source?</strong></summary>
106
-
107
- ```bash
108
- git clone https://github.com/legioncodeinc/honeycomb.git
109
- cd honeycomb
110
- npm install
111
- npm run build # tsc + esbuild → bundle/cli.js, daemon, harness, MCP, embed bundles
112
-
113
- node bundle/cli.js setup # detect your assistants, wire hooks, start the daemon
114
- node bundle/cli.js status # check the daemon and your environment
115
- ```
116
-
117
- `setup` wires every coding assistant it detects and starts the loopback daemon; any storage command auto-starts the daemon if it is down. You'll need Activeloop Deep Lake credentials; the device flow above writes them to the shared `~/.deeplake/credentials.json`.
118
-
119
- </details>
120
-
121
- ---
122
-
123
- ## 🐝 First memory, shared across tools
124
-
125
- ```bash
126
- # Capture a decision once…
127
- honeycomb remember "we deploy from the prd-022 branch, never from main"
128
-
129
- # …recall it anywhere: same daemon, same Deep Lake, any harness
130
- honeycomb recall "how do we deploy"
131
- ```
132
-
133
- Write it from Claude Code; recall it from Cursor tomorrow on a different laptop. That's the whole point.
134
-
135
- ---
136
-
137
- ## 🏗️ How it works
138
-
139
- Honeycomb is a long-lived local **daemon** plus thin clients. The daemon is the *only* process that talks to storage. Every harness, the CLI, the MCP server, and the SDK reach it over loopback HTTP. One shared memory behind one boundary; your Deep Lake credentials in exactly one place.
140
-
141
- ```
142
- Claude Code Cursor Codex Hermes pi OpenClaw
143
- │ │ │ │ │ │
144
- └───────────┴────┬────┴────────┴───────┴────────┘
145
- hooks · CLI · MCP · SDK (thin clients)
146
-
147
- loopback HTTP · 127.0.0.1:3850
148
-
149
- ┌──────────────────────────────┐
150
- │ honeycomb daemon │ sole storage client
151
- │ capture · recall · skillify │ owns your credentials
152
- │ pollinate · session priming │
153
- └───────────────┬──────────────┘
154
-
155
- ┌──────────────────────────────┐
156
- │ Activeloop Deep Lake │ versioned · columnar + vector
157
- │ Tier 1 · Tier 2 · Tier 3 │ BM25 + semantic hybrid
158
- └──────────────────────────────┘
159
- ```
160
-
161
- - **Capture on every turn.** Per-harness hooks stream each turn to the daemon, which distills and persists it: always-on, cheap, and soft-failing so a capture error never breaks your agent's turn.
162
- - **Recall through the daemon.** Any harness asks for relevant memories; the daemon runs the query and returns results already scoped to your org and workspace. The client never sees a storage handle or a line of SQL.
163
- - **Shared by construction.** Every client reaches the same daemon and the same dataset, so a memory written from one harness is recallable from all of them.
164
-
165
- ---
166
-
167
- ## 🧠 The three-tier memory system
168
-
169
- This is the heart of what **Legion Code** adds on top of Deep Lake. The same memory lives at three levels of detail at once, and the agent chooses how far to zoom:
170
-
171
- | Tier | What it is | When it's used |
172
- |---|---|---|
173
- | **Tier 1 · Key** | One keyword-dense sentence per session or fact. The index. | Skimmed at session start during priming. |
174
- | **Tier 2 · Summary** | A distilled recap: goals, decisions, blockers, outcomes. Carries the semantic embedding. | Pulled when a key looks relevant. |
175
- | **Tier 3 · Raw** | The full session dialogue: exact turns and tool calls, never rewritten. | Resolved when the agent needs ground truth. |
176
-
177
- Resolution is a **deterministic SQL join, not a fuzzy search**. `key → summary → raw` is a pointer walk down three Deep Lake tables. Mining ("find the thing I didn't know to name") is where the hybrid vector + lexical search kicks in. Cheap when you're skimming, precise when you're zooming.
178
-
179
- ---
180
-
181
- ## 💎 Why Deep Lake makes the difference
182
-
183
- Most agent-memory tools bolt onto a vector-only store, which forces *every* access pattern through a similarity engine. Honeycomb's zoom model needs both exact joins **and** semantic search, and [**Deep Lake**](https://deeplake.ai), the database for AI, gives it both natively:
184
-
185
- - **SQL + vector in one engine.** The cheap skim and the deterministic zoom run as SQL; semantic mining runs as vector search; a single store serves both. No second database, no sync problem.
186
- - **Versioned & append-only.** Writes bump a version instead of mutating in place, so memory's full history stays on disk. Supersession marks old facts stale without losing them, which is what makes the pollinating loop safe and auditable.
187
- - **Hybrid lexical + semantic search.** BM25 and 768-dim `nomic-embed-text-v1.5` cosine arms, fused by Reciprocal Rank Fusion. Turn embeddings off and recall silently falls back to lexical, never an error, no quality cliff.
188
- - **Built to scale & BYOC.** The same substrate that serves one developer's laptop serves an organization's entire history, in your own cloud bucket if you want it.
189
-
190
- > Honeycomb stands on two shoulders: **[Deep Lake](https://deeplake.ai)** gives the memories somewhere durable and queryable to live, and **[Hivemind](https://github.com/activeloopai/hivemind)**, Activeloop's open-source agent-memory project, is the foundation Legion Code extended into Honeycomb's multi-tier system.
191
-
192
- ---
193
-
194
- ## 🔌 Supported harnesses
195
-
196
- Honeycomb ships thin clients for six coding harnesses, all wired simultaneously, all reading and writing the same shared memory:
197
-
198
- | | | |
199
- |---|---|---|
200
- | **Claude Code** | **Cursor** | **Codex** |
201
- | **Hermes** | **pi** | **OpenClaw** |
202
-
203
- `honeycomb setup` detects the ones you have installed and wires each idempotently; `honeycomb uninstall` reverses only Honeycomb's changes. A skill mined while you were in Cursor is auto-pulled and ready in Claude Code on your next session.
204
-
205
- ---
206
-
207
- ## 🎛️ Interfaces
208
-
209
- Four ways to reach the same daemon and the same shared memory:
210
-
211
- - **CLI.** The unified `honeycomb` binary. Core verbs: `install`, `setup`, `status`, `daemon start|stop|status`, `remember`, `recall`, `sessions`, `skill`, `goal`, `sources`, `graph`, `dashboard`. Run `honeycomb --help` for the full list.
212
- - **Dashboard.** A local web UI the daemon serves at **`http://127.0.0.1:3850/dashboard`**: KPIs (memories, turns, est. savings, team skills), memory recall, the codebase graph, captured turns, skill-sync, and settings, with a live request log. It's also the guided-setup surface for first-time login.
213
- - **MCP server.** A [Model Context Protocol](https://modelcontextprotocol.io) server (bundled to `mcp/bundle`) exposing Honeycomb's read/resolve and search/mine tools to any MCP-capable host.
214
- - **TypeScript SDK.** The `@legioncodeinc/honeycomb` client with framework subpath entries (`/react`, `/vercel`, `/openai`). The core entry is fetch-only and browser-safe; `react` and `ai` are optional peers.
215
-
216
- ---
217
-
218
- ## 🩺 HiveDoctor: the self-healing watchdog
219
-
220
- A daemon you cannot see is a daemon you cannot trust. **[HiveDoctor](https://www.npmjs.com/package/@legioncodeinc/hivedoctor)** is a separate, deliberately tiny package (zero runtime dependencies, Node built-ins only) that keeps your Honeycomb daemon healthy and reports home when it cannot. It is supervised by your OS (launchd / systemd / Windows Scheduled Task), so it survives crashes and reboots independently of the daemon it watches.
221
-
222
- - **Watches and heals.** Probes the daemon's `/health` and runs an escalating repair ladder with exponential backoff: restart, then reinstall, then remove a conflicting Hivemind, then escalate. It goes quiet the moment the daemon is healthy, and it never touches your credentials.
223
- - **Tells us when it cannot.** An unhealable install surfaces a local status page and, unless you opt out, sends a scrubbed diagnosis home, so problems get fixed proactively instead of becoming a support thread.
224
- - **Keeps Honeycomb current.** Safely auto-updates the daemon behind a blessed-release gate, verifying health and rolling back on failure.
225
- - **Honest by default.** Telemetry is opt-out (`DO_NOT_TRACK=1`, `HONEYCOMB_TELEMETRY=0`, or the dashboard) and never includes credentials, tokens, or your code. The one-command installer sets it up automatically; skip it with `--no-hivedoctor`. Full details in the [HiveDoctor README](hivedoctor/README.md).
226
-
227
- ---
228
-
229
- ## 📍 Status & roadmap
230
-
231
- Honeycomb is **pre-release (v0.1.x)**. We document what's real and flag what's opt-in.
232
-
233
- **Working today**
234
- - Capture-to-recall, proven end-to-end against live Deep Lake (`npm run smoke:golden-path` with credentials).
235
- - One-command install → guided dashboard setup, the loopback daemon, the unified CLI, per-harness hooks, the MCP server, and the SDK.
236
- - Three-tier memory, session priming, skillify + propagation, the pollinating loop, the knowledge graph, and the codebase graph.
237
-
238
- **Opt-in / by design**
239
- - **Embeddings are opt-in.** Recall runs the lexical BM25 path by default; turning on the local embedding runtime (≈600 MB, model fetched on first warmup) adds 768-dim semantic recall. The fallback is silent and intentional; recall never errors when embeddings are unavailable.
240
- - **The distillation pipeline is off by default** to avoid surprise model spend; enable it when you want background summarization and graph extraction.
241
- - The daemon binds **loopback only** (single machine). Cross-device and cross-user sharing happen through Deep Lake's org/workspace scope, not a remote daemon bind.
242
-
243
- Full documentation, guides, and the roadmap live at **[theapiary.sh](https://theapiary.sh)**.
244
-
245
- ---
246
-
247
- ## 🛠️ Development
248
-
249
- ```bash
250
- npm install
251
- npm run build # tsc + esbuild bundle/cli.js, the daemon, harness, MCP, and embed bundles
252
- npm run ci # the gate: typecheck + duplication (jscpd) + tests (vitest) + SQL-safety audit
253
- ```
254
-
255
- `npm run ci` is the quality gate every change must pass.
256
-
257
- ---
258
-
259
- ## 🙏 Credits
260
-
261
- Honeycomb exists because two halves fit together:
262
-
263
- - **[Activeloop](https://activeloop.ai)** brings **[Deep Lake](https://deeplake.ai)** (the versioned, multi-modal database for AI with native vector + columnar indexing and hybrid search) and **[Hivemind](https://github.com/activeloopai/hivemind)**, the open-source agent-memory project Honeycomb is built upon.
264
- - **[Legion Code Inc](https://github.com/legioncodeinc)** brings the **multi-tier memory system** (Tier 1 / 2 / 3 keys, summaries, raw), **session priming**, **skillify & propagation**, the **pollinating loop**, the **knowledge graph**, and the daemon architecture that turns Deep Lake into a shared brain your coding agents read and write on every turn.
265
-
266
- Neither half stands alone. Deep Lake and Hivemind give the memories somewhere durable to live; Legion Code gives every harness one consistent way to write to and recall from it, so what one agent learns survives a closed session, a switched tool, a new machine, and a new teammate.
267
-
268
- ---
269
-
270
- ## License
271
-
272
- Honeycomb is licensed under the **GNU Affero General Public License v3.0 or later** ([AGPL-3.0-or-later](LICENSE)).
273
-
274
- Use it commercially or privately, free of charge. In return: keep the copyright and license notices intact, and if you modify it, your changes ship under the same AGPL license with source available. The "Affero" part is the point: run a modified version as a network service and you owe its source to the users who interact with it. No locking a fork behind a SaaS wall.
275
-
276
- © 2026 Legion Code Inc.
277
-
278
- ---
279
-
280
- <p align="center">
281
- <sub><strong>Built by <a href="https://github.com/legioncodeinc">Legion Code Inc</a></strong> · <strong>Powered by <a href="https://deeplake.ai">Activeloop Deep Lake</a></strong> · <strong>Built on <a href="https://github.com/activeloopai/hivemind">Hivemind</a></strong></sub><br>
282
- <sub><a href="https://theapiary.sh">theapiary.sh</a></sub>
283
- </p>
1
+ <!-- ─────────────────────────────── HERO ─────────────────────────────── -->
2
+
3
+ <p align="center">
4
+ <picture>
5
+ <source media="(prefers-color-scheme: dark)" srcset="assets/brand/honeycomb-wordmark-on-dark.svg">
6
+ <img src="assets/brand/honeycomb-wordmark-black.svg" alt="Honeycomb" height="84">
7
+ </picture>
8
+ </p>
9
+
10
+ <h1 align="center">Honeycomb</h1>
11
+
12
+ <p align="center">
13
+ <strong>Shared, persistent memory for your AI coding agents.</strong><br>
14
+ What one harness learns, every other one recalls, across sessions, tools, devices, and teammates.
15
+ </p>
16
+
17
+ <p align="center">
18
+ <a href="https://www.npmjs.com/package/@legioncodeinc/honeycomb"><img src="https://img.shields.io/npm/v/@legioncodeinc/honeycomb?style=flat-square&color=F7A823&label=version" alt="npm version"></a>
19
+ <img src="https://img.shields.io/badge/harnesses-6-F7A823?style=flat-square" alt="6 harnesses">
20
+ <img src="https://img.shields.io/badge/OS-windows%20%7C%20macos%20%7C%20linux-6E6A62?style=flat-square" alt="Windows, macOS, Linux">
21
+ </p>
22
+
23
+ <p align="center">
24
+ <a href="https://linktr.ee/marioaldayuz"><img src="https://img.shields.io/badge/designed%20by-Mario%20Aldayuz-8B7CF0?style=flat-square" alt="Designed by Mario Aldayuz"></a>
25
+ <a href="https://www.legioncodeinc.com"><img src="https://img.shields.io/badge/built%20by-Legion%20Code%20Inc.-111111?style=flat-square" alt="Built by Legion Code Inc."></a>
26
+ <a href="https://deeplake.ai"><img src="https://img.shields.io/badge/powered%20by-Deeplake-ff5a1f?style=flat-square" alt="Powered by Deeplake"></a>
27
+ </p>
28
+
29
+ <p align="center">
30
+ <a href="https://github.com/legioncodeinc/honeycomb"><img src="https://img.shields.io/github/stars/legioncodeinc/honeycomb?style=flat-square&color=F7A823" alt="GitHub stars"></a>
31
+ <a href="https://discord.gg/GX95YTQypQ"><img src="https://img.shields.io/badge/discord-find%20us-5865F2?style=flat-square&logo=discord&logoColor=white" alt="Discord"></a>
32
+ </p>
33
+
34
+ <!-- ────────────────────────────── PARTNERS ────────────────────────────── -->
35
+
36
+ <p align="center">
37
+ <a href="https://github.com/legioncodeinc">
38
+ <picture>
39
+ <source media="(prefers-color-scheme: dark)" srcset="assets/brand/legion-logo-dark.svg">
40
+ <img src="assets/brand/legion-logo-light.svg" alt="Legion Code" height="34">
41
+ </picture>
42
+ </a>
43
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
44
+ <a href="https://github.com/activeloopai">
45
+ <picture>
46
+ <source media="(prefers-color-scheme: dark)" srcset="assets/brand/activeloop-full-mark-logo-on-dark.svg">
47
+ <img src="assets/brand/activeloop-full-mark-logo.svg" alt="Activeloop" height="26">
48
+ </picture>
49
+ </a>
50
+ </p>
51
+
52
+ <p align="center"><em>A <a href="https://github.com/legioncodeinc">Legion Code Inc.</a> × <a href="https://github.com/activeloopai">Activeloop</a> collaboration.</em></p>
53
+
54
+ <img src="assets/brand/divider-major.svg" width="100%" height="6">
55
+
56
+ AI coding agents forget. They forget across sessions, and they forget across tools. A decision you reached in Claude Code at midnight is invisible to Cursor the next morning. **Honeycomb fixes that.** A local daemon captures what happens on every turn, distills it, and serves it back to any harness that asks. Learn something once; recall it everywhere, on any machine, in any tool, for anyone on your team.
57
+
58
+ It answers the questions you keep paying for twice: *What did we decide about this? Why is it built this way? What fixed it the last time it broke? Who on the team already solved this?*
59
+
60
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
61
+
62
+ > **New here?** One command and you're on a dashboard. [Jump to Install](#-install-one-command). · **Want the docs?** Everything lives at **[theapiary.sh](https://theapiary.sh)**.
63
+
64
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
65
+
66
+ <table>
67
+ <tr>
68
+ <td width="50%" valign="top">
69
+
70
+ #### 🛹 For AI Augmented Devs
71
+ Stop re-explaining your project to a fresh agent every morning. Honeycomb remembers your decisions, your conventions, and the fixes that worked, then primes your next session with them automatically. One install command, a friendly dashboard, no SQL, no config gauntlet.
72
+
73
+ </td>
74
+ <td width="50%" valign="top">
75
+
76
+ #### 🏢 For Enterprise Teams
77
+ One shared brain across every developer, device, and coding tool. A skill discovered by one engineer propagates to the whole team on their next session. Tenancy is enforced at the storage layer; credentials live behind a single loopback boundary; everything is versioned and auditable.
78
+
79
+ </td>
80
+ </tr>
81
+ </table>
82
+
83
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
84
+
85
+ ## ✨ What makes Honeycomb different
86
+
87
+ A vector database can store text and hand it back by similarity. Honeycomb does that, and then keeps going. On top of [Activeloop Deeplake](https://deeplake.ai), **[Legion Code](https://github.com/legioncodeinc)** builds the memory system that turns raw recall into a brain your agents actually trust.
88
+
89
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
90
+
91
+ - **🧠 Three-tier memory.** Every memory exists at three resolutions at once (one-line **key** → **summary** → full **raw** session). Agents skim the keys, then zoom into detail only when they need it. *(Legion Code)*
92
+ - **🎯 Session priming.** At session start a tiny, bounded index (~300-800 tokens) of your most relevant keys is pushed once; the agent pulls deeper on demand. No per-turn injection, no "lost in the middle." *(Legion Code)*
93
+ - **🍯 Skillify & propagation.** The daemon mines reusable skills out of real sessions, gates them for quality, and auto-pulls the team's latest skills into every agent at session start. Author a skill once; everyone gets it. *(Legion Code)*
94
+ - **🌼 The pollinating loop.** A periodic maintenance pass reasons over accumulated memory and the entity graph to merge duplicates, prune junk, and supersede stale facts, so memory gets *sharper* over time, not noisier. *(Legion Code)*
95
+ - **🕸️ Knowledge graph.** An entity-centric, versioned, provenance-tracked index over your memories. Newer facts supersede stale ones; every claim traces back to the session that produced it. *(Legion Code)*
96
+ - **🔀 Hybrid recall.** Lexical (BM25) and semantic (768-dim vectors) search fused by Reciprocal Rank Fusion, with a measured **recall@5 0.72-0.78**. *(built on Deeplake)*
97
+ - **🗺️ Codebase graph.** A multi-language AST graph (TypeScript, JS, Python, Go, Rust, Java, Ruby, C/C++) of files, functions, and their call/import/extends edges, queryable for impact and neighborhood. *(Legion Code)*
98
+
99
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
100
+
101
+ ## 🚀 Install (one command)
102
+
103
+ No Node? No npm? No problem. The installer detects and sets up everything, then **opens a dashboard in your browser**. The terminal is just a progress log; the product is the first thing you touch.
104
+
105
+ ```bash
106
+ # macOS / Linux
107
+ curl -fsSL https://get.theapiary.sh | sh
108
+ ```
109
+
110
+ ```powershell
111
+ # Windows (PowerShell)
112
+ irm https://get.theapiary.sh/install.ps1 | iex
113
+ ```
114
+
115
+ That single line installs a current Node/npm if missing, installs **`@legioncodeinc/honeycomb`** globally, brings up the daemon on `127.0.0.1:3850`, opens the dashboard (Hive portal at `127.0.0.1:3853`), and sets up **[Doctor](https://github.com/legioncodeinc/doctor#readme)**, a tiny watchdog that keeps it all healthy (opt out with `--no-doctor`). Then:
116
+
117
+ 1. The dashboard loads in a **pre-auth setup state**. No token ever touches your shell.
118
+ 2. Click **"First time setup."** Honeycomb runs the Deeplake device-flow login *for* you, shows the code right on the page, and opens the verification tab.
119
+ 3. Done. The same running daemon lights up its Deeplake-backed surfaces, and capture and recall go live.
120
+
121
+ > Already running **Hivemind**? The dashboard detects it, explains that running both is unsupported, and **"Proceed with Honeycomb"** migrates you cleanly. Prefer to inspect before you pipe? The script and a published `SHA256SUMS` are served from [get.theapiary.sh](https://get.theapiary.sh).
122
+
123
+ <details>
124
+ <summary><strong>Prefer to build from source?</strong></summary>
125
+
126
+ ```bash
127
+ git clone https://github.com/legioncodeinc/honeycomb.git
128
+ cd honeycomb
129
+ npm install
130
+ npm run build # tsc + esbuild → bundle/cli.js, daemon, harness, MCP, embed bundles
131
+
132
+ node bundle/cli.js setup # detect your assistants, wire hooks, start the daemon
133
+ node bundle/cli.js status # check the daemon and your environment
134
+ ```
135
+
136
+ `setup` wires every coding assistant it detects and starts the loopback daemon; any storage command auto-starts the daemon if it is down. You'll need Activeloop Deeplake credentials; the device flow above writes them to the shared `~/.deeplake/credentials.json`.
137
+
138
+ </details>
139
+
140
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
141
+
142
+ ## 🖥️ Using the dashboard
143
+
144
+ The dashboard is **Hive portal at `http://127.0.0.1:3853`**, the one UI for the whole Apiary stack and the first thing the installer opens. Honeycomb's old in-daemon dashboard is retired; the daemon on `:3850` serves data, the portal serves the picture. Everything Honeycomb knows shows up there: KPIs up top (memories, turns, estimated savings, team skills), memory recall you can query by hand, the codebase graph, every captured turn, skill-sync status, and settings, hydrated server-side from the daemon's API. It doubles as the guided-setup surface for first-time login.
145
+
146
+ <!-- screenshot pending: drop honeycomb dashboard capture into assets/screenshots/dashboard.png -->
147
+ <img src="assets/screenshots/dashboard.png" alt="Honeycomb dashboard" width="100%">
148
+
149
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
150
+
151
+ ## ⌨️ Using the CLI
152
+
153
+ One unified `honeycomb` binary drives everything. Run `honeycomb --help` for the full list; these are the core verbs:
154
+
155
+ ```bash
156
+ honeycomb install # one-shot install on a fresh machine
157
+ honeycomb setup # detect your coding assistants and wire hooks
158
+ honeycomb status # daemon + environment health at a glance
159
+ honeycomb daemon start|stop|status # drive the daemon directly
160
+ honeycomb remember "<fact>" # write a memory from anywhere
161
+ honeycomb recall "<query>" # search the shared memory
162
+ honeycomb sessions # browse captured sessions
163
+ honeycomb skill # list, inspect, and sync mined skills
164
+ honeycomb goal # track goals across sessions
165
+ honeycomb sources # manage capture sources
166
+ honeycomb graph # query the codebase and knowledge graphs
167
+ honeycomb dashboard # open the dashboard (Hive portal, :3853)
168
+ ```
169
+
170
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
171
+
172
+ ## 🐝 First memory, shared across tools
173
+
174
+ ```bash
175
+ # Capture a decision once…
176
+ honeycomb remember "we deploy from the prd-022 branch, never from main"
177
+
178
+ # …recall it anywhere: same daemon, same Deeplake, any harness
179
+ honeycomb recall "how do we deploy"
180
+ ```
181
+
182
+ Write it from Claude Code; recall it from Cursor tomorrow on a different laptop. That's the whole point.
183
+
184
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
185
+
186
+ ## 🏗️ How it works
187
+
188
+ Honeycomb is a long-lived local **daemon** plus thin clients. The daemon is the *only* process that talks to storage. Every harness, the CLI, the MCP server, and the SDK reach it over loopback HTTP. One shared memory behind one boundary; your Deeplake credentials in exactly one place.
189
+
190
+ ```mermaid
191
+ flowchart TB
192
+ CC["Claude Code"] --> TC
193
+ CU["Cursor"] --> TC
194
+ CX["Codex"] --> TC
195
+ HE["Hermes"] --> TC
196
+ PI["pi"] --> TC
197
+ OC["OpenClaw"] --> TC
198
+ TC["thin clients<br/>hooks · CLI · MCP · SDK"] --> HTTP["loopback HTTP<br/>127.0.0.1:3850"]
199
+ HTTP --> D["honeycomb daemon<br/>capture · recall · skillify · pollinate · session priming<br/>sole storage client, owns your credentials"]
200
+ D --> DL["Activeloop Deeplake<br/>Tier 1 · Tier 2 · Tier 3<br/>BM25 + semantic vectors"]
201
+ ```
202
+
203
+ - **Capture on every turn.** Per-harness hooks stream each turn to the daemon, which distills and persists it: always-on, cheap, and soft-failing so a capture error never breaks your agent's turn.
204
+ - **Recall through the daemon.** Any harness asks for relevant memories; the daemon runs the query and returns results already scoped to your org and workspace. The client never sees a storage handle or a line of SQL.
205
+ - **Shared by construction.** Every client reaches the same daemon and the same dataset, so a memory written from one harness is recallable from all of them.
206
+
207
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
208
+
209
+ ## 🧠 The three-tier memory system
210
+
211
+ This is the heart of what **Legion Code** adds on top of Deeplake. The same memory lives at three levels of detail at once, and the agent chooses how far to zoom:
212
+
213
+ | Tier | What it is | When it's used |
214
+ |---|---|---|
215
+ | **Tier 1 · Key** | One keyword-dense sentence per session or fact. The index. | Skimmed at session start during priming. |
216
+ | **Tier 2 · Summary** | A distilled recap: goals, decisions, blockers, outcomes. Carries the semantic embedding. | Pulled when a key looks relevant. |
217
+ | **Tier 3 · Raw** | The full session dialogue: exact turns and tool calls, never rewritten. | Resolved when the agent needs ground truth. |
218
+
219
+ Resolution is a **deterministic SQL join, not a fuzzy search**. `key → summary → raw` is a pointer walk down three Deeplake tables. Mining ("find the thing I didn't know to name") is where the hybrid vector + lexical search kicks in. Cheap when you're skimming, precise when you're zooming.
220
+
221
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
222
+
223
+ ## 💎 Why Deeplake makes the difference
224
+
225
+ Most agent-memory tools bolt onto a vector-only store, which forces *every* access pattern through a similarity engine. Honeycomb's zoom model needs both exact joins **and** semantic search, and [**Deeplake**](https://deeplake.ai), the database for AI, gives it both natively:
226
+
227
+ - **SQL + vector in one engine.** The cheap skim and the deterministic zoom run as SQL; semantic mining runs as vector search; a single store serves both. No second database, no sync problem.
228
+ - **Versioned & append-only.** Writes bump a version instead of mutating in place, so memory's full history stays on disk. Supersession marks old facts stale without losing them, which is what makes the pollinating loop safe and auditable.
229
+ - **Hybrid lexical + semantic search.** BM25 and 768-dim `nomic-embed-text-v1.5` cosine arms, fused by Reciprocal Rank Fusion. Turn embeddings off and recall silently falls back to lexical, never an error, no quality cliff.
230
+ - **Built to scale & BYOC.** The same substrate that serves one developer's laptop serves an organization's entire history, in your own cloud bucket if you want it.
231
+
232
+ > Honeycomb stands on two shoulders: **[Deeplake](https://deeplake.ai)** gives the memories somewhere durable and queryable to live, and **[Hivemind](https://github.com/activeloopai/hivemind)**, Activeloop's open-source agent-memory project, is the foundation Legion Code extended into Honeycomb's multi-tier system.
233
+
234
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
235
+
236
+ ## 🔌 Supported harnesses
237
+
238
+ Honeycomb ships thin clients for six coding harnesses, all wired simultaneously, all reading and writing the same shared memory:
239
+
240
+ | | | |
241
+ |---|---|---|
242
+ | **Claude Code** | **Cursor** | **Codex** |
243
+ | **Hermes** | **pi** | **OpenClaw** |
244
+
245
+ `honeycomb setup` detects the ones you have installed and wires each idempotently; `honeycomb uninstall` reverses only Honeycomb's changes. A skill mined while you were in Cursor is auto-pulled and ready in Claude Code on your next session.
246
+
247
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
248
+
249
+ ## 🎛️ Other interfaces
250
+
251
+ Beyond the CLI, three more ways to reach the same daemon and the same shared memory:
252
+
253
+ - **Dashboard.** Hive portal at `http://127.0.0.1:3853`, covered [above](#%EF%B8%8F-using-the-dashboard). One front door for the whole stack; Honeycomb's data hydrates through it.
254
+ - **MCP server.** A [Model Context Protocol](https://modelcontextprotocol.io) server (bundled to `mcp/bundle`) exposing Honeycomb's read/resolve and search/mine tools to any MCP-capable host.
255
+ - **TypeScript SDK.** The `@legioncodeinc/honeycomb` client with framework subpath entries (`/react`, `/vercel`, `/openai`). The core entry is fetch-only and browser-safe; `react` and `ai` are optional peers.
256
+
257
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
258
+
259
+ <h2 align="center"><a href="https://ideas.theapiary.sh">📍 Status & Roadmap</a></h2>
260
+
261
+ Honeycomb is **pre-release (v0.1.x)**. We document what's real and flag what's opt-in.
262
+
263
+ **Working today**
264
+ - Capture-to-recall, proven end-to-end against live Deeplake (`npm run smoke:golden-path` with credentials).
265
+ - One-command install → guided dashboard setup, the loopback daemon, the unified CLI, per-harness hooks, the MCP server, and the SDK.
266
+ - Three-tier memory, session priming, skillify + propagation, the pollinating loop, the knowledge graph, and the codebase graph.
267
+
268
+ **Opt-in / by design**
269
+ - **Embeddings are opt-in.** Recall runs the lexical BM25 path by default; turning on the local embedding runtime (≈600 MB, model fetched on first warmup) adds 768-dim semantic recall. The fallback is silent and intentional; recall never errors when embeddings are unavailable.
270
+ - **The distillation pipeline is off by default** to avoid surprise model spend; enable it when you want background summarization and graph extraction.
271
+ - The daemon binds **loopback only** (single machine). Cross-device and cross-user sharing happen through Deeplake's org/workspace scope, not a remote daemon bind.
272
+
273
+ Full documentation and guides live at **[theapiary.sh](https://theapiary.sh)**; vote on what ships next at **[ideas.theapiary.sh](https://ideas.theapiary.sh)**.
274
+
275
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
276
+
277
+ ## 🛠️ Development
278
+
279
+ ```bash
280
+ npm install # dependencies
281
+ npm run build # tsc + esbuild bundle/cli.js, the daemon, harness, MCP, and embed bundles
282
+ npm run ci # the gate: typecheck + duplication (jscpd) + tests (vitest) + SQL-safety audit
283
+ ```
284
+
285
+ `npm run ci` is the quality gate every change must pass.
286
+
287
+ <img src="assets/brand/divider-major.svg" width="100%" height="6">
288
+
289
+ ## 🙏 Credits
290
+
291
+ Honeycomb exists because two halves fit together:
292
+
293
+ - **[Activeloop](https://activeloop.ai/)** brings **[Deeplake](https://deeplake.ai/)** (the versioned, multi-modal database for AI with native vector + columnar indexing and hybrid search) and **[Hivemind](https://github.com/activeloopai/hivemind)**, the open-source agent-memory project Honeycomb is built upon.
294
+ - **[Legion Code Inc](https://github.com/legioncodeinc)** brings the multi-tier memory system (Tier 1 / 2 / 3 keys, summaries, raw), code base atlas memory architecture, auto healing service, session priming, automatic skill development & propagation, the pollinating loop, the knowledge graph, cross device cross repository cross team skill sharing, and the daemon architecture that turns Deeplake into a shared brain your coding agents read and write on every turn.
295
+
296
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
297
+
298
+ ## License
299
+
300
+ Honeycomb is licensed under the **GNU Affero General Public License v3.0 or later** ([AGPL-3.0-or-later](LICENSE)).
301
+
302
+ Use it commercially or privately, free of charge. In return: keep the copyright and license notices intact, and if you modify it, your changes ship under the same AGPL license with source available. The "Affero" part is the point: run a modified version as a network service and you owe its source to the users who interact with it. No locking a fork behind a SaaS wall.
303
+
304
+ © 2026 Legion Code Inc.
305
+
306
+ <img src="assets/brand/divider-minor.svg" width="100%" height="3">
307
+
308
+ <p align="center">
309
+ <sub><strong>Built by <a href="https://github.com/legioncodeinc">Legion Code Inc</a></strong> · <strong>Powered by <a href="https://deeplake.ai/">Activeloop Deeplake</a></strong> · <a href="https://theapiary.sh/">theapiary.sh</a></sub>
310
+ </p>
311
+
312
+ <p align="center"><strong>I am Legion. We are Legion.</strong></p>
313
+
314
+ <p align="center">#vibewithlegion</p>