Skip to main content
Glama
README.md
# gzmo-pi

**GZMO curated memory for [Pi](https://pi.dev)** — Pi extension + MCP (via bundled [`pi-mcp-adapter`](https://www.npmjs.com/package/pi-mcp-adapter)).

Local-first by default (`~/.gzmo` SQLite vault). Optional **living stack** (Redis, Neo4j, Qdrant) documented below for operator hosts.

Gallery / install:

```bash
pi install npm:gzmo-pi
```

Then in Pi:

```text
/gzmo setup
/reload
```

Call `gzmo_memory_status` / `gzmo_memory_search`.

---

## What you get

| Piece | Role |
|-------|------|
| **This package** | Pi extension (`/gzmo …`) + skill + wires `gzmo-memory` into MCP config |
| **pi-mcp-adapter** (bundled) | Lazy MCP tools so context stays small |
| **GZMO binary** | Product MCP server (`gzmo mcp-serve`) + local vault |

Product tools: `gzmo_memory_status`, `gzmo_memory_search`, `gzmo_memory_turn_start`, `gzmo_memory_recall_pull`, `gzmo_memory_chain`, `gzmo_memory_profile`, `gzmo_wiki_search`.

---

## Quick start (laptop / product)

1. Install GZMO binary + init vault:

```bash
curl -fsSL https://raw.githubusercontent.com/maximilianwruhs-cyber/GZMO/main/scripts/install-gzmo.sh | bash
```

2. Install this Pi package:

```bash
pi install npm:gzmo-pi
```

3. Wire MCP + verify:

```text
/gzmo setup
/gzmo status
```

Restart Pi or `/reload`, then use `gzmo_memory_status`.

Manual MCP shape (if you prefer editing files):

```json
{
  "mcpServers": {
    "gzmo-memory": {
      "command": "/home/YOU/.local/bin/gzmo",
      "args": ["mcp-serve"],
      "env": {
        "GZMO_CONFIG": "/home/YOU/.gzmo/gzmo.toml",
        "GZMO_ALLOW_LAB_VAULT": "1",
        "GZMO_PRODUCT": "1"
      }
    }
  }
}
```

Written to `~/.config/mcp/mcp.json` and `~/.pi/agent/mcp.json` by `/gzmo setup`.

---

## Living stack (Redis · Neo4j · Qdrant)

The **product** path above is intentionally minimal: SQLite vault, embeddings off, no LAN services.

For the **full curated-memory topology** (operator / multi-host — honeypot at scale, graph, vectors):

| Service | Typical role in GZMO |
|---------|----------------------|
| **SQLite** | Durable vault + FTS (always) |
| **Redis** | Hot session / cache plane |
| **Neo4j** | Graph / relationship memory MCP |
| **Qdrant** | Vector recall (when embeddings enabled) |

### Suggested operator path

1. Use the full repo: [maximilianwruhs-cyber/GZMO](https://github.com/maximilianwruhs-cyber/GZMO)
2. Read:
   - [docs/PRODUCT_MCP.md](https://github.com/maximilianwruhs-cyber/GZMO/blob/main/docs/PRODUCT_MCP.md) — product vs ops tools
   - Living / CT101 deploy docs in that repo (`docs/CT101_DEPLOY.md`, `docs/PI_GZMO_MEMORY_INTEGRATION.md`)
3. Deploy Redis + Neo4j + Qdrant next to your living `gzmo.toml`
4. On the operator machine, prefer `scripts/install-shared-mcp.sh` (LAN `gzmo-memory` + Neo4j) instead of the laptop product fragment
5. Keep **this** `gzmo-pi` package on workstations for the SQLite product vault; keep living MCP on the host that owns Redis/Neo4j/Qdrant

In Pi: `/gzmo living` prints the short pointer.

---

## Commands

| Command | Action |
|---------|--------|
| `/gzmo setup` | Init `~/.gzmo` if needed; merge `gzmo-memory` into Pi/shared MCP |
| `/gzmo status` | Binary, config, MCP wiring checklist |
| `/gzmo living` | Pointer to full Redis/Neo4j/Qdrant stack docs |

---

## Develop

```bash
git clone https://github.com/maximilianwruhs-cyber/gzmo-pi.git
cd gzmo-pi
npm install
pi install .
```

Publish (maintainers):

```bash
npm login   # interactive; or: npm config set //registry.npmjs.org/:_authToken=…
npm pack --dry-run   # expect ~tens of KB, not tens of MB
npm publish --access public
# then: https://pi.dev/packages/gzmo-pi
```

`pi-mcp-adapter` is a normal dependency (installed by `pi install` / `npm install`), not `bundledDependencies` — bundling it pulled ~57MB of transitive SDK tree into the tarball.

---

## Links

- Product binary / vault: [GZMO](https://github.com/maximilianwruhs-cyber/GZMO)
- Pi packages: [pi.dev/packages](https://pi.dev/packages)
- MCP adapter: [pi-mcp-adapter](https://www.npmjs.com/package/pi-mcp-adapter)

## License

[MIT](LICENSE)

Maintenance

ActivityMaintained
ResponsivenessSyncing