Use when the user wants to run the cognee API server (and optional UI) on their own machine — starting it, checking it's healthy, connecting the SDK or other clients to it, and choosing the right auth posture.
cognee-cli -ui
launches the full local stack: FastAPI backend on http://localhost:8000
and the UI on http://localhost:3000. Needs LLM_API_KEY in the
environment or .env. The interactive API reference is at
http://localhost:8000/docs, health at /health.
For API-only serving via Docker instead, use the cognee-docker skill (the
prebuilt cognee/cognee:main image or docker compose up from the repo).
ENABLE_BACKEND_ACCESS_CONTROL decides everything:
true (default): multi-tenant — auth required on every API call, per
user+dataset database isolation.false: single-user local mode — no auth, shared local databases. Right
choice for a personal dev server; never for anything exposed.REQUIRE_AUTHENTICATION=false is ignored while access control is on; to turn
auth off you must set ENABLE_BACKEND_ACCESS_CONTROL=false.
SDK / CLI against the server (instead of embedded local mode):
cognee-cli serve --url http://localhost:8000 # local instance
cognee-cli serve # cognee cloud (device flow)
cognee-cli serve --logout # disconnect
In Python: await cognee.serve(url="http://localhost:8000").
HTTP: main routes live under /api/v1/ — the memory API is remember
(plus remember/entry), recall, improve, forget; sessions covers
session memory; datasets, users, visualize handle the rest. The legacy
add, cognify, search, memify, and delete routes still exist and are
what the memory routes call underneath (see cognee/api/client.py for the
registered routers, or GET /openapi.json on a running server).
Note there is no /api/v1/feedback route — feedback exists as a CLI
command and in the SDK, but is not exposed over HTTP.
from cognee.api.v1.visualize import visualization_server
shutdown = visualization_server(port=8080) # synchronous; returns a shutdown callable
"8080:8000").ENABLE_BACKEND_ACCESS_CONTROL=false and restart.recall/search returns [] instead of erroring → permission-filtered
result; check dataset access rights for the calling user.Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/cognee-server · pinned to the source commit
# Run from your project root
git clone https://github.com/topoteretes/cognee.git .skillboard-tmp
git -C .skillboard-tmp checkout 690c0ec023719a2a277dc893cdecfec1ca8012cc
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/.claude/skills/cognee-server" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/topoteretes/cognee.git .skillboard-tmp
git -C .skillboard-tmp checkout 690c0ec023719a2a277dc893cdecfec1ca8012cc
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/.claude/skills/cognee-server" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/cognee-server
Scanner static-checks@0.1.0 · commit 690c0ec02371. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
References credentials, tokens or secret files that a skill should not need.
Evidence: [redacted]· fingerprint ccae6d912a41bfef