Cognee Integrations - AI Memory for Your Agent Framework
Demo . Docs . Learn More · Join Discord · Join r/AIMemory . Core Repo
Monorepo for all Cognee-owned integration packages. Each integration gives an agent framework (Strands, CrewAI, LangGraph, Google ADK, …) a persistent memory layer backed by cognee: a permanent knowledge graph plus a fast session cache.
Install these from their public registries — you do not need to clone this monorepo to use them.
| Framework | Package | Install |
|---|---|---|
| Strands | cognee-integration-strands |
pip install cognee-integration-strands |
| CrewAI | cognee-integration-crewai |
pip install cognee-integration-crewai |
| LangGraph | cognee-integration-langgraph |
pip install cognee-integration-langgraph |
| Google ADK | cognee-integration-google-adk |
pip install cognee-integration-google-adk |
| Claude Agent SDK | cognee-integration-claude |
pip install cognee-integration-claude |
| Hermes Agent | cognee-integration-hermes-agent |
pip install cognee-integration-hermes-agent |
| OpenClaw | @cognee/cognee-openclaw |
npm install @cognee/cognee-openclaw |
| n8n | n8n-nodes-cognee |
install via n8n community nodes |
| Dify (Cloud) | cognee |
install from the Dify marketplace |
| Dify (self-hosted) | cognee-sdk |
install from the Dify marketplace |
Each integration has its own README.md under integrations/<name>/ with the full tool
reference and runnable examples. The table above is generated from
integrations/inventory.yml — see it for ownership,
versions, and compatible cognee ranges.
Memory apps and editor tooling that talk to a running cognee server
(COGNEE_BASE_URL) over its HTTP API — no in-process cognee. Each lives under
integrations/<name>/ with a runnable example and its own README.md.
| Integration | Package | What it does |
|---|---|---|
| Chat-memory core | cognee-integration-chat-memory |
the shared ChatMemoryAdapter every cognee chat bot builds on |
| Telegram | cognee-integration-telegram |
each chat is a memory; /ask with cited message links |
| Slack | cognee-integration-slack |
per-channel memory; @cognee / /recall cited answers |
| Web chat widget | cognee-integration-web-widget |
one-script-tag embeddable widget + "ask our docs" |
| Second brain | cognee-integration-second-brain |
cross-transport personal memory (Telegram + web), /link identity merge |
| VS Code | cognee-vscode |
remember/recall + "ask my project memory" with source-file citations |
The Claude Code integration is a plugin — it gives Claude Code persistent memory across sessions with no code to write. It auto-captures your prompts, tool traces, and responses, and auto-recalls relevant context on every prompt.
1. Install the plugin
Run these slash commands directly in the Claude Code chat:
/plugin marketplace add topoteretes/cognee-integrations
/plugin install cognee-memory@cognee
2. Configure your LLM key
In local mode (the default), the plugin bootstraps a local Cognee API on
http://localhost:8011. Cognee extracts knowledge with an LLM, so set LLM_API_KEY
in the shell that launches Claude Code:
export LLM_API_KEY="sk-..."To target Cognee Cloud or a remote server instead, set COGNEE_BASE_URL and
COGNEE_API_KEY. On startup you should see a "Cognee Memory Connected" message.
3. Use Claude Code as usual
Memory is captured and recalled automatically — no extra steps. You can also invoke the skills explicitly:
/cognee-memory:cognee-remember # store something now
/cognee-memory:cognee-search # query memory
/cognee-memory:cognee-sync # persist the session into the graph
For full configuration (datasets, sessions, sync watchers, cloud mode), see
integrations/claude-code/README.md.
Using an agent framework instead? The Python SDK integrations (Strands, CrewAI, LangGraph, Google ADK, Claude Agent SDK) follow a
pip install→ setLLM_API_KEY→ attachcognee_tools()pattern. See each integration's README underintegrations/<name>/for a runnable example.
Built on cognee v1.0, the integrations share the same two tiers:
- Permanent knowledge graph — durable memory that survives across sessions.
- Session cache — a cheap per-session cache (no graph extraction up front) that is
promoted into the permanent graph on sync (
/cognee-memory:cognee-sync, orcognee.improve(session_ids=[...])in the SDK integrations).
Every Python integration installs from PyPI and follows the same shape: install →
set LLM_API_KEY → build the cognee tools → pass them to your agent. The only thing
that differs per framework is the import line and how you construct the agent.
pip install cognee-integration-strands # or -crewai, -langgraph, -google-adk, -claude
export LLM_API_KEY="sk-..." # cognee extracts knowledge with an LLMThe tools come in two styles depending on the integration's version:
| Framework | Package | Build the tools with | Tools |
|---|---|---|---|
| Strands | cognee-integration-strands |
cognee_tools(session_id=None) |
remember, recall |
| Claude Agent SDK | cognee-integration-claude |
cognee_tools(session_id=None) |
remember, recall |
| CrewAI | cognee-integration-crewai |
from … import add_tool, search_tool |
add_tool, search_tool |
| Google ADK | cognee-integration-google-adk |
from … import add_tool, search_tool |
add_tool, search_tool |
| LangGraph | cognee-integration-langgraph |
get_sessionized_cognee_tools(user_id) |
add_tool, search_tool |
cognee_tools() style (cognee v1.0 — Strands, Claude Agent SDK). Writes go to the
permanent graph; pass session_id=... to use the session cache instead:
from cognee_integration_strands import cognee_tools
from strands import Agent
from strands.models.openai import OpenAIModel
agent = Agent(model=OpenAIModel(...), tools=cognee_tools())
agent("Remember that we signed a contract with Meditech Solutions for £1.2M.")
print(agent("What is the value of the Meditech Solutions contract?"))add_tool / search_tool style (CrewAI, Google ADK, LangGraph). Here you also ingest
source documents yourself with cognee.add(...) + cognee.cognify() before searching:
import cognee
from cognee_integration_crewai import add_tool, search_tool # CrewAI / Google ADK
from crewai import Agent
await cognee.add("Meditech Solutions — healthcare industry, contract worth £1.2M.")
await cognee.cognify() # build the knowledge graph
agent = Agent(role="Analyst", goal="…", backstory="…", tools=[add_tool, search_tool])
print(agent.kickoff("Which contracts are in the healthcare industry?"))LangGraph is the same style but builds its tools per user:
add_tool, search_tool = get_sessionized_cognee_tools("user-1").
Each integration's README.md under integrations/<name>/ has a complete runnable
example (examples/) and the full tool reference.
Each integration lives under integrations/<name>/ and is an independently publishable package.
integrations/
openclaw/ -> @openclaw/memory-cognee (npm)
claude-code/ -> Cognee plugin for Claude Code
codex/ -> Cognee plugin marketplace for Codex
(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.