> ## 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.

# How do I import my chat history?

> Upload your ChatGPT, Claude, TypingMind, or Grok export, or sync chats with the extension

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-07-12" />

Export your history from the platform as JSON, then upload it on the [Chat History dashboard](https://memoryplugin.com/dashboard/chat-history) under the **Import** tab. That's the fastest way to bring in your whole back catalog. For chats going forward, turn on [auto-sync](/questions/enable-auto-sync) in the extension so you never export by hand again.

## Steps

<Steps>
  <Step title="Export from your platform">
    * **ChatGPT:** 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> and grab `conversations.json`. Large exports come split into several files; select all of them at once.
    * **Claude:** 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> and grab `conversations.json`.
    * **TypingMind:** upload each file from the export's `chunks/` folder separately.
    * **Grok:** export from your <a href="https://x.ai/account" target="_blank" rel="noopener noreferrer">xAI account settings</a>.
    * **Gemini or DeepSeek:** no file export; these come in through [online sync](/questions/enable-auto-sync) in the extension.
  </Step>

  <Step title="Upload it">
    On the [Chat History dashboard](https://memoryplugin.com/dashboard/chat-history), open the **Import** tab, click **New Import**, pick your platform, and drop in the JSON file (up to 1 GB per file, multiple files at once is fine).
  </Step>

  <Step title="Let it process">
    Processing keeps running even if you close the tab. Large exports can take hours; track progress in the Imports tab.
  </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" />

## Worth knowing

* **Duplicates are handled for you.** Re-uploading the same file, or syncing chats you already imported, won't create duplicates.
* **On the Core plan** you pick how many chats to import (quota is 500 searchable chats from one platform). Pro has no limit. Importing your most recent conversations first is the easy way to stay within quota.
* **File upload is a one-time import.** Ongoing capture always runs through the [browser extension's sync](/questions/enable-auto-sync); MCP clients and the Custom GPT can recall your history but never capture it.

For per-platform details and quota management, see the [full importing guide](/features/chat-history/importing).

## Related

<CardGroup cols={2}>
  <Card title="Turn on auto-sync" icon="rotate" href="/questions/enable-auto-sync">
    Keep new conversations flowing in automatically
  </Card>

  <Card title="Search past chats" icon="magnifying-glass" href="/questions/search-past-conversations">
    Put the imported history to work
  </Card>
</CardGroup>
