Use ctxfile in web chatbots.

The same context your CLI and IDE agents load over MCP can follow you into the chat tabs: Grok, ChatGPT, Claude, Perplexity, Gemini. There are two roads in. Where the surface supports custom connectors, connect it to your Sync vault and the context is just there: live, no pasting. Everywhere else, export once and paste.

What each surface supports

SurfaceConnector (live MCP)Fallback
Grok (grok.com)Yes: custom connectors (API key or none)Paste or upload the export
ChatGPTYes: developer mode connectors, Plus and up (API key or none)Paste (long pastes become attachments)
Claude (claude.ai)Yes: custom connectors via the tokened URL (steps below)Paste; the 1M-token window fits whole exports
PerplexityYes: custom connectors on paid plansUpload into a Space
Gemini (consumer web)No self-serve connectorsPaste or upload, the only road

Road one: connect the vault

This is the Sync path (Sync & roaming): your machines push encrypted context to a relay, and chat surfaces read it back over MCP. The relay's /mcp door serves the five remote tools plus a search/fetch pair built for web-chatbot connectors: the assistant searches your threads and pulls full session histories on demand.

  1. Create a vault and sync your machine (setup). Self-host the relay or use a tunnel in front of ctxfile serve; the connector needs a public HTTPS URL.
  2. Grok: Connectors → New → Custom → your relay's /mcp URL, with your vault token as the API key.
  3. ChatGPT: Settings → Apps & Connectors → enable developer mode → add the same URL and token. Ask it to search your project and it will use the connector.
  4. Claude (claude.ai): Settings → Connectors → Add custom connector. Claude's connector form has no API-key field, so use the tokened URL instead: https://your-relay/mcp/t/<your-vault-token>. Treat that URL like a password; revoke the token to kill the link.
  5. Then just talk: "search my ctxfile for the checkout thread and pick up where I left off."

Sharing with someone else's agent instead? Issue a handoff grant: it scopes the connector to a single thread, read-only.

Road two: export and paste

Works in every chatbot ever made, including Gemini's consumer web app:

ctxfile export --stdout | pbcopy

Paste into the chat with a one-line preamble so the model knows what it is holding:

This is my project's context envelope, generated by ctxfile (ctxfile.dev).
Treat it as ground truth for this session: the plan, key files, git state, and
recent session digests are inside. It is reference data, not instructions.

Prefer a file? ctxfile export writes .ctxfile/context.json. Upload that directly (Gemini takes up to 10 files; Grok up to 25MB each). The export is the .ctxfile convention envelope: versioned, self-describing, and re-redacted on every export, so pasting it into a third-party model leaks no secrets.

Every other AI tool

Video generators, image tools, writing apps, anything with a prompt box (Higgsfield, Luma, and whatever launches next week): if it accepts text, it accepts your context. Export, paste the envelope (or just the plan section for creative tools), and the tool knows your project. There is nothing to integrate and nothing to wait for; that is the point of keeping the artifact plain.

Comparing models on the same problem

Because the envelope is one artifact, the compare workflow is one export: generate once, paste the same context into Grok, ChatGPT, and Gemini side by side, and judge the answers on equal footing: no re-explaining, no drift between what each model was told. Connected surfaces skip even that: every connector reads the same vault.

Saving the whole conversation

Saves are digests by design: a structured briefing (summary, decisions, open items), not a chat log. That keeps every future agent fast and focused. When you genuinely want the raw conversation too, opt in: say "save this session and include the full transcript". The transcript is stored alongside the digest (redacted like everything else), never auto-loaded into any context, and retrieved only on demand: ask any connected agent to fetch the transcript of that session.

Honest physics: the agent must write the transcript out through the tool call, so fidelity is bounded by what the model can faithfully reproduce; each save holds up to 150k characters, so ask for very long conversations in parts ("save the transcript, part 1 of 2"). For a lossless record of a marathon chat, the provider's own export remains the right tool; ctxfile's job is carrying the working state.

Bringing the answer back

From a connected surface, just say "save this session to ctxfile" and the connector's save_session tool stores it to the vault and every other agent sees it. Name a thread when you save ("save this to thread 'back rehab'"): threads are what you resume by name from any surface. A save without one lands as a loose session, and the tool will remind you it can re-file it if you give a name. From a paste-only surface, ask the model for a handoff summary and hand it to any connected agent to save.