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
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.
remember · recall · ask on a real graph.
Partition by account or workspace when the product needs it.
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.
- v1 sells recall and context, not an agent marketplace
- Multimodal text, PDF, image, audio are real
- Self-host the engine when the perimeter demands it