Monorepo for all Cognee-owned integration packages.
Each integration lives under integrations/<name>/ and is an independently publishable package.
integrations/
openclaw/ -> @openclaw/memory-cognee (npm)
(Template coming soon. For now, follow the TypeScript pattern below and adapt for Python with pyproject.toml.)
- Create
integrations/<name>/withpackage.json, entry file, and plugin manifest - Follow the target platform's plugin conventions
- Add an entry to
integrations/inventory.yml
CI auto-detects new integrations by language (Python via pyproject.toml, TypeScript via package.json) — no workflow edits needed.
Each integration is developed independently with its own toolchain:
# Python integrations
cd integrations/<name>
uv sync --dev
uv run pytest tests/ -v
uv run ruff check .
# TypeScript integrations
cd integrations/<name>
npm install
npx tsc --noEmitPython integrations must pin the cognee dependency with a bounded range (e.g., cognee>=0.5.1,<0.6.0). This is enforced by CI via scripts/check_version_pins.py. TypeScript integrations that talk to Cognee via HTTP API are exempt from package pinning but should document compatible Cognee server versions.
When a new cognee version is released:
- Update the bounds in affected integrations
- Run tests to verify compatibility
- Bump the integration version
- Publish the updated package
Each integration is published independently via tag-per-package:
# TypeScript: publishes to npm
git tag openclaw-v2026.2.4 && git push --tags
# Python (when added): publishes to PyPI
# git tag <name>-v<version> && git push --tagsThe publish.yml workflow parses the tag, runs tests, and publishes to the appropriate registry.
- Lint: Ruff on every PR across all Python integrations
- Tests: Auto-detects changed integrations and runs the right test suite (pytest for Python, tsc for TypeScript)
- Pin check: Validates bounded
cogneedependencies in Python integrations - Publish: Tag-triggered per-package publishing to PyPI or npm
integrations/inventory.yml tracks all known integrations with ownership, migration status, package names, and version info. Update it when adding or migrating integrations.