Skip to main content

GoodMem Python SDK

An OpenAI-style API for Goodmem with auto-inference of model parameters, streaming retrieval, async support, and auto-pagination. The SDK stays in sync with the server's OpenAPI spec — except for hand-written convenience methods (model registry auto-inference, flat post-processor kwargs, etc.) that wrap the generated layer. Please see ../notes/clients_gen.md for the SDK generation details and ../notes/docs_gen.md for the doc generation details.

Installation

pip install goodmem

Usage

The programmatic way

from goodmem import Goodmem

client = Goodmem(
    base_url="http://localhost:8080",
    api_key="gm_..."
)

embedder = client.embedders.create(
    display_name="OpenAI Embedder",
    model_identifier="text-embedding-3-large",
    api_key="sk-your-openai-key",
)

print(f"Created: {embedder.embedder_id}")

The Skill way

# One-time setup — copy the skill into your Claude Code skills directory
cp -r $(python -c "import goodmem; print(goodmem.__path__[0])")/skills ~/.claude/skills/goodmem

Once installed, Claude Code automatically loads the GoodMem SDK reference when you ask it to create embedders, store memories, run retrieval, etc.

Project structure

clients/
├── python/              # Python SDK (this directory, published to PyPI as "goodmem")
├── _clients_gen/         # Code generation (spec → SDK + MCP)
├── _docs_gen/            # Doc generation (ref pages, skills, sdk2rest)
├── mcp/                 # MCP server (published to npm as @pairsystems/goodmem-mcp)
├── claude/              # Claude Code plugin (git subtree → public repo)
├── vibe/                # Cross-SDK vibe auditing (audit_docs.sh, audit_ref_doc.sh, ...)
├── registries/          # Shared model registries (copied into each SDK)
├── ci/                  # CI infrastructure
├── notes/               # Internal dev notes (clients_gen.md, docs_gen.md)
├── clients_gen.sh        # Full SDK generation pipeline
└── docs_gen.sh           # Full doc generation pipeline

Development commands

# Generation (run from clients/, not python/)
cd ..
./clients_gen.sh                # compile server → IR → Python SDK → MCP → test
./clients_gen.sh -y             # same, but skip server-reset confirmation (unattended/CI)
./docs_gen.sh                   # ref pages + skills + snippets
./docs_gen.sh --sdk2rest        # translate SDK test snippets → REST equivalents

# Publishing (run from python/)
cd python
./publish.sh                   # Publish to PyPI
./publish.sh --test            # Publish to TestPyPI

# Vibe auditing (Claude Code non-interactive)
../vibe/audit_docs.sh          # run all doc audits (ref docs + skill docs)
../vibe/audit_ref_doc.sh       # audit generated MDX ref docs against SDK source
../vibe/audit_skill_doc.sh     # audit generated skill reference (SDK, REST, patterns)

In clients_gen.sh, integration test is only activated when environment variables GOODMEM_BASE_URL and GOODMEM_API_KEY are set.

Warning: Before the integration tests, clients_gen.sh runs goodmem-reset.sh to delete ALL resources on the target server. Never point GOODMEM_BASE_URL at a production server — use a throwaway local instance. (CI no longer resets anything: it composes a fresh server per suite and tears it down. See ci/README.md.)

See notes/clients_gen.md for the full regeneration workflow and notes/docs_gen.md for the doc and auditing pipelines.

Documentation

TODO

  1. Add gemini-embedding-001 to embedder registry once backend adds OPENAI_COMPATIBLE to ProviderType.
  2. Add Anthropic, Google, Cohere, and Mistral LLMs to registry once backend adds matching LLMProviderType values.
  3. Automate model registry updates to add new models as they are released.
  4. Generate SDK to an intermediate representation, then map that to cURL, HTTPie, HTTPX, Go, JavaScript, etc.

Metadata

Release files for goodmem 0.1.39

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for goodmem 0.1.39
File Size Uploaded
goodmem-0.1.39.tar.gz 272.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for goodmem 0.1.39
File Interpreter ABI Platform
goodmem-0.1.39-py3-none-any.whl Python 3 none any Details

Total release size: 546.3 kB

Release files / goodmem-0.1.39.tar.gz

Download URL goodmem-0.1.39.tar.gz
Size 272.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9455ddca34470154820f6c78936dc8373f4a1972264d9d1ea858beca3cb4bfa3
BLAKE2b-256 checksum
How to use checksums
265faacdf46f850476b3a406bb6212067d3ae889b417a2fed7639b1404d1c428
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / goodmem-0.1.39-py3-none-any.whl

Download URL goodmem-0.1.39-py3-none-any.whl
Size 273.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a600593d5816517d9fcec01e670902f01a46e7715b2f0b2605719a693ac82722
BLAKE2b-256 checksum
How to use checksums
e8551b27def6b7eaaa6151c4d1d172c9e2b6264ad63976bc5415488c960defa1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page