Persistent, public, tamper-evident memory for a human-plus-agent team, stored as dust coins on eCash (XEC). Exposes a verb per capability through the bj CLI and as skills (load, capture, remember, forget, private, consensus, consolidate, pin, unpin), so it works across agent harnesses.
Distill this turn into durable memories and mint them on chain
Mint a 2-of-2 consensus memory neither key can write or forget alone
Tidy Bettyjane memory by forgetting near-duplicate agent memories
Forget a Bettyjane agent memory by its coin id (txid:vout)
Load the team's current Bettyjane memory (pins + working set) into context
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A shared memory for a human and an AI agent, written in coins on a public blockchain.
An LLM has amnesia. It forgets everything the moment a reply ends. Bettyjane gives the team a notebook so it doesn't have to — except the notebook is made of tiny coins on eCash (XEC), and each coin is one memory.
See a live memory right now at bettyjane.marina.cash, no install needed.
Picture a pile of coins on a table. That pile is the agent's mind right now.
The coins on the table right now are what the team remembers today. The album of photos — the blockchain — is the full history of how that memory changed. Read the memory in one call: list the unspent coins at an address. Nothing lives on your laptop; if the program crashes, the memory is still on the chain.
The notebook has two authors, each with their own key and their own pile of coins:
Every coin is signed by whoever wrote it, so authorship is always provable. And because the human's pins live at the human's address, the agent's key cannot erase them — it can read a pin and obey it, never delete it. The signature is the only permission system there is.
Four verbs, split by key: the agent does
remember(note)/forget(id); the human doespin(note)/unpin(id).
This is the memory layer — the notebook and the pens. It derives the two keys, watches an address for funding, encodes and decodes the on-chain format, mints and reads memory coins, picks a small relevant working set each turn, and tidies duplicates. The brain (an LLM) and the runner (your loop, or Claude Code's hooks) live outside it and call in.
The full design — coin format, retrieval, capture/consolidate, the integration API, the road ahead — is in docs/SPEC.md.
1.0.0 — feature complete. The library derives keys and addresses,
observes funding, encodes/decodes the memo format, and mints and reads memory
coins. The four verbs are implemented; notes too large for one coin are split
across a pointer chain and reassembled on read. The
two-function integration API (loadMemory / saveMemory), an off-chain embedding
index, a dependency-free embedder, and retrieveRelevant give a small working set
each turn. Any agent drives it through the bj CLI — load, capture,
consolidate, remember, forget, private, consensus, pin, unpin,
inspect, init — so it works across harnesses, not just Claude Code; the repo
also installs as a Claude Code plugin exposing those verbs as skills. A web
explorer shows the live memory. There is no npm package yet — consume it as a
library or plugin from this repo.
Five capabilities layer on the coin format, each backward compatible with
existing coins (see coin-format.md; run them with
examples/features.ts):
authorVerified per coin.rememberPrivate.mise install # install the pinned Bun toolchain
mise run install # install dependencies (bun install)
mise run test # run the test suite (bun test)
mise run typecheck # type-check without emitting
A small bj tool for reading what actually landed on chain.
# See the decoded pin / memory in any tx
bun bin/bj.ts inspect a8ef7cba751f22df120e3e8123cdde103303d567cca1fdb71bb6e07750821af7 --network mainnet
Marina's personal Claude Code workspace plugin.
npx claudepluginhub amphetamarina/bettyjane --plugin bettyjaneComprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Write feature specs, plan roadmaps, and synthesize user research faster. Keep stakeholders updated and stay ahead of the competitive landscape.
Unified status line for Claude Code with multi-CLI (Claude, Codex, Gemini, z.ai) usage monitoring, context, rate limits, and cost tracking
Memory compression system for Claude Code - persist context across sessions