Skip to content
Open Breno

SDKs

The Go and TypeScript clients for the public API, with examples, and what they do and do not cover.

Two SDKs cover the public API. Both live in the Breno repository and are tested against the OpenAPI document's schemas.

SDKLocation
TypeScriptpackages/sdk-ts (@brainers/sdk-ts)
Gopackages/sdk-go

TypeScript#

List, ask and capture
import { BrenoClient, RateLimitError } from '@brainers/sdk-ts';

const breno = new BrenoClient({
  baseUrl: 'https://<your-breno-host>',
  token: process.env.BRENO_TOKEN!,
});

for await (const doc of breno.iterateDocuments({ owner: 'me' })) console.log(doc.title);

const answer = await breno.ask('What is our refund policy?');
answer.evidence.forEach((c) => console.log(c.source?.url ?? c.document_id));

await breno.captureNote('Standup 8 Oct', '- shipped the REST API');

RateLimitError is thrown when a request is rate limited (429).

Go#

Iterate and export
c := client.NewClient(client.Config{
	BaseURL: "https://<your-breno-host>",
	Token:   os.Getenv("BRENO_TOKEN"),
})

it := c.Documents(client.ListOptions{SourceType: "note"})
for it.Next(ctx) {
	fmt.Println(it.Document().Title)
}

bundle, err := c.Export(ctx)

What they cover#

The public operations (see API overview): listing and reading items, search, ask, export, upload, capture and note edits, with paging helpers and typed errors.

What they do not do#

  • The TypeScript SDK does not reconnect MCP sessions on its own. The CLI bridge does.
  • They cannot call anything a token cannot: no member management, settings or source connection.

Without an SDK#

The API is plain HTTP and JSON, so any language works. See Authentication and the examples throughout this section.