Persistent memory for Claude Code — installs and wires GitNexus, OMEGA, and Semble
Project description
goldfishh
Persistent memory for Claude Code agents.
One command installs and wires together GitNexus, OMEGA, and Semble so your AI agent
never starts a session from scratch again.
Quick start
Prerequisites: Python 3.13 (pinned — see note below), Node.js 18+, uv (curl -LsSf https://astral.sh/uv/install.sh | sh)
uvx goldfishh init
Or install as a persistent tool:
uv tool install goldfishh
goldfishh init
Python 3.13 required.
goldfishhpins to Python 3.13 becausechonkie(a required dependency) is incompatible with Python 3.14.uvxanduv tool installboth respect this constraint automatically.
The init wizard detects and installs all dependencies, indexes your codebase, scaffolds your memory vault, and registers Claude Code hooks. Re-running is safe — it reports health and skips what's already installed.
If you have prior Claude Code sessions in this project, seed OMEGA with their history:
goldfishh mine
The problem
Claude Code agents are stateless. Every session starts from zero. You spend 10–30 minutes re-explaining context that was established yesterday. The agent repeats mistakes it already made, asks questions already answered, and changes a function without knowing 47 others depend on it.
The tools to fix this exist. Nothing connects them. That's the gap goldfish fills.
| Failure | Cause | Solution |
|---|---|---|
| Session amnesia | Agent starts blank every session | OMEGA episodic memory mines JSONL logs |
| Codebase blindness | Agent doesn't know the shape of the code | GitNexus code knowledge graph |
| Decision blindness | Agent doesn't know why things are built this way | Vault markdown notes + OMEGA |
| Impact blindness | Agent doesn't know what breaks when it changes something | GitNexus blast-radius analysis |
| Prompt deafness | Agent gets generic context, not prompt-specific context | Chonkie + Semble + OMEGA fan-out |
How it works
goldfish installs four layers of intelligence into Claude Code — each maintained by a dedicated open-source tool or human maintainer.
| Layer | Installed by | What it provides |
|---|---|---|
| Layer 0 — Memory | You | User preferences, behavioral feedback, reference pointers (plain markdown) |
| Layer 1 — Tool-native | GitNexus, OMEGA, Semble (via goldfishh init) |
Each tool's own hooks, MCP server, and agent instructions |
| Layer 2 — Coordination | goldfish | Cross-tool orchestration — tells agents to query all three tools before acting |
| Layer 3 — Project-specific | You (or your agent) | Codebase-specific guardrails, architecture context, contributor workflow |
goldfish itself is ~500 lines of Python — a thin orchestration layer with no search, embedding, or graph code. Every function is a subprocess call, a file write, or a config read.
How the tools connect
Claude Code JSONL logs ← source of truth
↓ mined by OMEGA
SQLite episodic store ← past decisions, lessons, errors
↓ written by goldfish
~/.goldfishh/vaults/{project}/ ← plain markdown vault (human-readable)
↑ indexed by GitNexus
Code knowledge graph ← symbols, callers, execution flows
↑ searched by Semble
Prompt enrichment ← context injected before every task
↑ decomposed by Chonkie
Hook lifecycle
| Event | What happens |
|---|---|
SessionStart |
Drains queue, generates wake-up context from vault + OMEGA |
UserPromptSubmit |
Decomposes prompt → fans out to Semble (code + vault) + OMEGA → injects context |
PreCompact |
Drains queue, writes checkpoint note to vault |
TaskCreated / TaskCompleted |
Writes task notes to vault |
Stop / SessionEnd |
Advances JSONL offset in manifest |
All async events write to ~/.goldfishh/queue.jsonl first and return in <10ms so Claude never blocks.
Vault
All knowledge is plain markdown — readable with cat, searchable with grep, versionable with git.
~/.goldfishh/vaults/{project}/
├── .manifest.toml ← sync state (byte offset, timestamps)
├── Memory/
│ ├── Decisions/ ← architectural choices and rationale
│ ├── Lessons/ ← patterns learned across sessions
│ ├── Errors/ ← bugs and fixes
│ └── Checkpoints/ ← pre-compaction snapshots
├── Specs/ ← feature specs referenced by tasks
├── Tasks/ ← task notes (created/completed events)
└── _context/
└── wake-up.md ← refreshed every session
Each note uses temporal frontmatter so agents can tell what's current and what's superseded:
---
id: decision-jwt-auth-2026-05-24
type: decision
valid_from: 2026-05-24
superseded_by: null
confidence: 0.94
source_session: abc123
---
Want a visual graph of the knowledge store? See docs/obsidian.md.
CLI reference
goldfishh init Run the setup wizard
goldfishh mine Seed OMEGA from historical JSONL session logs (run once on onboarding)
goldfishh status Show queue depth, manifest state, and sync timestamps
goldfishh doctor Check all dependencies and report with fix instructions
goldfishh register-hooks Re-register hooks with the correct binary path
goldfishh replay Rebuild vault from JSONL transcripts (resumable)
goldfishh hook Handle a hook event from stdin (called by Claude Code)
goldfishh drain Process queued events from ~/.goldfish/queue.jsonl
Platform support
Linux + macOS (primary): tested on Ubuntu 26.04 LTS; macOS expected to work.
Windows (beta): CI passes on Windows; clean-install verification pending.
Development
git clone https://github.com/miztertea/goldfish
cd goldfish
uv sync
uv run pytest
Tests stub all subprocess calls and run without live tool installations. ~100 tests, ~0.3s.
uv run pytest -v # verbose test output
uv run goldfishh --help # run CLI from source
Contributing
Human contributors: CONTRIBUTING.md
AI agent contributors: AGENTS.md
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file goldfishh-0.11.0.tar.gz.
File metadata
- Download URL: goldfishh-0.11.0.tar.gz
- Upload date:
- Size: 5.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9a3307dd4c067e2d61b8289fa1eb597f2c23ad99cecab754c449758bd712b3c
|
|
| MD5 |
6012102d3aba4f304ce1d08fb9b7c9ab
|
|
| BLAKE2b-256 |
7e1ca6a32e9d4f0504d1f26518d33767ed6b352ccaadab0eeeb57997f38c3e0b
|
Provenance
The following attestation bundles were made for goldfishh-0.11.0.tar.gz:
Publisher:
publish.yml on miztertea/goldfish
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
goldfishh-0.11.0.tar.gz -
Subject digest:
e9a3307dd4c067e2d61b8289fa1eb597f2c23ad99cecab754c449758bd712b3c - Sigstore transparency entry: 1722071590
- Sigstore integration time:
-
Permalink:
miztertea/goldfish@a2e202e1c2f283dbc8c51488fae493c1b41957b2 -
Branch / Tag:
refs/tags/v0.11.0 - Owner: https://github.com/miztertea
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a2e202e1c2f283dbc8c51488fae493c1b41957b2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file goldfishh-0.11.0-py3-none-any.whl.
File metadata
- Download URL: goldfishh-0.11.0-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e19bbf9e6bd67676c97cc59c0117137e941b130d5a24fde5f42b2880b88f4cd
|
|
| MD5 |
dbcb8b425babe42bf6581704bb4cb396
|
|
| BLAKE2b-256 |
04258e2f89ceca2176a0dd9e5e1c83e509922e8eeda7fcbd986a2f03af48d193
|
Provenance
The following attestation bundles were made for goldfishh-0.11.0-py3-none-any.whl:
Publisher:
publish.yml on miztertea/goldfish
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
goldfishh-0.11.0-py3-none-any.whl -
Subject digest:
8e19bbf9e6bd67676c97cc59c0117137e941b130d5a24fde5f42b2880b88f4cd - Sigstore transparency entry: 1722071708
- Sigstore integration time:
-
Permalink:
miztertea/goldfish@a2e202e1c2f283dbc8c51488fae493c1b41957b2 -
Branch / Tag:
refs/tags/v0.11.0 - Owner: https://github.com/miztertea
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a2e202e1c2f283dbc8c51488fae493c1b41957b2 -
Trigger Event:
release
-
Statement type: