Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when the user wants to install cognee and run their first remember → recall flow with the Python SDK — fresh setup, virtual env, extras selection, or a minimal working example.
.claude/skills/topoteretes-cognee-install/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -16% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 8% | 0% |
Requires Python 3.10–3.14. Prefer uv:
bashuv venv && source .venv/bin/activate uv pip install cognee # from PyPI # or, working inside this repo: uv pip install -e .
Add extras only when needed — examples: cognee[postgres], cognee[neo4j], cognee[docling] (office/HTML document parsing, slim), cognee[docs] (unstructured), cognee[anthropic], cognee[ollama], cognee[aws]. The full list is in pyproject.toml under [project.optional-dependencies].
The only required setting is an LLM API key. Create .env in the working directory (or export the variable):
bashLLM_API_KEY="your_openai_api_key"
Defaults need no services: SQLite (relational), LanceDB (vector), and Ladybug (graph), all stored locally. OpenAI is the default LLM and embedding provider — if you configure a different LLM but not embeddings (or vice versa), the other silently stays on OpenAI. For other providers and databases use the cognee-integrations skill.
As of cognee 1.x the memory API — remember, recall, forget, improve — is the primary surface. All SDK functions are async. Minimal end-to-end script:
pythonimport asyncio import cognee async def main(): await cognee.remember("Cognee turns documents into AI memory.") results = await cognee.recall("What does cognee do?") print(results) asyncio.run(main())
remember() is the whole ingestion path in one call — it runs add() + cognify(), then improve() to index the graph (self_improvement=True by default). It accepts text, file paths, URLs, and binary streams, with an optional dataset_name="my_project"; pass datasets=["my_project"] to recall() to stay inside one dataset.
recall() auto-routes the query to a search strategy by default. Pass query_type=SearchType.CHUNKS (etc.) to pin one, or auto_route=False to fall back to GRAPH_COMPLETION.
Session memory is the other half of the API — remember(..., session_id="chat_1") writes to a fast session cache rather than running add+cognify inline, and recall(..., session_id="chat_1") reads it back (session hits short-circuit the graph search). With the default self_improvement=True it still bridges that data into the permanent graph in the background; improve(dataset=..., session_ids=[...]) does the same explicitly. Session memory runs on the session cache, which is on by default (CACHING=true); setting CACHING=false disables it entirely and makes remember(session_id=...) raise.
Start with examples/advanced_guides/remember_recall_improve_example.py, which walks through permanent memory, session memory, and the sync between them.
The add() / cognify() / search() / memify() primitives still exist and are what remember/recall/improve call underneath — reach for them when you need to drive a stage in isolation (e.g. custom pipeline tasks), not for ordinary ingestion. cognee.delete is formally deprecated (since 0.3.9); forget() is the v1 replacement, unifying the old delete/prune/empty_dataset paths behind one call. When to use recall() versus the low-level search() is covered in docs/recall-vs-search.md.
cognee-cli remember "hello" && cognee-cli recall "hello" exercises the sameflow from the shell.
cognee-cli forget --all (orawait cognee.forget(everything=True)).
AUTO_FEEDBACK=false(keep CACHING=true); by default cognee makes one structured-output LLM call per answered query to self-tune its memory.
explicit instructor mode: LLM_INSTRUCTOR_MODE="json_schema_mode".
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-19 | pass→pass | 17,985 | 10,046 | -44% | 1 | 1 | 0% | 2,009 | 1,905 | -5% | 0 | 0 | — |
case-07 | pass→pass | 13,271 | 7,451 | -44% | 1 | 1 | 0% | 1,434 | 1,408 | -2% | 0 | 0 | — |
case-01 | fail→pass | 17,546 | 10,658 | -39% | 1 | 1 | 0% | 2,329 | 2,030 | -13% | 0 | 0 | — |
case-02 | fail→pass | 38,508 | 10,906 | -72% | 1 | 1 | 0% | 2,589 | 2,167 | -16% | 0 | 0 | — |
case-03 | fail→pass | 21,520 | 18,763 | -13% | 1 | 1 | 0% | 2,771 | 3,438 | +24% | 0 | 0 | — |
case-04 | fail→fail | 14,530 | 7,430 | -49% | 1 | 1 | 0% | 1,963 | 1,483 | -24% | 0 | 0 | — |
case-05 | fail→pass | 14,198 | 8,414 | -41% | 1 | 1 | 0% | 1,705 | 1,648 | -3% | 0 | 0 | — |
case-06 | fail→pass | 11,776 | 6,753 | -43% | 1 | 1 | 0% | 1,203 | 1,299 | +8% | 0 | 0 | — |
case-08 | fail→pass | 16,049 | 10,241 | -36% | 1 | 1 | 0% | 2,200 | 2,005 | -9% | 0 | 0 | — |
case-09 | fail→pass | 13,502 | 11,968 | -11% | 1 | 1 | 0% | 1,523 | 2,301 | +51% | 0 | 0 | — |
case-10 | pass→pass | 13,824 | 7,314 | -47% | 1 | 1 | 0% | 1,479 | 1,451 | -2% | 0 | 0 | — |
case-11 | fail→pass | 22,083 | 10,330 | -53% | 1 | 1 | 0% | 2,981 | 1,964 | -34% | 0 | 0 | — |
case-12 | fail→pass | 12,871 | 7,184 | -44% | 1 | 1 | 0% | 1,315 | 1,374 | +4% | 0 | 0 | — |
case-13 | fail→pass | 16,362 | 8,699 | -47% | 1 | 1 | 0% | 2,146 | 1,752 | -18% | 0 | 0 | — |
case-14 | fail→pass | 19,493 | 11,018 | -43% | 1 | 1 | 0% | 2,444 | 2,085 | -15% | 0 | 0 | — |
case-15 | fail→pass | 14,762 | 7,343 | -50% | 1 | 1 | 0% | 1,657 | 1,449 | -13% | 0 | 0 | — |
case-16 | fail→pass | 14,618 | 7,085 | -52% | 1 | 1 | 0% | 1,602 | 1,353 | -16% | 0 | 0 | — |
case-17 | fail→pass | 23,566 | 7,855 | -67% | 1 | 1 | 0% | 3,272 | 1,374 | -58% | 0 | 0 | — |
case-18 | fail→pass | 19,566 | 9,382 | -52% | 1 | 1 | 0% | 2,469 | 1,810 | -27% | 0 | 0 | — |
case-20 | pass→pass | 12,879 | 9,732 | -24% | 1 | 1 | 0% | 1,427 | 1,882 | +32% | 0 | 0 | — |
case-21 | pass→pass | 18,145 | 15,462 | -15% | 1 | 1 | 0% | 2,366 | 3,107 | +31% | 0 | 0 | — |
case-22 | pass→pass | 12,126 | 10,451 | -14% | 1 | 1 | 0% | 1,440 | 2,092 | +45% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +68 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.