How to use CortexPlus
Start by saving your memories and choosing usage modes. When you are ready to do more, connect AI assistants, shortcuts, and your own apps.
Getting started
Create your account and start saving memories on the web or your phone.
- Create your account — the Free plan includes 5 GB in the cloud.
- Install the app on iPhone or Android to record audio, take photos, and back up your camera roll.
- Save anything you want: audio, photos, text, and videos. Everything is searchable by meaning in Memories.
- Choose the modes that fit how you use CortexPlus and, if you like, connect local storage through the CortexPlus desktop app.
Usage modes
Each mode shapes how you interact with the same memories: it filters by type and tag, and adapts the app menu to what you need.
The selected mode is saved on this device, and the app menu changes to match.
- Available
Home
Your overview: highlights, summaries and activity.
- Available
Photos
A gallery organized by capture date, with phone backup.
- Available
Files
Keep attachments together, without uploading the same file twice.
- Available
Nutrition
Turn meal photos into calorie and nutrient estimates.
- Available
Sales
Notes, meeting audio and business cards become clients, deals and follow-ups.
- Available
Study
PDFs, notebook photos and lecture audio become summaries and flashcards.
- Available
Finance
Receipts, Pix screenshots and bills become categorized entries.
- Available
Health
Measurements, lab results and workouts in one place — private by default.
- Coming soon
Family
Coming soon: share selected memories with family.
Storage
BetaCortexPlus Cloud and local storages keep your originals. Each storage keeps a copy; the CortexPlus desktop app watches folders you choose for local storage.
Download (Beta)
Choose the CortexPlus desktop app for your system.
On macOS, open the .pkg (if macOS blocks it, right-click → Open). On Windows, at the SmartScreen warning, click “More info” → “Run anyway”. Once installed, the CortexPlus icon appears in the menu bar (macOS) or notification area (Windows) and opens the setup. On Linux, run chmod +x on the file, then ./cortexplus-runner-linux-amd64 setup.
Verify SHA-256Connect local storage
Install and open the CortexPlus desktop app. It displays a pairing code; enter that code in Settings → Storage. Local storage connects only when the whole library fits on the computer with 10% headroom.
Watched folders
Choose folders to watch. Native operating-system change notifications keep resource use low; idle watching uses no CPU. Deleting a file from a watched folder deletes that memory from your account and your other storages.
Inbox folder
Originals coming from the cloud are saved in the inbox folder, organized by capture year and month. It is watched like any other folder, so deleting there deletes the memory from your account. Copies are verified with SHA-256 before they are placed.
Online and offline
Local storage is shown as Online or Offline in Settings → Storage. With the computer off, the gallery and search keep working from thumbnails and vectors; the original shows as offline until the computer is back online.
File states
Uploading
The original is uploading to the cloud.
In the cloud
The original is in the cloud and counts toward the 5 GB limit.
Copying to local storage
The original is being copied to local storage. The app shows how many files and bytes remain at Settings → Storage.
On local storage (verified)
The original reached local storage and its SHA-256 was checked.
Cloud space freed
The original left the cloud; only the thumbnail and the index remain, and they don't count toward your quota.
With more than one storage, a file whose original has already left the cloud stays in the storages that have it and shows as “available on another storage” on the others.
Integrations
For connecting CortexPlus to AI assistants, shortcuts, and your own apps. It all starts with a key.
1. Get your key
Your key is what lets an app reach your memory. It is like a password for one app: you can take it away at any moment without changing anything else.
- Open API keys.
- Create a key and give it a name you recognise, like "Claude" or "iPhone".
- Copy it — it is shown only once. Keep it to yourself.
Lost it or shared it by accident? Delete it on that same screen and create another. The apps using the old key simply stop seeing your memory.
Ask your assistant, in any language: "create a CortexPlus account for me to use as my long-term memory". It asks for your name and email, CortexPlus emails you a code valid for 15 minutes, and you paste it back into the chat. The assistant then gets its own key.
One on the Free plan, five on Personal, and as many as you need on Pro and Business. One key per app is the tidy way to do it, since removing one app then never affects the others.
2. Connect Claude, ChatGPT or Gemini
Wherever an app asks you for an address, paste https://mcp.cortexplus.io. When it asks who you are, sign in or paste your key. That is the whole idea — pick your app below.
Claude
Works on the website, the computer app and the phone. You need a Pro or Max plan; on Team and Enterprise the owner adds it once for everybody.
- Open Settings → Connectors.
- Choose Add custom connector.
- Paste
https://mcp.cortexplus.ioand save. - Press Connect and sign in. If you never set a password, choose Email me a key instead and paste the code you receive.
- Back in the chat, ask: "what do I have about pricing?"
Screenshots for each plan are in Anthropic’s guide.
ChatGPT
On a personal plan, open the "ChatGPT on any plan" box below — it is the easier route and takes the same couple of minutes. The steps here need a Business, Enterprise or Edu workspace.
- An administrator turns on developer mode in the workspace settings.
- Open Apps → Create.
- Paste
https://mcp.cortexplus.ioas the address. - For sign-in, choose OAuth and sign in to CortexPlus.
- Press Scan Tools, then Create.
The settings live in different places per plan; OpenAI’s guide has the screens.
Create a custom GPT with an action — it works on Free and Plus, and nobody has to approve anything:
- In ChatGPT, create a GPT and open Configure.
- Choose Create new action.
- Under Schema, import by URL:
https://api.cortexplus.io/openapi.json. - Under Authentication, pick API Key with type Bearer and paste your key.
- Save, then ask "save this in CortexPlus" or "what do I have about pricing?"
That address only describes what CortexPlus can do — it never contains your key. Recalling happens silently; saving asks you to confirm, on purpose, because it writes to your memory. OpenAI’s guide has the screens.
Gemini
Today Google requires a personal Google Account in the US, 18 or older, with Keep Activity on, and it has to be added on a computer — after that it also works on the phone.
- On a computer, open gemini.google.com.
- Go to Settings → Connected Apps (or Personal Intelligence → Connected Apps).
- Under Custom apps, choose Add a custom app.
- Paste
https://mcp.cortexplus.ioand press Next. - Sign in to CortexPlus. Never set a password? Choose Email me a key instead and paste the code from the email.
- In the chat, type
@and pick CortexPlus.
Ignore the credential fields under Advanced features — CortexPlus fills those in by itself. Google’s guide has the screens.
Then just talk
"Remember that pricing is per indexed page" saves. "What did we decide about pricing?" brings it back, with the related notes around it. Your assistant asks before saving, never before reading.
Your key stays inside the app and is never shown to the AI itself. You can leave saving turned off and connect read-only, and removing the key in API keys disconnects every app that used it.
Four things, and it picks the right one on its own:
- search — finds the items that match a question.
- fetch — opens one of them in full.
- recall — the one used to answer from memory: it returns the passages that answer a question plus the notes connected to them.
- remember — saves something new. Apps ask you first, since it writes.
Claude Code takes one command:
claude mcp add --transport http cortexplus https://mcp.cortexplus.io \
--header "Authorization: Bearer cortex_..." Restart it and approve CortexPlus when asked. Other editors look for a "remote MCP server" or "HTTP server" entry in their settings file:
{
"mcpServers": {
"cortexplus": {
"type": "http",
"url": "https://mcp.cortexplus.io",
"headers": { "Authorization": "Bearer cortex_..." }
}
}
} Gemini CLI uses its own file, ~/.gemini/settings.json:
{
"mcpServers": {
"cortexplus": {
"httpUrl": "https://mcp.cortexplus.io",
"headers": { "Authorization": "Bearer cortex_..." },
"timeout": 30000
}
}
} Restart the CLI and run /mcp — the four tools should be listed.
Pass CortexPlus as a server in the payload and the model calls it when it needs to:
{
"model": "gpt-5",
"tools": [{
"type": "mcp",
"server_label": "cortexplus",
"server_url": "https://mcp.cortexplus.io",
"authorization": "cortex_...",
"require_approval": "never"
}],
"input": "What did we decide about pricing?"
} https://mcp.cortexplus.io speaks MCP over Streamable HTTP, which is how assistants discover tools by themselves. It accepts your key as a bearer token or through a Connect button — it is also an OAuth 2.1 server, so signing in creates a dedicated key for that app, listed in API keys. One key means one workspace, and two people using the same assistant never see each other’s memory.
https://mcp.cortexplus.io
Authorization: Bearer cortex_... 3. Save memories by voice
Speak and CortexPlus works out what you meant. "Nota, cliente Bradesco tem 85% das aplicações em mainframe" becomes a note filed under that client. "Tarefa, criar o ambiente do piloto do BTG" becomes a task to do. And "já criei o ambiente do BTG" finds that task and ticks it off.
On the iPhone
- On the iPhone, open /app/ios and create your key there.
- Tap install. The Shortcuts app asks for the key while importing — paste it.
- Tap the shortcut to record, or say "Hey Siri, Cortex Memory".
That is the whole setup. You can also share a voice message from WhatsApp or a recording from Voice Memos into it, instead of speaking live.
Nothing is ever thrown away for being unclear: when CortexPlus is not sure how to file something, it keeps it and flags it for review in Memories.
Six actions in the Shortcuts app. Name it something you can say out loud — Siri runs a shortcut by its name.
- Text — paste your key.
- Record Audio — Start: Immediately, Stop: On Tap.
- Base64 Encode — set its input to the Recorded Audio variable. Leaving it on Shortcut Input sends an empty request.
- Get Contents of URL —
POST https://api.cortexplus.io/v1/memories. - Headers:
Authorization: Bearer+ the text from step 1, andcontent-type: application/json. - Request Body: JSON with
{"audioBase64": <Base64 Encoded>, "via": "ios-shortcut"}, then Show Result with Contents of URL.
Keep Request Body: File off — that request can time out. Turn on Show in Share Sheet, accepting Media and Files, and the shortcut shows up in the share menu of other apps.
To skip transcription altogether, replace steps 2 and 3 with Dictate Text (Stop Listening: After Pause) and send {"text": <Dictated Text>, "via": "ios-shortcut"}. The phone does the transcribing, so it uses none of your processing minutes.
curl -sX POST https://api.cortexplus.io/v1/memories \
-H "Authorization: Bearer cortex_..." \
-H "content-type: application/json" \
-d '{"text":"Nota, cliente Ambev tem como prioridade migrar o mainframe para Java","via":"ios-shortcut"}' # request an upload URL
curl -sX POST https://api.cortexplus.io/v1/uploads \
-H "Authorization: Bearer cortex_..." \
-H "content-type: application/json" \
-d '{"name":"recording.m4a","contentType":"audio/mp4"}'
# -> { "key": "...", "uploadUrl": "https://...", "expiresIn": 900 }
curl -sX PUT "$uploadUrl" -H "content-type: audio/mp4" --data-binary @recording.m4a
curl -sX POST https://api.cortexplus.io/v1/memories \
-H "Authorization: Bearer cortex_..." \
-H "content-type: application/json" \
-d '{"key":"'"$key"'","contentType":"audio/mp4","name":"recording.m4a","durationSeconds":7,"via":"ios-shortcut"}' A memory carries up to 25 MB of audio inline. Above that, upload in three calls:
POST /v1/uploadswith{"name": "recording.m4a", "contentType": "audio/mp4"}— keepkeyanduploadUrl.PUTthe file touploadUrlwith headercontent-type: audio/mp4.POST /v1/memorieswith{"key": ..., "contentType": "audio/mp4", "name": "recording.m4a", "via": "ios-shortcut"}.
The contentType must match the file, because the upload URL is signed for it. audio/mp4 covers the .m4a files iOS produces; audio/mpeg, audio/wav, audio/ogg and audio/webm also work. durationSeconds is optional, for quota accounting only.
One flat object, so a shortcut can build a notification without digging:
{
"id": "nd_...",
"type": "task",
"title": "Criar o ambiente do piloto",
"client": "BTG",
"status": "open",
"memory": "ready",
"review": null,
"resolved": null,
"url": "https://cortexplus.io/app/memories?node=nd_..."
} type—note,taskorreminder. Tasks and reminders startopen.client— the tidy spelling. "Bradesco", "bradesco" and "o Bradesco" all end up as "Bradesco", with acliente:bradescotag you can filter on.memory—pendingwhile audio is being transcribed,readyonce stored. Text is ready immediately.resolved— the id of the task your sentence closed, when it closed one.review—nullwhen CortexPlus was confident,low_confidencewhen it was not, andno_matching_taskwhen it heard "I already did it" but found no matching task, so it kept the sentence as a note.
GET /v1/tasks?status=open&client=BTG returns your open tasks and reminders, newest first — that is what a "what do I owe the BTG?" shortcut or custom GPT asks. In a chat you just ask the question; the assistant does this for you.
POST /v1/signup with your email mails you a code valid for 15 minutes, and POST /v1/connect exchanges that code for a key. These are the only two calls that need no key, and the answer is the same whether or not the email already has an account.
4. Other apps and automations
Anything that can send a web request can save to CortexPlus and read from it — an iPhone shortcut, Zapier, Make, n8n, your own spreadsheet script. Your key is the only setting.
There is no CortexPlus app in those directories yet, and none is needed:
- Pick any trigger the platform already has — a new email, a Slack message, a Notion page.
- Add the generic web step: Webhooks by Zapier, Make’s HTTP module or n8n’s HTTP Request node.
- Point it at
POST https://api.cortexplus.io/v1/rememberwith your key in theAuthorizationheader and the trigger’s text ascontent.
Use /v1/recall in the same kind of step when an automation needs to read your memory instead.
- In the iOS Shortcuts app, add Get Contents of URL —
POST https://api.cortexplus.io/v1/remember. - Header
Authorization: Bearer cortex_..., and a JSON body withcontentset to the shortcut input. - Turn on Show in Share Sheet.
Saving a page is then two taps, with no assistant involved. On Android, any app that can send a web request with custom headers does the same.
| Endpoint | What it does |
|---|---|
| POST /v1/remember | Stores a note and answers 201 with its id. Needs a key allowed to write. |
| POST /v1/recall | The passages that answer a question plus the notes connected to them, as text. |
| POST /v1/search | Ranked matches: id, title, link and a short preview of each. |
| GET /v1/memories/{id} | One item in full, by the id search returned. |
| POST /v1/memories | A voice or text memory, filed automatically as note, task, reminder or the completion of a task. |
| GET /v1/tasks | Open tasks and reminders, newest first. |
Everything lives at https://api.cortexplus.io and uses the same credential: Authorization: Bearer cortex_.... The full machine-readable description is at https://api.cortexplus.io/openapi.json.
Every endpoint, with parameters and responses, is in the REST API reference.
curl -sS https://api.cortexplus.io/v1/remember \
-H 'authorization: Bearer cortex_...' \
-H 'content-type: application/json' \
-d '{
"title": "Pricing review",
"content": "We index pages, not gigabytes…",
"tags": ["pricing", "product"]
}' curl -sS https://api.cortexplus.io/v1/recall \
-H 'authorization: Bearer cortex_...' \
-H 'content-type: application/json' \
-d '{ "query": "what did we decide about pricing?", "maxChars": 6000 }'
# { "text": "…the passages that answer it…", "matches": 3 } limit is 1–50, depth 0–3, maxChars 500–20000, and bodies are capped at 1 MB.
Failures answer with { "error": "..." } and a matching status: 401 without a key, 403 when the key is not allowed to write, 400 when the request is malformed, 404 for an unknown item, 429 when your plan limit is reached, and 503 when memory is briefly unreachable.
Reaching a limit never blocks reading — only new indexing pauses. You can raise it in Billing or compare plans on the pricing page.