Skip to main content

A production grade memory system for agents

Project description

goldfishmem

A production grade memory system for agents.

goldfishmem is published on PyPI under the same name. The Python import name matches the distribution:

from goldfishmem import hello_world

Consumer-facing documentation lives in docs/. This README is the developer guide for working on the project.

Tech stack

Concern Tool
Language Python 3.12+
Package manager uv
Build backend hatchling
Linter / formatter ruff
Type checker pyright (strict)
Tests pytest + pytest-cov
Pre-commit pre-commit
Commit linting commitizen (Conventional Commits)
Docs Markdown + mermaid diagrams under docs/
CI/CD GitHub Actions
PyPI publishing OIDC Trusted Publishing (no API tokens)

Repository layout

goldfishmem/          # source package (all code lives here, import as `goldfishmem`)
tests/
  unit/               # fast unit tests
  integration/        # integration tests (also gated on the `integration` marker)
docs/                 # consumer-facing documentation
.claude/              # Claude Code permissions/skills/plugins
.mcp.json             # MCP server registrations (chrome-devtools, Lucid)
.github/workflows/    # ci.yml, release.yml
CLAUDE.md             # guidance for Claude
AGENT.md / AGENTS.md  # guidance for Cursor and other agents
CONTRIBUTING.md       # contributor guide

Local development

1. Install uv (one-time)

curl -LsSf https://astral.sh/uv/install.sh | sh

2. Clone and sync dependencies

git clone https://github.com/MadaraUchiha-314/goldfishmem.git
cd goldfishmem
uv sync

uv sync creates .venv/ in the project root and installs runtime + dev dependencies from pyproject.toml.

3. Install the pre-commit hooks

uv run pre-commit install --hook-type pre-commit --hook-type commit-msg

This installs two hooks:

  • pre-commit — runs ruff check, ruff format, pyright, and the unit test suite on every commit.
  • commit-msg — runs commitizen check to enforce Conventional Commits.

You can also run the hooks ad-hoc:

uv run pre-commit run --all-files

4. The dev loop

uv run ruff check .              # lint
uv run ruff format .             # format
uv run pyright                   # type-check (strict)
uv run pytest tests/unit         # unit tests
uv run pytest tests/integration  # integration tests

5. Writing a commit

Either format the message yourself (feat: ..., fix: ..., etc.) or use the interactive helper:

uv run cz commit

CI/CD

  • .github/workflows/ci.yml — runs on every PR and on push to main:
    • ruff check and ruff format --check
    • pyright (strict)
    • Unit tests against Python 3.12 and 3.13
    • Integration tests
    • Commit-message linting on PRs
  • .github/workflows/release.yml — runs on push to main after CI passes:
    • cz bump --yes --changelog computes the next semver from the conventional commits since the last tag, updates pyproject.toml and goldfishmem/__init__.py, and updates CHANGELOG.md.
    • Pushes the version-bump commit and the new tag back to main.
    • Builds the sdist + wheel with uv build.
    • Publishes to PyPI via OIDC Trusted Publishing (no PYPI_API_TOKEN secret needed — configure the PyPI project under Settings → Publishing to trust this GitHub repo + release.yml).
    • Creates a GitHub Release with the changelog and dist artifacts attached.

One-time PyPI Trusted Publisher setup

Before the first release succeeds, configure PyPI:

  1. Reserve the project name goldfishmem on https://pypi.org by uploading a first version manually, OR pre-create the project via "pending publisher" under your PyPI account → PublishingAdd a new pending publisher.
  2. Add a trusted publisher with:
    • Owner: MadaraUchiha-314
    • Repository: goldfishmem
    • Workflow filename: release.yml
    • Environment name: pypi
  3. In this repo's settings, create a GitHub Environment named pypi.

Project management

  • Roadmap, features, bugs: tracked on GitHub Projects.
  • Community feedback: open a GitHub Issue.
  • Coding-agent contributions: see CLAUDE.md and AGENT.md. Agents must post a plan with a [Plan by <agent>] prefix on the relevant issue and wait for human approval before implementing.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

goldfishmem-0.1.0.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

goldfishmem-0.1.0-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file goldfishmem-0.1.0.tar.gz.

File metadata

  • Download URL: goldfishmem-0.1.0.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for goldfishmem-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2830e97a5d05b62010d4d01f5a4b82ecf5ade5dde701a3059ae715055de39d48
MD5 75dd06d7d484d267777b05d420cb4d77
BLAKE2b-256 230c9057c6c423ced1a8960fcacdbeb021f38397ca389ae3b3d33050cb48a6aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for goldfishmem-0.1.0.tar.gz:

Publisher: release.yml on MadaraUchiha-314/goldfishmem

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file goldfishmem-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: goldfishmem-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for goldfishmem-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c5f54aa9e9313bf85ce6ca08bd7c77216a4e4c94404891bcac2548d2a6272864
MD5 1083e86d04ea4e2187fba685fd6a8f59
BLAKE2b-256 30340ba50f811195c32c5f1a266e78e048ec6662fb95e040f1c5e084f3fa8052

See more details on using hashes here.

Provenance

The following attestation bundles were made for goldfishmem-0.1.0-py3-none-any.whl:

Publisher: release.yml on MadaraUchiha-314/goldfishmem

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page