> ## Documentation Index
> Fetch the complete documentation index at: https://help.memoryplugin.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Importing Your Chats

> Export and upload your chat history from supported platforms

export const ArticleInfo = ({author, lastUpdated}) => {
  const authorAvatar = author === 'Alara' ? '/images/author-alara.jpg' : author === 'asad' ? '/images/author-alara.jpg' : null;
  const formatDate = dateInput => {
    if (!dateInput) return '';
    if (typeof dateInput === 'string' && !dateInput.match(/^\d{4}-\d{2}-\d{2}/)) {
      return dateInput;
    }
    try {
      const date = new Date(dateInput);
      const now = new Date();
      const diffTime = Math.abs(now - date);
      const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24));
      if (diffDays === 0) return 'today';
      if (diffDays === 1) return '1 day ago';
      if (diffDays < 7) return `${diffDays} days ago`;
      if (diffDays < 30) return `${Math.ceil(diffDays / 7)} week${Math.ceil(diffDays / 7) > 1 ? 's' : ''} ago`;
      if (diffDays < 365) return `${Math.ceil(diffDays / 30)} month${Math.ceil(diffDays / 30) > 1 ? 's' : ''} ago`;
      return `${Math.ceil(diffDays / 365)} year${Math.ceil(diffDays / 365) > 1 ? 's' : ''} ago`;
    } catch {
      return dateInput;
    }
  };
  return <div style={{
    display: "flex",
    alignItems: "center",
    gap: "8px",
    marginBottom: "16px",
    padding: "8px 12px",
    backgroundColor: "var(--ifm-color-emphasis-100)",
    borderRadius: "6px",
    fontSize: "14px",
    color: "var(--ifm-color-content-secondary)",
    border: "1px solid var(--ifm-color-emphasis-200)",
    opacity: "0.8"
  }}>
      <div style={{
    width: "40px",
    height: "40px",
    borderRadius: "50%",
    background: authorAvatar || "linear-gradient(45deg, #4F46E5, #7C3AED)",
    display: "flex",
    alignItems: "center",
    justifyContent: "center",
    color: "white",
    fontWeight: "bold",
    fontSize: "18px"
  }}>
        {authorAvatar ? <img src={authorAvatar} alt={author} style={{
    width: "100%",
    height: "100%",
    borderRadius: "50%"
  }} /> : author?.[0]?.toUpperCase()}
      </div>
      <div>
        <div style={{
    fontWeight: "400",
    fontSize: "14px"
  }}>Written by <span style={{
    fontWeight: "600"
  }}>{author}</span></div>
        <div style={{
    fontSize: "14px"
  }}>Last updated <span style={{
    fontWeight: "600"
  }}>{formatDate(lastUpdated)}</span></div>
      </div>
    </div>;
};

<ArticleInfo author="Alara" lastUpdated="2026-08-08" />

## Two ways to add chat history

**Upload chat exports** (ChatGPT, Claude, TypingMind). Export your history and upload it, ZIP archives exactly as the platform gives them to you, or the JSON files inside. This is the fastest way to bring in your entire back catalog in one pass.

**Online sync** (ChatGPT, Claude, Grok, DeepSeek, TypingMind, and Gemini). Sync conversations from your account through the browser extension, no file download needed. Sync keeps new and updated conversations current in the background, so you never export again by hand. For a large first-time import it is slower than a file upload (days rather than hours), so treat it as a fallback when you can't export JSON.

One thing to be clear about: **ongoing sync of browser-based chats always runs through the browser extension**, on every platform. File uploads are a one-time import; if you want new conversations to keep flowing in, install the [extension](/integrations/browser-extension) and leave sync on. MCP clients and the Custom GPT can recall your history, but they never capture it.

There's one more source: coding tools. Claude Code, Codex, and Cursor conversations live in local files, and the [desktop app](/integrations/desktop-app) syncs them into your chat history the same way the extension handles browser chats.

<Note>
  Gemini online sync is experimental and can break when Gemini's web UI changes.
</Note>

<Note>
  Both methods are opt-in. Chats are never uploaded or synced without your explicit permission.
</Note>

## How to export your chats

<AccordionGroup>
  <Accordion title="Export from ChatGPT" icon="message">
    Follow the <a href="https://help.openai.com/en/articles/7260999-how-do-i-export-my-chatgpt-history-and-data" target="_blank" rel="noopener noreferrer">ChatGPT export guide</a>, then upload the **`conversations.json`** file. ChatGPT splits large exports into several files (`conversations-001.json`, `conversations-002.json`, and so on). Select all of them at once.
  </Accordion>

  <Accordion title="Export from Claude" icon="message">
    Follow the <a href="https://support.claude.com/en/articles/9450526-how-can-i-export-my-claude-data" target="_blank" rel="noopener noreferrer">Claude export guide</a>, then upload the export ZIP (or the **`conversations.json`** inside it).

    Claude splits large exports into several ZIP files, linked from a small **manifest** file. Open each link in the manifest in your browser (each link works only once), let the ZIPs download, then upload all of them together. Don't upload the manifest itself; it only contains download links, and the importer will tell you so if you try.
  </Accordion>

  <Accordion title="Export from TypingMind" icon="message">
    Follow the <a href="https://docs.typingmind.com/cloud-sync-and-backup/export-import-data" target="_blank" rel="noopener noreferrer">TypingMind export guide</a>. Upload the files from the **`chunks/`** folder (`chats_part_1.json`, `chats_part_2.json`, and so on), each chunk file separately.
  </Accordion>

  <Accordion title="Sync from Grok, Gemini, or DeepSeek" icon="rotate">
    Grok, Gemini, and DeepSeek come in through **online sync** in the browser extension, no file export needed.

    Open the extension on the platform, go to the Sync panel, and start syncing. For Grok, branching conversation threads are supported: we sync the active branch of each conversation, the one you currently see in the app.
  </Accordion>
</AccordionGroup>

## File size limits

* **ZIP**: up to 512 MB per file. Upload export archives exactly as you downloaded them; we find the conversation files inside.
* **JSON**: up to 1 GB per file.
* Upload multiple files at once (useful for ChatGPT's split exports, Claude's multi-ZIP exports, or for splitting a very large export yourself).
* Upload the wrong file from an export (like `memories.json`) and the error tells you what that file holds and which one to upload instead.

## Uploading your file

<Steps>
  <Step title="Open the Imports page">
    Go to your [Chat History dashboard](https://memoryplugin.com/dashboard/chat-history) and click **Import chats**. On the Imports page, click **New Import**.
  </Step>

  <Step title="Choose your export source">
    Pick the platform you exported from: ChatGPT, Claude, or TypingMind.
  </Step>

  <Step title="Choose an import limit (Core plan)">
    On the Core plan you choose how many chats to import, so you can stay within quota:

    * **100, 200, 500, or 1,000 chats**, quick presets
    * **All chats**
    * **Custom amount** (up to 50,000)

    On the Pro plan there is no limit to set. See [Import quota](#import-quota) below.
  </Step>

  <Step title="Upload your files">
    Drag and drop your export ZIP or JSON files, or click **Browse files** to select them.
  </Step>

  <Step title="Let it process">
    Processing starts automatically and keeps running if you close the tab. Large exports can take hours, so we email you when processing starts and again when it finishes, including any files that ran into problems. Track progress any time on the [Imports page](/features/chat-history/dashboard#imports-page): percentage complete, conversations and messages processed, and any skipped items.
  </Step>
</Steps>

<video controls playsInline className="w-full aspect-video rounded-xl" src="https://mintcdn.com/memoryplugin/9o9T_0PzzkacB3w3/videos/import-chat-history.mp4?fit=max&auto=format&n=9o9T_0PzzkacB3w3&q=85&s=e9b7bf95af98d3492e6fe131c981d285" data-path="videos/import-chat-history.mp4" />

<Info>
  **Duplicates are handled for you.** Re-uploading the same file, or syncing conversations you already imported, won't create duplicates in your chat history.
</Info>

## Import quota

<Info>
  **Core plan**: up to 500 searchable chats, from a single account on one platform (ChatGPT or Claude).

  **Pro plan**: unlimited chats, across all your accounts and platforms.
</Info>

Got years of history? Importing only your most recent conversations keeps you within the Core quota and gets you started faster. Import more later, or upgrade to Pro for everything.

To free up Core quota, **exclude** old or unwanted chats from the Browse view. Each excluded chat frees one slot. See [Managing your chats](/features/chat-history/dashboard#browse).

<Note>
  Once imported, manage your uploads and conversations in the [Dashboard](/features/chat-history/dashboard).
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="View Dashboard" icon="table-columns" href="/features/chat-history/dashboard">
    Monitor imports, browse chats, search your history, and view activity
  </Card>

  <Card title="Using Chat History" icon="sparkles" href="/features/chat-history/using">
    Add chat history context to your AI conversations
  </Card>
</CardGroup>
