Skip to main content

Memory management tool for vibe-coding agents using Weaviate and optional Chroma cache

Project description

VibeMem (vibemem)

VibeMem is a pip-installable CLI tool to manage reusable “memories” (findings / recipes / gotchas / preferences) for vibe-coding agents.

  • Canonical storage: Weaviate (single collection: VibeMemMemory)
  • Optional local cache: Chroma persisted under .vibemem/chroma in the current repo
  • Works from any directory: derives repo root + scope from your current working directory (override via flags)
  • Default output: JSON (agent-friendly). Use --human for pretty output.

Install

Editable install from this repo:

python -m pip install -e .

Optional cache support (Chroma):

python -m pip install -e ".[cache]"

Dev tools/tests:

python -m pip install -e ".[dev]"
pytest

Configuration

VibeMem reads connection settings from environment variables first, then falls back to a config file under your OS-specific config directory (via platformdirs).

Env vars

  • VIBEMEM_WEAVIATE_URL (required for Weaviate operations)
    • Examples: http://localhost:8080 or https://YOUR_CLUSTER.weaviate.cloud
  • VIBEMEM_WEAVIATE_API_KEY (optional; required for Weaviate Cloud URLs)
  • VIBEMEM_WEAVIATE_GRPC_URL (optional)
    • Example: http://localhost:50051
  • VIBEMEM_WEAVIATE_COLLECTION (default: VibeMemMemory)
  • VIBEMEM_CACHE_MODE (default: auto) — auto|on|off

Show effective config

vibemem config show

Scope model

VibeMem derives scope from your current directory:

  • Repo root is detected by searching upwards for .git/ first; fallback markers: pyproject.toml, package.json, go.mod
  • repo_slug = basename(repo_root)
  • rel_path = path from repo_root to cwd (empty at repo root)

Scope ID derivation is controlled by --granularity:

  • repo (default): scope_id = repo_slug
  • cwd: scope_id = repo_slug::<rel_path>
  • path:N: scope_id = repo_slug::<first N path parts>

Show current derived scope:

vibemem scope

Commands

Search

Search returns ranked memories with scope-aware bubbling (current scope → parent scopes → repo-level; and optionally global).

vibemem search "TypeError: ..." --top 8

Options:

  • --include-global/--no-include-global
  • --include-parents/--no-include-parents
  • --cache auto|on|off

When Weaviate is unreachable and cache is ON (and built), search will fall back to Chroma.

Add a memory

vibemem add --type recipe --text "Use X to fix Y" --tags "python,typing" --confidence high --verification "ran pytest"

Add structured metadata:

vibemem add --type gotcha --text "Chroma where filters differ by version" --error "ModuleNotFoundError: chromadb" --file "vibemem/store/chroma_cache.py" --cmd "pip install -e '.[cache]'"

Edit / remove

vibemem edit <uuid> --text "updated text" --tags "a,b"
vibemem rm <uuid>

List

vibemem list --scope project --limit 20
vibemem list --scope global --type gotcha
vibemem list --scope all --tag python

Sync (pull)

Rebuild local cache from Weaviate:

vibemem sync --pull --limit 200

Notes:

  • “Push/offline queue” is a TODO stub (not implemented).

Output modes

Default output is JSON:

vibemem scope

Pretty output:

vibemem --human scope

Notes

  • The Weaviate collection will be auto-created on first use if it doesn’t exist.
  • If the Weaviate instance doesn’t have a text vectorizer module configured, VibeMem will fall back to a non-vectorized collection; search will still work via keyword matching (hybrid query behavior depends on server capabilities).

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

vibemem-0.2.0.tar.gz (44.1 kB view details)

Uploaded Source

Built Distribution

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

vibemem-0.2.0-py3-none-any.whl (44.1 kB view details)

Uploaded Python 3

File details

Details for the file vibemem-0.2.0.tar.gz.

File metadata

  • Download URL: vibemem-0.2.0.tar.gz
  • Upload date:
  • Size: 44.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for vibemem-0.2.0.tar.gz
Algorithm Hash digest
SHA256 af835fd35262f553da00eca877c7ba5b04546a22ba8b98e4e00db39115058c3c
MD5 f89723f485cf4784e6e382982aa5ac37
BLAKE2b-256 dde6fc24694e929d2408c8bd908af0d1732caac2f237dd3f59cb25f50a3b403b

See more details on using hashes here.

File details

Details for the file vibemem-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: vibemem-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 44.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for vibemem-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7d25736ecfd74114bd75d7f7fc353bcede6c9e1e07940283d25631c252ebe21f
MD5 3f12eb8b686582aa61f13fe8b89e998d
BLAKE2b-256 14b59dce5372bb72ce544f1de20dd07a129739029d405ba9dec856a4be8d9e6f

See more details on using hashes here.

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