Start

Quickstart

From nothing to a saved memory and a search in five minutes — with a key and the SDK, the CLI, or curl.

Get a key

New to Era? Sign up at app.getera.io/signup?start=brain and choose Memory for my AI. The Brain setup switches Era Brain on and offers Create a Brain key.

Already in Era? Open Settings → API keys, click New key, and under Reaches choose Era Brain · memory. Copy the key — it starts with era_ and is shown once.

Terminal
export ERA_API_KEY="era_…"

A key works as the person who made it, in one workspace, and never reaches further than that person can. Keep it on a server.

Save a memory

Terminal
npm install @getera/brain
remember.ts
import { createBrain } from '@getera/brain'

const brain = createBrain({ apiKey: process.env.ERA_API_KEY })

const { job, memories } = await brain.add('Ada Lovelace prefers invoices in EUR, sent on the 1st.', { wait: 10 })
console.log(job.status, memories?.map((m) => m.content))
Terminal
npx tsx remember.ts   # or: bun remember.ts
Terminal
npm install -g @getera/cli
era brain add "Ada Lovelace prefers invoices in EUR, sent on the 1st." --wait
Output
Remembered:
  0f3a91c2  Ada Lovelace prefers invoices in EUR, sent on the 1st.

The CLI uses ERA_API_KEY when it is set; otherwise run era login once (your browser opens Era's sign-in).

Terminal
curl https://app.getera.io/api/v1/brain/memories \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"facts":[{"statement":"Ada Lovelace prefers invoices in EUR, sent on the 1st."}],"wait":10}'

A memory is filed by Era's ingestion worker — usually within seconds. wait returns the stored memories in the same call; without it you get a job id at once (202) and can check it with GET /api/v1/brain/jobs/{id}.

Sentences or text

One sentence is stored as you wrote it. A longer text — a call transcript, an email, a page of notes — is split into self-contained facts by your workspace's AI (the subscription or key you connected in Era). Without one, the job reports waiting and says what to connect.

Search it back

const { results } = await brain.search('How does Ada want to be invoiced?')
console.log(results[0]?.content)
Terminal
era brain search "How does Ada want to be invoiced?"
Terminal
curl https://app.getera.io/api/v1/brain/search \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"How does Ada want to be invoiced?","limit":5}'
Response
{
  "query": "How does Ada want to be invoiced?",
  "used_vector": true,
  "results": [
    { "id": "0f3a91c2-…", "content": "Ada Lovelace prefers invoices in EUR, sent on the 1st.", "kind": "fact", "score": 0.0331, "created_at": "2026-10-22T09:12:03.000Z" }
  ]
}

Correct, explain, forget

await brain.update(results[0].id, { content: 'Ada Lovelace prefers invoices in GBP since October.' })
const why = await brain.explain('How does Ada want to be invoiced?', results[0].id)
await brain.forget(results[0].id)

explain tells you the fact's rank, the words and entities it shares with the question, its semantic similarity and the rule that let you see it. forget stops Era using it at once.

Next

Was this page helpful?