# Cognee Recall

Use when querying cognee memory with recall() (or search()), picking a search type...

- Repository: https://github.com/topoteretes/cognee (32985 stars)
- Category: Testing
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add topoteretes/cognee --skill cognee-recall -g -a claude-code -y`
Codex: `npx skills add topoteretes/cognee --skill cognee-recall -g -a codex -y`
Cursor: `npx skills add topoteretes/cognee --skill cognee-recall -g -a cursor -y`
Gemini CLI: `npx skills add topoteretes/cognee --skill cognee-recall -g -a gemini-cli -y`

## Description

Use when querying cognee memory with recall() (or search()), picking a search type, understanding auto-routing, scoping to datasets, node sets or sessions, getting context or citations instead of an answer, reading the results, or debugging empty or unexpected results.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Query memory with recall()

`recall()` is cognee's query API. It picks a search strategy, searches the
graph and (with a session) the session cache, and returns a list of tagged
results.

```python
import cognee

results = await cognee.recall("Where was Einstein born?")
for r in results:
    print(r.source, r.text)  # e.g. "graph", "Einstein was born in Ulm."
```

Without `datasets` it covers every dataset the user can read, but dataset
routing (always on, no off switch) scores those datasets
against the query on their global context index and searches only the best
`DATASET_ROUTING_TOP_K` (default 1), plus any dataset that has no index yet.
A dataset farther than `DATASET_ROUTING_DISTANCE_CUTOFF` (cosine distance,
default 0.8) is skipped, and when none is within it all are searched; datasets
within `DATASET_ROUTING_TIE_MARGIN` (default 0.001) of the last routed one are
searched too. A routed search that finds nothing is widened to the rest. The
search log prints every dataset's distance. Routing assumes
one embedding model across datasets; after an `EMBEDDING_MODEL` change it
logs a warning and every readable dataset is searched. Pass
`datasets=["research"]` (names) or `dataset_ids=[...]` (UUIDs, which win) to
pin the scope yourself; an explicit scope is never routed.

## Use it

### How the search type is picked

The rest: https://github.com/topoteretes/cognee/blob/HEAD/.agents/skills/cognee-recall/SKILL.md
