ThinkingRoot

Ship the app. We grow the brain.

Builders use ThinkingRoot when the product needs memory that is scoped, fast, and honest, without standing up a second retrieval stack.

One key. Per-user brains.

A project key opens the gateway. `.scope(userId)` mounts a per-user brain. Remember and recall stay fail-closed to that user, cross-user reads are unreachable by construction.

  • TypeScript SDK, Node, Bun, Deno, edge, browser
  • REST for any language
  • Embed tokens for authenticated widgets
  • 429-retry and streaming built in
app.ts
import { thinkingroot } from "@thinkingroot/sdk";

const tr = thinkingroot(); // key from env
const user = tr.user(userId);

await user.remember("Prefers weekly digests.");
const hits = await user.recall("How often should we email?");

What you do not rebuild.

Ingest, fact extraction, hybrid recall, and the living-brain verbs already run in the engine. Your app calls HTTP. The cloud wakes the project engine when it is cold.

Brain

remember · recall · ask on a real graph.

Branches

Partition by account or workspace when the product needs it.

MCP

The same brain inside Cursor and Claude for your own team.

Honest limits.

Agents and Root Functions exist in the product but are not the v1 sell, context at the cursor is. Video ingest is still metadata-only. We say so on the page that would otherwise overclaim.

Context at your cursor.