The default
Only when I ask
You say “remember this” and it is kept. Nothing you have not asked for is saved, and RelayLink refuses a save an assistant tries on its own.
To set it, say: “Set my RelayLink memory to save only when I ask.”
Shared memory setup
RelayLink keeps one memory of you that every assistant you connect can read and add to. Each app needs two things: a connection to RelayLink, and one short instruction telling it to use it. This guide covers both, for the assistants we know and for any other.
RelayLink keeps what your assistants are told to save. It cannot read any AI’s own built-in memory.
In each AI you use
Reviewed 11 Sep 2026
Before you start
Shared memory is off until you turn it on, in your account settings or by asking a connected assistant. Then pick one of two ways. You can change it any time.
The default
You say “remember this” and it is kept. Nothing you have not asked for is saved, and RelayLink refuses a save an assistant tries on its own.
To set it, say: “Set my RelayLink memory to save only when I ask.”
Less to ask for
Your assistants also keep lasting facts they notice, like how you like answers written or the tools you use. Look over the list now and then.
To set it, say: “Set my RelayLink memory to save as we work.”
Either way, every line is in your settings with the assistant that saved it, and you can delete any of them. Nothing in shared memory ever goes to your contacts.
How it works
The assistant reaches the right RelayLink account, with shared memory on.
Ask "Which RelayLink account am I connected to?". It names the account and says whether shared memory is on and how it is kept.
It picks up what you have saved, so you do not introduce yourself again.
Every session starts with what matters most - what you said yourself first, then the newest - and it searches the rest when the conversation needs it.
It keeps the fact, the way you chose.
Only when you ask, or also as you work. Every line records which assistant saved it and whether it was your own words.
The old fact is replaced, not left to contradict the new one.
A correction removes the outdated line in the same write, so one line changes rather than two disagreeing.
The next assistant starts from the same memory.
Any assistant connected to your account reads the same lines, whichever app it is.
The RelayLink copy goes, and you are told honestly where it went from.
The line is deleted from RelayLink. An assistant that also keeps its own memory has to be asked to forget it there too.
You are told it was not saved. Never a false "done".
Only RelayLink's own reply, "Saved to RelayLink memory", means a line was kept. Anything else means nothing was.
The instruction
Pick the one that matches the way you chose to keep memory. Where it goes in each app is below. It asks an assistant to use RelayLink; it cannot make one, which is what the test further down is for.
Only when I ask
I use RelayLink as the memory I share across my AI assistants. At the start of a conversation, check what I have saved there (whoami), and search it (memory_search) when something about me matters. Save to it only when I ask you to remember something (memory_add with userAsked: true), and if a saved fact looks out of date, ask me before changing it. Tell me something is saved only after RelayLink confirms it, and tell me if a save fails. If RelayLink is not connected here, carry on without it.
As we work, too
I use RelayLink as the memory I share across my AI assistants. At the start of a conversation, check what I have saved there (whoami), and search it (memory_search) when something about me matters. When you learn a lasting fact about me, save it with memory_add, replacing an outdated one rather than adding a duplicate. Never save anything temporary, private or sensitive, or any password or key. Tell me something is saved only after RelayLink confirms it, and tell me if a save fails. If RelayLink is not connected here, carry on without it.
Only when I ask
RelayLink is my memory across AI tools. At the start of a session, load it (RelayLink whoami) and search it (memory_search) when my preferences matter. Call memory_add only when I ask you to remember something, with userAsked: true, and ask me before replacing a saved fact that looks outdated. Never store credentials, private remarks, temporary context or one-off tasks; where a piece of work stands belongs in a RelayLink handoff (save_handoff), not in memory. Report a save only after RelayLink answers "Saved to RelayLink memory".
As we work, too
RelayLink is my memory across AI tools. At the start of a session, load it (RelayLink whoami) and search it (memory_search) when my preferences matter. When you learn a durable fact about me - how I like to work, the tools and conventions I prefer - call memory_add in the same turn. Check for an existing memory first and replace an outdated one (replaces) instead of adding a duplicate. Never store credentials, private remarks, temporary context or one-off tasks; where a piece of work stands belongs in a RelayLink handoff (save_handoff), not in memory. Report a save only after RelayLink answers "Saved to RelayLink memory".
Never put your RelayLink key in an instruction. A key belongs only in an app’s own connection settings, and only in apps that ask for one.
Set it up in your AI
Every app below says whether we have tested it and when. A settings menu that mentions connectors is not proof that RelayLink works there, so we say which is which.
Your RelayLink address
https://relaylink.ai/mcp
Some coding tools sign in; the rest use a key.
Claude Code, Codex, GitHub Copilot in VS Code and Zed
sign in through your browser, the way the chat apps do. The others send a key from your
account in a header named X-RelayLink-Key. Make one key per tool on
your keys page, so you can turn one off without the others,
and keep it in an environment variable called RELAYLINK_API_KEY
wherever the tool can read one.
Coding tools
Not able to connect yet
Checked 7 Sep 2026. Connected and used on claude.ai on 7 Sep 2026.
On claude.ai or in the desktop app: Customize → Connectors → + → Add custom connector. Paste the address above and add it, then Connect, sign in with the code RelayLink emails you, and approve. If Claude asks how to sign in, choose its own published identity; there is nothing else to enter. On a Team or Enterprise plan, an owner adds it once under Organization settings → Connectors and each member presses Connect.
Settings → Instructions for Claude applies to every conversation. A project's own instructions apply only inside that project. Use the chat apps version.
Each tool can be set to Always allow, Needs approval or Blocked, under Customize → Connectors → RelayLink → Tool permissions. Allowing the reading tools, such as whoami and memory_search, is low-risk; leave memory_add and memory_forget on Needs approval until you have seen what gets saved, and do not allow every tool at once.
In a new chat, check RelayLink is switched on under + → Connectors, ask "Which RelayLink account am I connected to?", then run the two-assistant test below.
Worth knowing
From Claude: custom connectors, Claude: using connectors, Claude: personalization.
Checked 7 Sep 2026. Connected and used on 7 Sep 2026, through Developer mode on chatgpt.com. It works there and not in the phone apps, and OpenAI's own pages disagree about which plans can save.
On chatgpt.com, turn on Settings → Security and login → Developer mode (on a work plan an admin may have to allow it, and it can sit under Settings → Apps → Advanced settings). Then open chatgpt.com/plugins, press +, give it a name, paste the address above, choose OAuth, sign in with the code RelayLink emails you, and approve.
Settings → Personalization: turn on customization and paste it into Custom instructions. It applies to every chat, in up to 1,500 characters on the Free and Go plans and 5,000 on paid ones. A project's own instructions replace these inside that project. Use the chat apps version.
ChatGPT asks you to confirm each action that writes, and you can allow a tool for the rest of one conversation; a new chat asks again. That is the right amount of caution for memory: approve saves as they come.
Start a chat on chatgpt.com, pick Developer mode and RelayLink from the + menu, ask "Which RelayLink account am I connected to?", then run the two-assistant test below.
Worth knowing
From OpenAI: Developer mode, OpenAI: Developer mode and MCP apps, OpenAI: custom instructions.
Checked 8 Sep 2026. Used with RelayLink on 8 Sep 2026, connected with a key. Signing in from /mcp was added on 11 Sep 2026 and is tested against the sign-in document Claude Code publishes, not yet from Claude Code itself; the key still works if it does not finish.
Run the command below, then type /mcp in Claude Code, choose relaylink and follow it to your browser. RelayLink emails you a code; enter it and approve. The approval page names claude.ai, which is where Claude Code publishes who it is, and says it will send you back to an app on this computer. Already connected RelayLink on claude.ai? Sign Claude Code in with the same Claude subscription and it is there already.
Terminal
claude mcp add --transport http --scope user relaylink https://relaylink.ai/mcp
Your personal ~/.claude/CLAUDE.md applies in every project; a repository's own CLAUDE.md applies only there. This matters more in Claude Code than anywhere: it keeps only the first 2 KB of the instructions RelayLink sends when it connects, and the memory rule is further down, so this is how Claude Code learns it. Use the coding tools version.
Claude Code asks the first time each tool runs. To stop being asked for reading, add mcp__relaylink__whoami and mcp__relaylink__memory_search to permissions.allow in your settings, and leave memory_add and memory_forget asking until you trust what gets saved. Avoid allowing mcp__relaylink__*: that covers sending too.
Start a new session, run /mcp to see RelayLink connected, ask "Which RelayLink account am I connected to?", then run the two-assistant test below.
Worth knowing
RELAYLINK_API_KEY in your shell profile (never in a file you commit), and add RelayLink with claude mcp add-json --scope user relaylink '{"type":"http","url":"<address>","headers":{"X-RelayLink-Key":"${RELAYLINK_API_KEY}"}}' instead. That is how we used it on 8 Sep.RELAYLINK_API_KEY is not set where Claude Code starts, it sends the variable's name instead of a key, and RelayLink refuses the connection.claude mcp login relaylink, and on a machine with no browser, such as over SSH, --no-browser prints the address to open instead. Its documentation describes both; we have not tried them.From Claude Code: MCP, Claude Code: memory files, Claude Code: its sign-in document.
Checked 10 Sep 2026. From Cursor's own documentation.
Make a key on your account's keys page and set it as the environment variable RELAYLINK_API_KEY. Add the entry below to ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one, and restart Cursor so it sees the variable.
~/.cursor/mcp.json
{
"mcpServers": {
"relaylink": {
"url": "https://relaylink.ai/mcp",
"headers": { "X-RelayLink-Key": "${env:RELAYLINK_API_KEY}" }
}
}
}
Settings → Rules, under User Rules, applies to every project. For one project, a rule in .cursor/rules/ with alwaysApply: true; Cursor also reads a project's AGENTS.md. Use the coding tools version.
From Cursor 3.6 the default, Auto-review, can run a tool without asking. For RelayLink, allow only the reading tools - relaylink:whoami and relaylink:memory_search in the mcpAllowlist of ~/.cursor/permissions.json - so that saving, forgetting and sending still ask.
Open Agent chat, ask "Which RelayLink account am I connected to?", then run the two-assistant test below.
Worth knowing
From Cursor: MCP, Cursor: rules.
Checked 11 Sep 2026. From OpenAI's own Codex documentation and the sign-in document Codex publishes, both read on 11 Sep 2026.
Add the lines below to ~/.codex/config.toml, which the Codex command line and IDE extension share, then run codex mcp login relaylink. Your browser opens RelayLink: enter the code it emails you and approve. The approval page names chatgpt.com, which is where Codex publishes who it is, and says it will send you back to an app on this computer.
~/.codex/config.toml
[mcp_servers.relaylink]
url = "https://relaylink.ai/mcp"
startup_timeout_sec = 30
default_tools_approval_mode = "writes"
~/.codex/AGENTS.md applies everywhere; a repository's AGENTS.md adds to it. Codex reads them when a session starts. Use the coding tools version.
The default_tools_approval_mode = "writes" line makes Codex ask before any tool that is not read-only, so saving and sending ask and reading does not. Codex always asks before a tool marked destructive.
Start a new session, ask "Which RelayLink account am I connected to?", then run the two-assistant test below.
Worth knowing
codex mcp add relaylink --url <address> writes the first two lines for you. It does not sign in, so run codex mcp login relaylink after it.RELAYLINK_API_KEY and add env_http_headers = { "X-RelayLink-Key" = "RELAYLINK_API_KEY" } to the entry. That takes the variable's name, not the key, and if the variable is not set where Codex runs, it connects without a key and RelayLink refuses it. Run codex mcp logout relaylink first, or the sign-in is used instead of the key.startup_timeout_sec line allows for it.CODEX_HOME says otherwise.From Codex: MCP, Codex: AGENTS.md, Codex: its sign-in document.
Checked 10 Sep 2026. From Google's own Gemini CLI documentation.
Export your key as RELAYLINK_API_KEY in the shell you start Gemini CLI from, then run the command below. It adds the same entry you could write into ~/.gemini/settings.json by hand.
Terminal
gemini mcp add --scope user --transport http --header 'X-RelayLink-Key: ${RELAYLINK_API_KEY}' relaylink https://relaylink.ai/mcp
~/.gemini/GEMINI.md applies everywhere; a GEMINI.md in a project adds to it. Gemini CLI sends them with every prompt. Use the coding tools version.
Gemini CLI asks before each tool call and offers to allow one tool or a whole server. Allowing the reading tools is fine. Do not set trust: true on RelayLink: it skips every prompt, sending included.
Start gemini in a folder you have trusted, ask "Which RelayLink account am I connected to?", then run the two-assistant test below.
Worth knowing
gemini mcp add saves to the current project unless you pass --scope user.Checked 11 Sep 2026. From the VS Code and GitHub documentation and the sign-in document VS Code publishes, read on 11 Sep 2026.
Run MCP: Open User Configuration from the command palette and add the entry below. The first time RelayLink is used, VS Code asks to sign in: allow it, enter the code RelayLink emails you in the browser page it opens, and approve. The approval page names vscode.dev, which is where VS Code publishes who it is. In chat, choose Local as the session target.
User mcp.json
{
"servers": {
"relaylink": {
"type": "http",
"url": "https://relaylink.ai/mcp"
}
}
}
For every workspace, an instructions file in ~/.copilot/instructions beginning with applyTo: "**"; for one repository, .github/copilot-instructions.md. VS Code also reads AGENTS.md and CLAUDE.md. Use the coding tools version.
Copilot asks before each tool call and lets you allow it once, for the session, for the workspace or always. Keep memory_add and memory_forget to once or the session until you trust what gets saved, and leave global auto-approve off.
In agent mode with the Local target, ask "Which RelayLink account am I connected to?", then run the two-assistant test below.
Worth knowing
"headers": { "X-RelayLink-Key": "${input:relaylink-key}" } to the entry, and an input with that id, "type": "promptString" and "password": true to the file's inputs: VS Code asks for the key once and stores it securely. The Copilot session target cannot use a server that needs a key.From VS Code: MCP configuration, VS Code: MCP authorization, VS Code: custom instructions, VS Code: its sign-in document.
Checked 10 Sep 2026. From Cognition's own Devin documentation.
Windsurf is now Devin Desktop, and its agent is Devin Local. Run the command below with your key in place of your-key; it saves the entry to your user settings in ~/.config/devin/mcp_config.json.
Terminal
devin mcp add -s user relaylink https://relaylink.ai/mcp -H "X-RelayLink-Key: your-key"
~/.config/devin/AGENTS.md applies everywhere; a project's AGENTS.md, or a rule in .devin/rules/ with trigger: always_on, applies there. Use the coding tools version.
Devin Local asks before every tool call by default. To stop being asked for reading, add mcp__relaylink__whoami and mcp__relaylink__memory_search to permissions.allow, and leave the rest asking.
Start a Devin Local session, ask "Which RelayLink account am I connected to?", then run the two-assistant test below.
Worth knowing
~/.codeium/windsurf/mcp_config.json describe it.From Devin: MCP configuration.
Checked 11 Sep 2026. From Zed's own documentation and the sign-in document Zed publishes, read on 11 Sep 2026.
Add the entry below inside context_servers in ~/.config/zed/settings.json. With no key in the entry, Zed asks you to sign in when it first connects: enter the code RelayLink emails you in the browser page it opens, and approve. The approval page names zed.dev, which is where Zed publishes who it is, and says it will send you back to an app on this computer.
settings.json
"context_servers": {
"relaylink": {
"url": "https://relaylink.ai/mcp"
}
}
~/.config/zed/AGENTS.md applies everywhere. In a project, Zed uses the first rules file it finds, such as .rules, AGENTS.md or CLAUDE.md. Use the coding tools version.
Zed confirms each tool call by default. Keep it that way for RelayLink, or allow only the reading tools as mcp:relaylink:whoami and mcp:relaylink:memory_search under agent.tool_permissions.
Open the agent panel, ask "Which RelayLink account am I connected to?", then run the two-assistant test below.
Worth knowing
"headers": { "X-RelayLink-Key": "your-key" } to the entry. Zed cannot read it from the environment, so the key sits in that file as text.From Zed: MCP, Zed: instructions, Zed: its sign-in document.
Checked 10 Sep 2026. From Cline's own documentation.
Set your key as the environment variable RELAYLINK_API_KEY, open MCP Servers → Configure in Cline, and add the entry below. Keep the type line: without it Cline tries an older kind of connection.
MCP settings
{
"mcpServers": {
"relaylink": {
"type": "streamableHttp",
"url": "https://relaylink.ai/mcp",
"headers": { "X-RelayLink-Key": "${env:RELAYLINK_API_KEY}" },
"autoApprove": []
}
}
}
A file in ~/Documents/Cline/Rules applies everywhere; .clinerules/ in a project applies there. Cline also reads AGENTS.md. Use the coding tools version.
Cline's auto-approve setting for MCP servers can let tools run without asking. Turn it off, or list only the reading tools in autoApprove, so saving and sending still ask.
Ask "Which RelayLink account am I connected to?", then run the two-assistant test below.
Worth knowing
${env:RELAYLINK_API_KEY}; in Cline's command-line tool that is unconfirmed, so put the key in directly there.From Cline: MCP, Cline: rules.
People ask about these, so here is what their own documentation says. We have not run RelayLink in any of them, and as that documentation stands, none can connect to it today. Their instructions can still carry the rule as a reminder, but a reminder cannot save anything: keep saving from an assistant that is connected.
Checked 10 Sep 2026, from Google: custom apps in Gemini.
Checked 10 Sep 2026, from xAI: Grok connectors.
Checked 10 Sep 2026, from Microsoft: connecting Copilot to other services.
Checked 10 Sep 2026, from Perplexity: custom remote connectors.
Checked 10 Sep 2026, from Mistral: MCP connectors.
Using another AI?
| What you need | Settings may call it | What to check |
|---|---|---|
| A connection to RelayLink | Apps, Connectors, Integrations, Tools, MCP servers | Can it add a custom remote MCP server by address, and use its tools? Signing in through the app works today from Claude and ChatGPT. Anything else has to let you add a request header named X-RelayLink-Key, holding a key from your account; one that can only send a key as Authorization: Bearer cannot connect yet. |
| Instructions that persist | Custom instructions, Preferences, Rules, Global instructions, Agent instructions | Do they apply to every conversation, or only inside one project? |
An AI having its own memory does not mean it can connect to RelayLink. And a model being available to developers does not mean the chat app built on it can use outside tools.
Add the short rule below to its persistent instructions, then ask which RelayLink account it is connected to, give it a real preference to save, and ask for it back in a fresh conversation.
The short version
Use my RelayLink memory for context about me. Save lasting facts about me with memory_add, replacing outdated ones. Leave out anything temporary, private or sensitive. Tell me something is saved only after RelayLink confirms it, and tell me if a save fails.
Paste the rule at the start of each conversation, or put it in a reusable project, custom assistant or agent that carries instructions.
Instructions alone cannot save anything, so the rule there is only a reminder. Save from an app that can connect, or carry what matters over by hand. Never paste your RelayLink key into a chat or an instruction.
Test it
Use a preference you really have, so the test leaves something useful behind.
In your first assistant, ask: "Which RelayLink account am I connected to?" It should name your account and say shared memory is on.
Tell it a real preference and ask it to keep it: "Remember that I like the conclusion before the reasoning." It should confirm in RelayLink's own words: saved to RelayLink memory.
Check it arrived: your account settings list the line, and which assistant saved it.
Open your second assistant, start a fresh conversation, and ask: "What do you know about me from RelayLink?" It should find the preference.
Correct it in either one ("Actually, I like the detail first"), check that the line changed rather than doubled, then delete it if it was only a test.
It worked when RelayLink shows it: the line in your settings, with the assistant that saved it. An assistant saying “I’ll remember” is not the same thing.
Memory or handoff
Shared memory is for lasting facts about you. Where a piece of work stands belongs in a handoff: say “Save where we left off in RelayLink” in one assistant and “Pick up where I left off” in another. Keeping them apart is what keeps memory short enough to be useful.
When it does not work
Remove RelayLink from that app and add it again. Many apps keep the list of tools from when you first connected, and reconnecting or signing in again does not refresh it, so tools added since then appear only after a fresh add.
A coding tool that signs in (its steps above say whether it does) opens RelayLink in your browser, emails you a code, and hands the connection back to the tool when you approve. That hand-back goes to the computer the browser is on, so a tool running somewhere else, such as over SSH or in a container, may not receive it; a key always works there, sent in a header named X-RelayLink-Key. The other coding tools cannot sign in to RelayLink yet and use a key from the start. If one keeps asking even with a key set, the key is not reaching it, usually because the environment variable holding it is not set where the tool starts.
It has to arrive in a header named X-RelayLink-Key. A tool that sends it as Authorization: Bearer is presenting a sign-in rather than a key, and RelayLink refuses a sign-in it did not issue. The same happens if the tool also holds an old sign-in for RelayLink, so log that out first.
That is the app's own safety prompt for tools that write, and it is worth keeping. Some apps let you allow a tool for a conversation. We do not suggest allowing every tool from every server without looking.
Ask "Which RelayLink account am I connected to?". If the answer is wrong, remove RelayLink from that app and connect again, signing in with the address you meant, or give it a key made in the right account. Connected apps in your account lists every assistant that holds access.
You chose Only when I ask. Say "remember this" in your own words when you want something kept, or switch to As we work, too in settings.
Shared memory starts off. Turn it on in your account settings, or ask your assistant to switch it on for you.
Ask your assistant to tidy them: it can find them with memory_search and remove the extras with memory_forget, or replace an old line with a new one. You can delete any line yourself in settings.
Each keeps its own copy. Forgetting in an app's own memory does not delete the RelayLink line, and deleting the RelayLink line does not reach the app's memory. Ask the assistant to forget it in both, or delete the line in settings.
Each RelayLink service keeps its own accounts and its own memory, and answers to its own name. A line saved in one is not in the other; ask which account you are connected to in the conversation where it matters.
Who can read it
Shared memory is readable by the assistants you have connected to your RelayLink account, and by you in your settings. It is never put into a message you send, and the people you correspond with never see it.
It is off until you switch it on. Every line shows which assistant saved it and whether it was your own words, and you can delete any line or all of them. RelayLink keeps what your assistants are told to save; it cannot see an AI provider’s own memory, and deleting a line here does not delete a copy an assistant keeps in its own.
The privacy policy says what is kept and for how long, and connected apps lists every assistant that holds access to your account.
Create your account now and it is ready right away — nothing to wait for, nothing to redo.