Building your second brain.
Every AI agent starts each session from zero. Illumina keeps what you and your team have learned, from decisions to documents to yesterday's conversation, and hands it to any agent the moment it asks. Nothing to run.

Three calls. Five minutes.
Get a key, name a memory, and your agent starts remembering. Use the SDKs, plain HTTP, or point Claude Code at the hosted MCP server.
- 1
Savecommit()
Hand it anything: notes, PDFs, chat logs, meeting transcripts. Illumina pulls out the facts and connects them to what it already knows.
- 2
Asksearch()
Ask in plain language. Get the facts that matter, ranked, each with where it came from.
- 3
Reasonilluminate()
Ask a bigger question, the kind no single note answers. Illumina reads across everything and writes you an answer.
1import { IlluminaClient } from "@illumina/client";
2
3const client = new IlluminaClient({
4 baseUrl: "https://api.illumina.sh",
5 apiKey: process.env.ILLUMINA_API_KEY,
6});
7
8await client.createNamespace("payments");
9
10await client.commit("payments", "ADR-014: queue on Postgres, no Redis.", {
11 factType: "decision",
12});
13
14const found = await client.search(
15 "payments",
16 "what did we decide about the queue?"
17);
18
19const answer = await client.illuminate(
20 "payments",
21 "summarize open infra decisions",
22 { factTypes: ["decision", "signal"] }
23);Everything your team knows, one ask away.
Save what happens, ask for what matters, and reason across it when the question is bigger than any one fact.
Answers you can check
Ask what the team decided and get the decision, when it was made, and the sources behind it. Illumina finds facts by meaning, by exact wording, by what they connect to, and by when they happened, then ranks them by how relevant, how recent, and how well corroborated they are. Ask for the trace and it shows its ranking.
What did we decide about the job queue?
ADR-014: Postgres with SKIP LOCKED, no Redis. Standing since February.
Why?
One fewer system to run, and Sam did not want to be paged for a second datastore.
Anything supersede it since?
No. Still standing, corroborated by 3 sources.


One brain, every agent
Connect Claude Code, Cursor, or any agent you build, and it remembers and answers like a teammate who was in the room. Every agent on the same memory sees what the others learned.
Drop in anything, get a memory back
Paste text or upload PDFs, decks, spreadsheets, and images. Illumina pulls out the facts, links the people and projects they mention, and merges repeats. Facts that keep showing up become things it knows for sure, so a memory gets sharper the longer it lives.
Documents
Upload
inc-2031 postmortem.pdf
12 facts
adr-016.md
4 facts
northwind-qbr.pptx
9 facts
roster-2026.xlsx
5 facts
standup 2026-08-26
3 facts
Ask the big questions
What is still open on the migration? What did we promise this customer? Illuminate reads across everything, reasons it through, and answers with the facts it used. Need the answer in a fixed shape? Describe the shape and it fills it in.
illuminate("what is still open on the queue migration?")
The SKIP LOCKED queue shipped on August 20. Two items remain: the retry backoff Sam flagged in the postmortem, and moving the cron jobs off the old Redis worker before it is decommissioned on September 5.
Claude Code, Cursor, Codex, or anything that speaks MCP connects with one config entry. Give an agent the whole toolkit or only the parts it needs, like read-only access for a bot that should never write.
Ask a question that takes several facts to answer. Illumina gathers them, reasons across them, and returns an answer, in a fixed format if you need one.
Every decision keeps its reasons and points at the one it replaced. Ask what the plan is and you get the current plan, with the history one step away.
Pin a question like what did the payments team decide this week, and Illumina answers it again every time new memories land.
Illumina groups related people, projects, and topics and summarizes each group, so a broad question comes back as a theme instead of ten near-identical snippets.
Tell it what a customer, a ticket, or a release means in your world, or let it propose a draft from what it has already learned. You approve before anything changes.
Every save either lands or tells you why. Duplicates fold into one, and a failure keeps its error and retries with one call.
Give each team its own memory, then set a rule for what belongs in the shared one. Matching facts move up on their own, with a log of what moved, from where, and why.
Metered on what you save, what you ask, and the bigger questions you have it answer. Start free with no card. No per-seat pricing.
A memory that gets sharper with age
One decision, followed for six months. Nothing here needs a human to file, tag, or clean up.
Day 1
Day 1
You save a decision.
Illumina pulls out the fact, files it as a decision, and links it to the people and projects it names.
commit("ADR-014: queue on Postgres, no Redis.")
Decision. Standing. Linked to the platform team, the payments service, and Sam.
Week 2
Week 2
Other sources back it up.
A standup note and an incident postmortem mention the same call. The fact now has three sources behind it, so it ranks higher when anyone asks about the queue.
search("what did we decide about the job queue?")
Postgres with SKIP LOCKED, no Redis. Corroborated by 3 sources.
Month 2
Month 2
Repeated evidence becomes one statement.
In the background, Illumina reads the facts that keep agreeing and writes a single line that stands for all of them. The sources stay attached, so you can always check.
signal, written by consolidation
The platform team runs its queues on Postgres and avoids adding datastores.
Month 6
Month 6
A new decision replaces it.
The team moves cron jobs to a dedicated worker. Illumina links the new decision to the old one, marks the old one superseded, and keeps its reasons. Ask what the plan is and you get the current plan. Ask why and you get the history.
decision lineage
ADR-019 cron jobs on a dedicated worker, Aug 20. Standing.
supersedes ADR-014, Feb 12. Reason kept: one fewer system to page for.
Every week
Every week
The briefing writes itself.
Pin a question once. Illumina answers it again each time new memories land, so the summary is current when you open it.
automation: "what did the platform team decide this week?"
Cron jobs move to the new worker on Sept 5. Retry backoff from the postmortem is still open. No changes to the queue decision.
One brain per team, agent, or customer
Nine ways to put it to work.
Coding agents
Claude Code, Cursor, Codex
Your agent checks last month's migration thread before proposing a new one, and remembers the decision it just helped you make.
Support agents
One memory per product
Every past ticket in memory. The agent stops asking customers what they already told you.
Onboarding
Ask across the team's memory
New hires ask how deploys work and get the way the team does it, with the reasons behind it.
Incident review
Postmortems, action items, follow-ups
Ask what changed after the March incident and get the decisions that followed, in order.
Customer memory
One memory per account
Commitments, contacts, and escalations come back on the next call, with the dates they were made.
Decision logs
Decisions with history
Save decisions as decisions. The current one stays on top, and the reasoning behind the one it replaced is a hop away.
Standing briefings
Pinned questions
A pinned question answers itself again every time new memories land: what did the payments team decide this week?
Multi-agent systems
Shared memory
Every agent shares one memory. The escalation bot knows what the triage bot learned an hour ago.
Research assistants
Files in, answers out
Upload the papers or the call notes, ask across all of them, and get an answer with the supporting facts attached.
Start building your second brain.
Sign up, save your first memory, and ask your agent about it. Five minutes, free, no card.