Claude Desktop now runs with Context Mode: saving, memory and skills in the app you use

Launch6 min read

Thanks to the Claude Desktop team at Anthropic for a third-party inference setting that lets you choose where the app sends its requests, and thanks to the Context Mode community. Starting today, Claude Desktop connects to Context Mode with one command. You keep the app and your model. On a Mac, sign in to Claude Code first: the app uses that login. Every request then gets Saving, Memory, Skills, Instructions and Recall, and the console shows these turns as Claude Desktop. Turn on the app's own setting first, then run the Context Mode command.

TL;DR

Open the Console to get your workspace, then follow the steps below.

How to connect Claude Desktop to Context Mode

This post answers one question: how do you connect Claude Desktop to Context Mode? Pick a step to see the exact command and what it prints. These steps are for macOS.

Step
# Get the app: claude.com/download
# Then, in Claude Desktop:
Help → Troubleshooting → Enable Developer Mode
Developer → Configure Third-Party Inference…
  → Connection → Apply Changes

Download the app from claude.com/download. Then use Anthropic's own window, from the in-app configuration docs. The shortcut fills in this same window for you.

$ npx @context-mode/cli login
# opens the browser: sign in once
# then it offers the app picker

Sign-in gives this terminal a device key. If you pick Claude Desktop in the picker, it runs the same setup as the next step. You need only one of the two.

$ npx @context-mode/cli setup --agent claude-desktop
Claude Desktop (third-party gateway mode): ~/Library/Application Support/Claude-3p/configLibrary/<id>.json
  set inferenceProvider
  set inferenceGatewayBaseUrl = https://gateway.contextmode.ai
  set inferenceGatewayAuthScheme
  set inferenceCredentialHelper
  set inferenceCredentialHelperTtlSec
  set inferenceCustomHeaders (x-cm-device-key)
  set inferenceModels
  apply the "contextmode" configuration
  set deploymentMode = 3p in …/Claude-3p/claude_desktop_config.json
  helper ~/.context-mode/claude-desktop-cred.sh (prints your Claude Code login token from the keychain)
Done. Quit Claude Desktop fully (Cmd+Q) and open it again: it reads this configuration at launch.
See or change them in the app: Help → Troubleshooting → Enable Developer Mode, then Developer → Configure Third-Party Inference….

It names every key it sets and never prints a key or token. Add --dry-run to see the list with nothing written.

# not the red button: quit the app
Cmd+Q
# then open Claude Desktop again

Claude Desktop reads this configuration at launch. A closed window keeps the old route.

$ npx @context-mode/cli doctor
Gateway: https://gateway.contextmode.ai
Console: https://console.contextmode.ai
Reachable    ok
Device key   ok
Claude Desktop ok (…/configLibrary/<id>.json)

Then ask Claude anything in the Code tab. Your request shows on the console within a minute, named Claude Desktop.

1. Turn on the app's own setting

Claude Desktop has a built-in window for a third-party gateway. This is Anthropic's own way, and it is where you can see and change the entry later:

  1. Help → Troubleshooting → Enable Developer Mode.
  2. Developer → Configure Third-Party Inference… → Connection → Apply Changes.

The full steps are in Anthropic's in-app configuration docs.

2. Run the Context Mode command

npx @context-mode/cli setup --agent claude-desktop

It needs Node 20.12 or later. If this terminal is not signed in yet, run npx @context-mode/cli login first. It signs you in and stores a device key (cmdk_…) in ~/.context-mode/credentials.json with mode 0600.

Setup then writes the same entry you would make by hand, named contextmode, applies it, and switches the app to third-party mode. After the write it names the keys it set and the window where you can check them: Developer → Configure Third-Party Inference….

The gateway removes the device key before a request goes to Anthropic.

3. Quit with Cmd+Q and open it again

Claude Desktop reads this configuration only at launch. Close the window, and the app keeps running on the old route. Quit it fully with Cmd+Q, then open it again. On Windows or Linux, quit the app fully, not only the window.

4. Check it worked

npx @context-mode/cli status     # who is signed in, and each agent's setup
npx @context-mode/cli doctor     # check the config, the gateway and the device key

Then ask Claude anything. Your request shows on the console within a minute, named Claude Desktop.

Does Claude Desktop work with a gateway?

Yes. Claude Desktop has a third-party inference mode, and Anthropic documents it. In that mode the app sends its model requests to the address you set. Context Mode sits there, between the app and Anthropic. Its Code and Cowork tabs send the same requests as Claude Code, so they get the same features. Which login the Chat tab uses through the gateway is not verified yet.

What you get in Claude Desktop

Pick a feature to see one example in Claude Desktop. Each one works on every request the app sends through the gateway. We measured them on Claude Code, not on Claude Desktop, so this post quotes no number.

Feature
You, in the Code tab:
"run the tests and fix what fails"
# the full test log goes to your archive
# the model reads the failing test, not every line

Large tool output (logs, fetched pages, big files) stays out of the model's context. Works on every request; measured on Claude Code.

Monday, in the Code tab:
"We deploy to Render now, not Hetzner."
Thursday, a new conversation:
"Where do we deploy?"
Render. It was Hetzner before.

Rules, decisions and preferences come back in later sessions, so you do not repeat yourself. Code and Cowork turns are stored as Claude Code turns. The Chat tab is not verified.

You, in Claude Desktop:
"write the release notes for this sprint"
# your imported release-notes skill loads for this turn

Import skills once, for example from GitHub. They run from the gateway, so there is nothing to install on each machine.

// Console: Settings → Instructions
Keep answers short. No wall of text.
Never touch code or technical terms.

Write your rules once. Every Claude Desktop request carries them, on every machine. What you ask in the message comes first.

You, late in a long session:
"what did we decide about the quota check this morning?"
# the agent reads the decision back from the archive

Long history is archived, not lost. The agent asks for older work back when it needs it. Works on every request; measured on Claude Code.

$ git push origin main
# Claude Code, Codex: blocked by your rule
# Claude Desktop: not verified yet

Protect is enforced on Claude Code and Codex. On Claude Desktop it is not verified yet, so do not count on it to stop a command.

FeatureIn Claude DesktopMeasured on Claude Desktop
SavingYes, every requestNo (measured on Claude Code)
MemoryYes, stored as Claude Code turns; Chat tab not verifiedNo
SkillsYes, every requestNo
InstructionsYes, every requestNo
Recall and SearchYes, every requestNo
Active ContextYes, every requestNo
Thinking in CodeYes, every requestNo
ProtectNot verified yetNo
Session resumeNoNot applicable
"⏺ contextmode" lineNot verified in the appNo
Console nameClaude DesktopNot applicable

Memory for Claude Desktop

Each new conversation in Claude Desktop starts fresh. With Context Mode, what you told it last week comes back: "we deploy to Render", "use pnpm", "no default exports". The Code and Cowork tabs are Claude Code on the wire, so Memory stores their turns as Claude Code turns. When a value changes, the old one is closed, not deleted. Read how Memory works.

Skills and Instructions for Claude Desktop

Import a skill once, for example from GitHub. When a request fits it, its instructions load on their own, in Claude Desktop and in your other connected apps. Instructions are the rules you write yourself in the console: write them once and every request carries them. Read about Skills and Instructions.

Say this plainly

How to undo it

npx @context-mode/cli disconnect --agent claude-desktop

It removes the contextmode entry, applies the entry you had before, and puts the app back on its own sign-in. Quit with Cmd+Q and open it again.

Start now

Turn on the app's setting, run one command, quit with Cmd+Q. Open the Console to see your workspace.

npx @context-mode/cli setup --agent claude-desktop

One command and one picker connect Claude Code, Claude Desktop, Codex, Codex Desktop, T3 Code, OpenCode and Pi: see all of them. Each has its own post, with its makers' install first: the ChatGPT desktop app, Pi and T3 Code. Context Mode is under the Elastic License 2.0 (ELv2).

Get started free

Your coding agent costs less and remembers your project.

Start free: 1,000 requests, every feature, no card. After you sign in, the console gives you one command to connect your coding agent.

Read the docs