# Cognee Ingestion

Use when putting data into cognee memory with remember(), choosing inputs (text...

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

## Install

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

## Description

Use when putting data into cognee memory with remember(), choosing inputs (text, files, folders, URLs, repos, databases), datasets and node_sets, loaders, ontologies, the graph extractor (LLM or GLiNER), chunking, dry-run cost estimates, or when remember() raises on a keyword argument.

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

# Ingest data with remember()

`remember()` is cognee's ingestion API. One call stores the data, builds the
knowledge graph, and enriches it. Use it for all ingestion; every option in
this skill is a `remember()` argument unless it says otherwise.

```python
import cognee

result = await cognee.remember("Einstein was born in Ulm.")  # text
result = await cognee.remember(
    ["./notes.md", "./report.pdf"],  # files
    dataset_name="research",
)
print(result.status, result.dataset_id)  # "completed", UUID
```

All cognee functions are async. Without `dataset_name` data goes to
`main_dataset`. Needs `LLM_API_KEY` unless you use the GLiNER extractor
(below).

## Use it

### Inputs

`data` accepts a string, a list of strings, file paths (absolute, `file://`,
`s3://`), http(s) URLs, binary streams, or a list mixing them.

- **URLs** are fetched and scraped (needs `ALLOW_HTTP_REQUESTS=true`, the
  default).
- **Folders** are ingested file by file. A folder that looks like a code
  project, or a GitHub/GitLab URL, becomes one code repository (needs `git`
  on PATH).
- **Code files** (`.py`, `.ts`, `.go`, …) go down the code-graph route: a
  deterministic graph, no LLM calls, searchable only with
  `SearchType.CODE`. To index a whole repository explicitly, pass
  `content_type="code"`.
- **Databases and dlt sources**: a SQL connection string, a dlt
  `DltResource` / `DltSource`, or a CSV. dlt is a core dependency, so no
  extra is needed (`cognee[dlt]` is an empty compatibility extra). Options: `primary_key` (default `"id"`),
  `write_disposition` (`"replace"` default, or `"append"`), `query`,
  `max_rows_per_table`.
- **Skill playbooks** (`SKILL.md` files): `content_type="skills"`; ingests
  into the target dataset (default `main_dataset`), so pass `dataset_name`
  to keep skills in their own dataset.

### Where the data goes

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