diff --git a/README.md b/README.md
index 9ec9a46..cdafc08 100644
--- a/README.md
+++ b/README.md
@@ -1,266 +1,232 @@
-# Hivemind β Claude Code Plugin
-
-Persistent, shared memory for Claude Code backed by [Deeplake](https://deeplake.ai). Captures conversation history, tool calls, and responses across sessions and makes them searchable by any agent or user in the same workspace.
+
+
+
+
+
+
+ Hivemind
+
+
+
+One brain for every agent on your team.
+
+
+
+
+
+
+
+
+ Persistent, cloud-backed shared memory for AI agents.
+ Captures everything. Recalls anything. Shares across sessions, teammates, and machines.
+
+
+---
## What it does
-- **Captures** every session's prompts, tool calls, and responses into a shared Deeplake table
-- **Intercepts** file operations targeting `~/.deeplake/memory/` and routes them through a virtual filesystem backed by Deeplake cloud SQL
-- **Provides** full-text search across all captured memory via `Grep pattern="keyword" path="~/.deeplake/memory"`
-- **Upgrades** gracefully: basic mode (just-bash virtual FS) works out of the box; install the Deeplake CLI for full FUSE mount support
+- π§ **Captures** every session's prompts, tool calls, and responses into a shared cloud SQL table
+- π **Searches** across all memory with BM25 full-text search (falls back to ILIKE when index unavailable)
+- π **Shares** memory across sessions, agents, teammates, and machines in real-time
+- π **Intercepts** file operations on `~/.deeplake/memory/` through a virtual filesystem backed by SQL
+- π **Summarizes** sessions into AI-generated wiki pages via a background worker at session end
+
+## Platforms
-## Installation
+| Platform | Status | Install |
+|----------------|---------------|-------------------------------------------------------------|
+| **Claude Code** | β
Stable | See [Quick start](#quick-start-claude-code) |
+| **OpenClaw** | π§ Beta | See [Quick start](#quick-start-openclaw) |
+| **Codex** | π Coming soon | β |
-### As a Claude Code plugin
+## Quick start (Claude Code)
-From within Claude Code, run:
+Add the marketplace:
```
/plugin marketplace add activeloopai/hivemind
-/plugin install hivemind
-/reload-plugins
-/hivemind:login
```
-### Updating
-
-The plugin auto-updates by default β it checks for new versions on each session start and installs them automatically. You'll see a notice when an update is applied; run `/reload-plugins` to activate it.
-
-To manually update:
+Install the plugin:
```
-/hivemind:update
+/plugin install hivemind
```
-To toggle auto-updates:
+Reload plugins:
```
-autoupdate off # disable (via org management CLI)
-autoupdate on # re-enable
-autoupdate # check current status
+/reload-plugins
```
-### From source (development)
+Log in:
-```bash
-npm install
-npm run build
-claude --plugin-dir /path/to/hivemind
+```
/hivemind:login
```
-## Authentication
+That's it. Your agents now share a brain.
-After installing the plugin, run `/hivemind:login` to authenticate. This opens a browser for SSO login via the OAuth Device Authorization Flow (RFC 8628).
+### Updating
-1. Run `/hivemind:login` in Claude Code
-2. Browser opens β sign in at Deeplake
-3. Select your organization
-4. Credentials saved to `~/.deeplake/credentials.json` (permissions: 0600)
+The plugin auto-updates on each session start. To manually update:
+
+```
+/hivemind:update
+```
-On subsequent sessions, the plugin detects existing credentials and connects automatically.
+## Quick start (OpenClaw)
-To re-login or switch organizations:
+Install from ClawHub (Telegram, TUI, WhatsApp):
```
-/hivemind:login
+openclaw plugins install hivemind
```
-Alternatively, set environment variables directly:
+Send a message β the plugin sends you an auth link. Click, sign in, done.
+
+## How it works
-```bash
-export DEEPLAKE_TOKEN=your-token
-export DEEPLAKE_ORG_ID=your-org-id
-export DEEPLAKE_WORKSPACE_ID=default # optional
```
+βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+β Your AI Agent β
+ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
+ β
+ ββββββββββββββββββββΌβββββββββββββββββββ
+ β π₯ Capture (every turn) β
+ β prompts Β· tool calls Β· responses β
+ ββββββββββββββββββββ¬βββββββββββββββββββ
+ β
+ ββββββββββββββββββββΌβββββββββββββββββββ
+ β π§ Hivemind Cloud β
+ β SQL tables Β· BM25 search β
+ β shared across all agents β
+ ββββββββββββββββββββ¬βββββββββββββββββββ
+ β
+ ββββββββββββββββββββΌβββββββββββββββββββ
+ β π Recall (before each turn) β
+ β search memory Β· inject context β
+ βββββββββββββββββββββββββββββββββββββββ
```
-## β οΈ Data Collection Notice
+Every session is captured. Every agent can recall. Teammates in the same org see the same memory.
+
+## Features
-This plugin captures the following data and stores it in your Deeplake workspace:
+### π Natural search
-| Data | What | Where |
-|-----------------------|------------------------------------|---------------------------|
-| User prompts | Every message you send to Claude | Shared Deeplake workspace |
-| Tool calls | Tool name + full input | Shared Deeplake workspace |
-| Tool responses | Full tool output | Shared Deeplake workspace |
-| Assistant responses | Claude's final response text | Shared Deeplake workspace |
-| Subagent activity | Subagent tool calls and responses | Shared Deeplake workspace |
+Just ask Claude naturally:
-**All users with access to your Deeplake workspace can read this data.**
+```
+"What was Emanuele working on?"
+"Search memory for authentication bugs"
+"What did we decide about the API design?"
+```
-A DATA NOTICE is displayed at the start of every session when capture is enabled.
+### π AI-generated session summaries
-To opt out of capture: `export DEEPLAKE_CAPTURE=false`
+After each session, a background worker generates a wiki summary β key decisions, code changes, next steps. Browse them at `~/.deeplake/memory/summaries/`.
-## Configuration
+### π₯ Team sharing
-| Variable | Default | Description |
-|--------------------------|---------------------------|-------------------------------------------|
-| `DEEPLAKE_TOKEN` | β | API token (auto-set by device login) |
-| `DEEPLAKE_ORG_ID` | β | Organization ID (auto-set by device login)|
-| `DEEPLAKE_WORKSPACE_ID` | `default` | Workspace name |
-| `DEEPLAKE_API_URL` | `https://api.deeplake.ai` | API endpoint |
-| `DEEPLAKE_TABLE` | `memory` | SQL table for summaries and virtual FS |
-| `DEEPLAKE_SESSIONS_TABLE`| `sessions` | SQL table for per-event session capture |
-| `DEEPLAKE_MEMORY_PATH` | `~/.deeplake/memory` | Path that triggers interception |
-| `DEEPLAKE_CAPTURE` | `true` | Set to `false` to disable capture |
-| `DEEPLAKE_DEBUG` | β | Set to `1` for verbose hook debug logs |
+Invite teammates to your Deeplake org. Their agents see your memory, your agents see theirs. No setup, no sync, no merge conflicts.
-### Debug mode and capture control
+### π Privacy controls
-```bash
-# Enable debug logging (writes to ~/.deeplake/hook-debug.log)
-DEEPLAKE_DEBUG=1 claude
+Disable capture entirely:
-# Disable session capture
+```bash
DEEPLAKE_CAPTURE=false claude
```
-## Usage
-
-### Search memory
-
-In Claude Code, just ask:
+Enable debug logging:
-```
-"What was Emanuele working on?"
-"Search deeplake memory for authentication"
-"List files in ~/.deeplake/memory/"
+```bash
+DEEPLAKE_DEBUG=1 claude
```
-Claude automatically checks both built-in memory and Deeplake memory when recalling information.
+## β οΈ Data collection notice
-### Interactive shell
+This plugin captures session activity and stores it in your Deeplake workspace:
-```bash
-npm run shell
-# ds:/$ ls /
-# ds:/$ cat /session_abc123.jsonl
-# ds:/$ echo "note" > /notes.txt
-```
+| Data | What's captured |
+|-----------------------|------------------------------------|
+| User prompts | Every message you send |
+| Tool calls | Tool name + full input |
+| Tool responses | Full tool output |
+| Assistant responses | Claude's final response |
+| Subagent activity | Subagent tool calls and responses |
-### One-shot commands
+**All users in your Deeplake workspace can read this data.** A DATA NOTICE is displayed at the start of every session.
-```bash
-npm run shell -- -c "ls /"
-npm run shell -- -c "cat /CLAUDE.md"
-npm run shell -- -c "grep -r 'keyword' /"
-```
+## Configuration
+
+| Variable | Default | Description |
+|---------------------------|---------------------------|--------------------------------------------|
+| `DEEPLAKE_TOKEN` | β | API token (auto-set by login) |
+| `DEEPLAKE_ORG_ID` | β | Organization ID (auto-set by login) |
+| `DEEPLAKE_WORKSPACE_ID` | `default` | Workspace name |
+| `DEEPLAKE_API_URL` | `https://api.deeplake.ai` | API endpoint |
+| `DEEPLAKE_TABLE` | `memory` | SQL table for summaries and virtual FS |
+| `DEEPLAKE_SESSIONS_TABLE` | `sessions` | SQL table for per-event session capture |
+| `DEEPLAKE_MEMORY_PATH` | `~/.deeplake/memory` | Path that triggers interception |
+| `DEEPLAKE_CAPTURE` | `true` | Set to `false` to disable capture |
+| `DEEPLAKE_DEBUG` | β | Set to `1` for verbose hook debug logs |
## Architecture
-```
-βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-β Claude Code β
-ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
- β
-ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ
-β SessionStart β
-β Auth login (device flow) + inject context + DATA NOTICE β
-ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
- β
-ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ
-β UserPromptSubmit β capture.js β INSERT row into sessions β
-ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
- β
-ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ
-β PreToolUse β intercept commands on ~/.deeplake/memory/ β
-β β
-β ββ Read/Grep (fast path) β direct SQL query β
-β ββ safe (cat, ls, jq...) β just-bash + DeeplakeFS β
-β ββ unsafe + CLI installed β real bash + FUSE mount β
-β ββ unsafe + no CLI β deny + install prompt β
-β ββ deeplake mount/login β pass through β
-ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
- β
-ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ
-β PostToolUse (async) β capture.js β INSERT row into sessionsβ
-ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
- β
-ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ
-β Stop β capture.js β INSERT row into sessions β
-ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
- β
-ββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
-β SubagentStop (async) β capture.js β INSERT row into sessionsβ
-ββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
- β
-ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ
-β SessionEnd β spawns wiki-worker.js in background β
-β β fetches events, runs claude -p, uploads summary β
-β β /summaries/*.md + /index.md β
-ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
- β
-ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ
-β Deeplake REST API β
-β sessions table Β· memory table (summaries, index) β
-βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-```
+### Hook lifecycle (Claude Code)
-### Hook events
+| Hook | Purpose | Async |
+|---------------------|--------------------------------------------------|-------|
+| `SessionStart` | Auth login, inject context, DATA NOTICE | No |
+| `UserPromptSubmit` | Capture user message | No |
+| `PreToolUse` | Intercept and rewrite memory-targeting commands | No |
+| `PostToolUse` | Capture tool call + response | Yes |
+| `Stop` | Capture assistant response | No |
+| `SubagentStop` | Capture subagent activity | Yes |
+| `SessionEnd` | Spawn wiki-worker for AI summary | No |
-All capture hooks use a single unified `capture.js` bundle β one INSERT per event into the sessions SQL table.
+### Monorepo structure
-| Hook | Bundle | Purpose | Async |
-|---------------------|------------------|-------------------------------------------------|-------|
-| `SessionStart` | `session-start` | Auth login, inject context, DATA NOTICE | No |
-| `UserPromptSubmit` | `capture` | Capture user message | No |
-| `PreToolUse` | `pre-tool-use` | Intercept and rewrite memory-targeting commands | No |
-| `PostToolUse` | `capture` | Capture tool call + response | Yes |
-| `Stop` | `capture` | Capture assistant response | No |
-| `SubagentStop` | `capture` | Capture subagent activity | Yes |
-| `SessionEnd` | `session-end` | Spawn wiki-worker for AI summary | No |
+```
+hivemind/
+βββ src/ β shared core (API client, auth, config, SQL utils)
+βββ claude-code/ β Claude Code plugin (hooks, virtual FS, shell)
+βββ openclaw/ β OpenClaw plugin (auto-recall, auto-capture)
+βββ codex/ β coming soon
+```
## Security
-- SQL values escaped with `sqlStr()`, `sqlLike()`, `sqlIdent()` (see `src/utils/sql.ts`)
-- Only 80+ allowlisted builtins run in the virtual FS; unsafe binaries pass through or are denied
+- SQL values escaped with `sqlStr()`, `sqlLike()`, `sqlIdent()`
+- ~70 allowlisted builtins run in the virtual FS; unrecognized commands are denied
- Credentials stored with mode `0600`, config dir with mode `0700`
- Device flow login β no tokens in environment or code
- `DEEPLAKE_CAPTURE=false` fully disables data collection
-## Local development
-
-### Prerequisites
-
-- **Node.js >= 22** β install via [nodejs.org](https://nodejs.org) or a version manager:
- ```bash
- # nvm
- nvm install 22
-
- # brew
- brew install node
- ```
-
-### Setup
+## Development
```bash
git clone https://github.com/activeloopai/hivemind.git
cd hivemind
npm install
-npm run build # tsc + esbuild β bundle/
+npm run build # tsc + esbuild β claude-code/bundle/ + openclaw/dist/
+npm test # vitest
```
-### Commands
+Test locally with Claude Code:
```bash
-npm run build # TypeScript compile + esbuild bundle
-npm run bundle # esbuild bundle only (skip tsc)
-npm run dev # TypeScript watch mode
-npm test # vitest unit tests
-npm run shell # interactive shell against real Deeplake
-DEEPLAKE_DEBUG=1 npm run shell # with debug logging
+claude --plugin-dir claude-code
```
-### Test the plugin locally with Claude Code
+Interactive shell against Deeplake:
```bash
-claude --plugin-dir .
+npm run shell
```
-After making changes, run `npm run build` and send a new message in Claude Code to pick up the updated hooks.
-
## License
Apache License 2.0 β Β© Activeloop, Inc. See [LICENSE](LICENSE) for details.
diff --git a/docs/public/hivemind-logo.svg b/docs/public/hivemind-logo.svg
new file mode 100644
index 0000000..1af202c
--- /dev/null
+++ b/docs/public/hivemind-logo.svg
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file