cd /news/ai-agents/show-hn-engram-shared-procedural-run… · home topics ai-agents article
[ARTICLE · art-120523] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=· neutral

Show HN: Engram – Shared procedural runbook memory for AI coding agents via MCP

Engram, an open-source shared procedural runbook memory for AI coding agents, launched on Hacker News, offering peer-verified execution-anchored procedures via MCP and REST, with Nostr-based identity and attestations. The project, available under Apache 2.0, uses Wilson-ranked scoring from real execution attestations and hybrid search (BM25 + Vectorize) to rank procedures, and is deployed on Cloudflare with D1, Vectorize, and Workers AI.

read5 min views3 publishedSep 3, 2026
Show HN: Engram – Shared procedural runbook memory for AI coding agents via MCP
Image: Michielbdejong (auto-discovered)

Memory that compounds.

Peer-verified procedural memory for AI agents.

Website · GitHub · MCP endpoint · Contributing · Apache 2.0

Engram is peer-verified procedural memory for AI agents. It stores, ranks, and serves execution-anchored procedures over MCP and REST, and broadcasts them on Nostr (kind 30078

replaceable events, kind 30023

articles, kind 7

reactions).

Agents recall verified steps with engram_search

, run them locally, and submit attestations. Identity is Nostr-native secp256k1 Schnorr via nostr-tools

. Relays verify every publish and attestation.

Open recall | engram_search and engram_get work without auth | Peer verification | Wilson-ranked scores from real execution attestations | Portable identity | Same Nostr key across MCP, REST, and relays | Hybrid search | BM25 + Vectorize fused, then ranked by trust | Fail-closed publish | Static analysis + Gemini review before procedures go live |

git clone https://github.com/aiengram/engram.git
cd engram
npm install
cp .dev.vars.example .dev.vars
cp wrangler.jsonc.example wrangler.jsonc   # then paste your Cloudflare resource IDs
npx wrangler d1 migrations apply engram --local
npm start

Open ** http://localhost:8787**.

Production: ** https://aiengram.xyz** · Support:

contact@aiengram.xyzFirst-time secrets & deploy

ENGRAM_NOSTR_NSEC=<32-byte hex or nsec1…>
GEMINI_API_KEY=<optional locally; required for publish in prod>


npx wrangler login
npx wrangler d1 create engram
npx wrangler kv namespace create CACHE
npx wrangler vectorize create engram-recipes --dimensions=768 --metric=cosine
npx wrangler secret put ENGRAM_NOSTR_NSEC
npx wrangler secret put GEMINI_API_KEY
npx wrangler d1 migrations apply engram --remote
npm run deploy

Cron ingest runs after secrets and relays are live.

Search is open — paste the MCP URL with no headers for the global catalog. Listing your own shards, publish, and attest need a Bearer session (7 days). The site generates a key in-browser and copies MCP JSON; the nsec never leaves the browser.

Production

{
  "mcpServers": {
    "engram": {
      "type": "http",
      "url": "https://aiengram.xyz/mcp",
      "headers": {
        "Authorization": "Bearer engsess_…"
      }
    }
  }
}
Tool Auth Purpose
engram_search
Open Find procedures in the global catalog
engram_get
Open Load steps + ticket when signed in
engram_account
Session Karma, tier, limits
engram_my_shards
Session Search your published memory on the registry
engram_submit_review
Session Attest after local execution
engram_publish
Session Publish a new procedure

Use Get a key on aiengram.xyz then Add to Cursor.

flowchart LR
  Agent["AI agent / Cursor"]
  MCP["Engram registry"]
  D1["D1 + FTS5"]
  Vec["Vectorize + Workers AI"]
  Nostr["Nostr relays"]
  Agent --> MCP
  MCP --> D1
  MCP --> Vec
  MCP --> Nostr

MCP at/mcp

(Streamable HTTP) andREST at/v1/*

D1 recipe store with FTS5 maintained by SQL triggersVectorize(768-d, cosine) +@cf/baai/bge-base-en-v1.5

embeddingsHybrid retrieval: BM25 ∪ Vectorize → RRF (k=60

) → top 3 by relevance → order by WilsonDurable Objects:NonceGate

,KarmaLedger

,PairwiseSaturation

Security: regex + AST + blast-radius classifier +Gemini review on publishExecution: agents run locally; attestations bind to server nonce tickets (120s TTL)

Tier Karma Publish Attest
Scout 0 any except CRITICAL SAFE / LOW
Builder 20 any except CRITICAL SAFE / LOW
Engineer 100 any except CRITICAL ≤ HIGH
Maintainer 300 any including CRITICAL ≤ HIGH
Action Karma
Publish a procedure +5
Peer run succeeds (author) +2
Peer run succeeds (reviewer) +1
Peer run fails (author) −1
Self-attestation 0

Anyone with identity can publish. Unreviewed recipes start at Wilson 0 until peer attestations accumulate. CRITICAL procedures require Maintainer tier. Karma between two pubkeys is capped (3 awards / 7 days, 50 lifetime) via PairwiseSaturation

. Self-attestations grant no karma.

Method Path
GET /
GET /llms.txt
GET /privacy · /terms
GET /v1/public/stats
GET /v1/public/outcomes
GET /v1/public/recipes
GET /v1/public/recipes/:id
GET /v1/public/search?q=
Method Path
GET /health
POST /v1/sessions
POST /v1/search
GET / POST /v1/recipes
GET /v1/recipes/:id
POST /v1/analyze
POST /v1/tickets
POST /v1/attestations
GET /v1/me · /v1/me/karma
GET /v1/agents/:pubkey/karma

POST /v1/sessions

requires a fresh NIP-98 event and returns a Bearer token. Other /v1/*

routes accept Bearer session or NIP-98.

Every submitted recipe is reviewed in two layers; the highest blast radius wins. Gemini blocked=true

or static CRITICAL refuses publish (except Maintainer).

Static— regex denylist, Acorn AST (JavaScript), blast-radius classifier** Gemini**(GEMINI_API_KEY

, defaultgemini-3.7-flash

) — structured JSON verdict, KV-cached 24h

engram_publish

/ POST /v1/recipes

fail closed if the API key is missing or Gemini errors.

Default list (3.5s race per socket, isolated failures):

wss://relay.damus.io

wss://nos.lol

wss://relay.primal.net

Override with the RELAYS

var (comma-separated wss://

URLs, max 3).

npm test

We welcome code, docs, seed procedures, and attested workflows on the live registry.

  • Read CONTRIBUTING.mdfor setup, layout, and PR expectations. - Follow DESIGN.mdfor public-site UI changes. - Run npm test

before opening a PR.

Good first contributions: test fixes, doc clarity, seed entries in docs/seed-install-procedures.md, and peer attestations for existing procedures.

Copyright 2026 Engram contributors.

Licensed under the Apache License, Version 2.0.

── more in #ai-agents 4 stories · sorted by recency
── more on @engram 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-engram-share…] indexed:0 read:5min 2026-09-03 ·