coco-research/cognee:recall
Semantic and graph search across Cognee knowledge graph. Queries project memory, finds related entities and decisions, injects results as agent context. Triggers on: 'cognee recall', 'search memory', 'what do we know about', 'find related', 'graph search', 'memory search', 'recall context'.
npx skills add https://github.com/coco-research/coco --skill cognee:recall
Semantic, graph-traversal, and lexical search across Cognee's knowledge graph. Finds entities, decisions, events, and their relationships — then injects relevant results as agent context for informed decision-making.
COGNEE="${COGNEE_BASE_URL:-http://localhost:8000}"
DATASET="my-project"
# Semantic search (auto-selects best strategy)
curl -s -X POST "$COGNEE/api/v1/search" \
-H "Content-Type: application/json" \
-d '{"query": "authentication decisions", "datasets": ["my-project"], "search_type": "FEELING_LUCKY", "top_k": 10}' | jq .
# Graph completion search (relationship-aware)
curl -s -X POST "$COGNEE/api/v1/search" \
-H "Content-Type: application/json" \
-d '{"query": "who reports to Alice", "datasets": ["my-project"], "search_type": "GRAPH_COMPLETION", "top_k": 10}' | jq .
# Recall with context injection (adds system prompt)
curl -s -X POST "$COGNEE/api/v1/recall" \
-H "Content-Type: application/json" \
-d '{"query": "rate limiting", "datasets": ["my-project"], "top_k": 10, "only_context": true}' | jq .
# Cross-project search
curl -s -X POST "$COGNEE/api/v1/search" \
-H "Content-Type: application/json" \
-d '{"query": "auth decisions", "datasets": ["project-a", "project-b", "project-c"], "search_type": "FEELING_LUCKY"}' | jq .
Cognee supports multiple search strategies. Use FEELING_LUCKY for auto-selection (recommended), or specify one:
| Type | Best for |
|------|---------|
| FEELING_LUCKY | Auto-selects best strategy (default, recommended) |
| GRAPH_COMPLETION | Relationship-heavy queries ("who owns X", "what depends on Y") |
| GRAPH_COMPLETION_COT | Complex reasoning with chain-of-thought |
| GRAPH_COMPLETION_CONTEXT_EXTENSION | Expanding context around a node |
| GRAPH_SUMMARY_COMPLETION | Summarization of graph neighborhood |
| RAG_COMPLETION | Retrieval-augmented generation |
| TRIPLET_COMPLETION | Entity-relationship-entity patterns |
| CHUNKS | Raw chunk retrieval |
| CHUNKS_LEXICAL | Keyword/lexical matching |
| SUMMARIES | Pre-computed summaries |
| NATURAL_LANGUAGE | Free-form natural language queries |
| TEMPORAL | Time-based queries |
| CODING_RULES | Code-specific patterns |
Procedure:
GRAPH_COMPLETIONFEELING_LUCKYTEMPORAL if availableCODING_RULES/cognee status to list available datasetsCOGNEE="${COGNEE_BASE_URL:-http://localhost:8000}"
curl -s -X POST "$COGNEE/api/v1/search" \
-H "Content-Type: application/json" \
-d "{
\"query\": \"$QUERY\",
\"datasets\": $DATASETS_JSON,
\"search_type\": \"$SEARCH_TYPE\",
\"top_k\": $TOP_K
}" | jq .
COGNEE RECALL — "$QUERY"
==================================================
Found N results across M datasets
[1] DECISION: Use JWT for API auth (2026-06-30)
Context: Stateless, works with existing infra
Dataset: my-project | Score: 0.94
[2] ENTITY: Auth Service — depends_on → PlatformHub
Description: Authentication and authorization service
Dataset: my-project | Score: 0.87
[3] TASK: Set up JWT middleware (open, priority 1)
Assigned to: Alice Chen
Dataset: my-project | Score: 0.82
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Same as search, but formats results for direct injection into the agent's context window. Use this before making architectural decisions or when context from past sessions is needed.
Procedure:
[COGNEE CONTEXT INJECTION — {timestamp}]
Query: "{original_query}"
Dataset(s): {dataset_names}
Relevant knowledge:
• DECISION ({date}): {text} — {context} [relevance: {score}]
• ENTITY: {name} ({type}) — {description} [relevance: {score}]
• TASK: {text} ({status}) — assigned to {assignee} [relevance: {score}]
• EVENT: {title} ({date}, {type}) — {summary} [relevance: {score}]
Use this context to inform your response. Cite specific decisions and entities where relevant.
Explore the graph around a specific entity to understand its relationships.
COGNEE="${COGNEE_BASE_URL:-http://localhost:8000}"
# First, get the dataset ID
DATASET_ID=$(curl -s "$COGNEE/api/v1/datasets" | jq -r '.[] | select(.name=="my-project") | .id')
# Get the full graph
curl -s "$COGNEE/api/v1/datasets/$DATASET_ID/graph" | jq .
Present as a relationship map:
ENTITY GRAPH — "Auth Service" (my-project)
==================================================
┌──────────────────┐
│ Auth Service │
│ (system) │
└───┬──────────┬───┘
│ │
depends_on │ │ owns
│ │
┌──────▼──┐ ┌───▼──────────┐
│Platform │ │ JWT Middleware│
│Hub │ │ (module) │
│(module) │ └───────────────┘
└─────────┘
Related decisions:
• Use JWT for API auth (2026-06-30) — relates to Auth Service
Related tasks:
• Set up JWT middleware (open) — assigned to Alice Chen
• Update API docs (open) — assigned to unassigned
Search for related knowledge across all available datasets.
COGNEE="${COGNEE_BASE_URL:-http://localhost:8000}"
# Get all dataset names
DATASETS=$(curl -s "$COGNEE/api/v1/datasets" | jq -r '[.[].name] | join(",")')
# Cross-project search
curl -s -X POST "$COGNEE/api/v1/search" \
-H "Content-Type: application/json" \
-d "{
\"query\": \"$QUERY\",
\"datasets\": [$DATASETS_JSON],
\"search_type\": \"FEELING_LUCKY\",
\"top_k\": 15
}" | jq .
Present results grouped by dataset:
CROSS-PROJECT RECALL — "$QUERY"
==================================================
Found N results across M datasets
my-project (5 results):
[1] DECISION: Use JWT for API auth — 0.94
[2] ENTITY: Auth Service — 0.87
...
e-and-c (3 results):
[1] DECISION: Stakeholder role for external users — 0.91
[2] ENTITY: External Review System — 0.84
...
optimize (2 results):
[1] DECISION: Migration to pgvector — 0.78
...
Automatically run /cognee-recall search when:
Only show results with relevance score > 0.5 by default. If fewer than 3 results exceed threshold, tell the user: "Only {N} low-relevance results found. Try a broader query."
If Cognee supports sessions, tag recalls with a session ID for better multi-turn context:
SESSION_ID="coco-$(date +%s)"
curl -s -X POST "$COGNEE/api/v1/search" \
-H "Content-Type: application/json" \
-d "{
\"query\": \"$QUERY\",
\"datasets\": [\"$DATASET\"],
\"search_type\": \"FEELING_LUCKY\",
\"top_k\": 10
}" | jq .
If Cognee is unreachable:
project_brain.db in current or parent directories/brain context --search "query"cognee server start or initialize Brain with /brain init."Cognee must be running and the project dataset must exist (created via /cognee init).
# Verify
curl http://localhost:8000/health
curl http://localhost:8000/api/v1/datasets | jq '.[].name'
Take coco-research/cognee:recall from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.