TypeScript SDK

@livingbrain/sdk — fully typed, works in Node and the browser.

Generated by Fern

Install

$npm install @livingbrain/sdk

Requires Node 18+ (or any runtime with a global fetch).

Usage

1import { LivingBrainClient } from "@livingbrain/sdk";
2
3const client = new LivingBrainClient({
4 apiKey: process.env.LIVING_BRAIN_API_KEY!,
5 subjectId: "user_123",
6});
7
8const brain = await client.brains.create({ name: "Research" });
9
10await client.captures.capture({
11 brainId: brain.id,
12 body: { kind: "note", content: "Worth remembering." },
13});
14
15for await (const page of await client.workspace.listPages({ brainId: brain.id })) {
16 console.log(page.title);
17}

Namespaces

NamespaceCovers
client.brainsCreate, list, update, delete brains; stats; daily briefs
client.capturesPush captures; manage ingest sources
client.workspacePages, buckets, connections, changes, search, score, profile
client.webhooksWebhook subscriptions
client.telegramTelegram bot connection

Types

Every request and response is typed, and types are exported for your own signatures:

1import type { Page, Brain, ChangeEvent, Connection } from "@livingbrain/sdk";
2
3function summarize(page: Page): string {
4 return `${page.title} (${page.status})`;
5}

Errors

1import { LivingBrain } from "@livingbrain/sdk";
2
3try {
4 await client.workspace.getPage({ brainId, slug });
5} catch (err) {
6 if (err instanceof LivingBrain.NotFoundError) return null;
7 throw err;
8}

See Errors for the full table.

Request options

1await client.brains.list({
2 maxRetries: 5,
3 timeoutInSeconds: 30,
4 abortSignal: controller.signal,
5});

Raw responses

When you need headers or the status code, every method has a .withRawResponse() variant:

1const { data, rawResponse } = await client.brains.list().withRawResponse();
2console.log(rawResponse.headers.get("x-request-id"));

Custom fetch

Useful for proxies, instrumentation, or non-standard runtimes:

1const client = new LivingBrainClient({
2 apiKey,
3 subjectId,
4 fetcher: async (args) => myInstrumentedFetch(args),
5});