浏览器

ChatGPT Exporter

试用

Export your ChatGPT conversations to local files — titles, timestamps and, if you ask for it, full message text. Built for the TinkerClaw fork — github.com/globalcaos/tinkerclaw. Invoke it BY NAME — "chatgpt-exporter-ultimate: export my conversations" — so ordinary talk about ChatGPT cannot trigger it. Rides the ChatGPT session your browser already holds — browser relay or a bookmarklet you paste yourself. It reads NO access token, no cookie jar and no credential file. The relay enumerates your conversation list and writes JSON and Markdown copies to a private directory; it defaults to index-only (titles and timestamps, no message text) and refuses to run without an explicit confirmation of destination and scope. The bookmarklet can also find conversations inside Projects, by running searches against your history, and downloads one JSON file after three dialogs. Relay destinations are resolved through symlinks before anything is written, so a relay export cannot land in a synced folder

它能做什么

One of dozens of skills and plugins in **TinkerClaw** — a self-improving OpenClaw fork that's been running 24/7 for months.

技能文档

ChatGPT Exporter Ultimate

One of dozens of skills and plugins in TinkerClaw — a self-improving OpenClaw fork that's been running 24/7 for months.

Your entire ChatGPT history, exported in seconds — not tomorrow.

Deleting your exports — --purge

An export is a plaintext copy of every conversation you have had. Leaving it on disk is usually a bigger risk than the API call that created it, so there is a cleanup command:

./scripts/export.sh --purge

This is destructive. It permanently deletes the export directory tree. It prints the target path and its size first, requires you to type PURGE to confirm, and refuses to run non-interactively. It removes local copies only — your ChatGPT account is untouched.

What You Get

  • Every conversation. Projects, chats, timestamps, roles, metadata. Nothing left behind.
  • Instant. No 24-hour wait. No email with a ZIP of cryptic JSON. Just your data, now.
  • Context preserved. Conversations stay readable. Who said what, when, and why — all intact.

How It Works

Install the skill. Run it. Get your full export. That's it.

ChatGPT's built-in export makes you wait a day and hands you raw JSON. This skill respects your time.

Won't: email you a ZIP file 24 hours later like you requested declassified government documents.

👉 Explore the full project: github.com/globalcaos/clawdbot-moltbot-openclaw

Clone it. Fork it. Break it. Make it yours.


⚠️ Read This Before Your First Export

An export is a plaintext copy of everything you have ever said to ChatGPT, sitting on your disk. Whatever you pasted into a chat is in there: API keys, passwords, medical questions, legal problems, salary numbers, your employer's confidential material, other people's personal data.

Once written, those files are ordinary files. Anything running as your user can read them, your backup tool will pick them up, and a sync client will happily push them to a cloud you did not think about. So:

  • Export to a local, non-synced directory. Not Dropbox, not Drive, not iCloud, not a repo.
  • The scripts create the directory mode 0700 and files 0600. Don't loosen that.
  • Delete the export when you are done with itrm -rf .
  • If you only need to know what you talked about, use index-only mode: titles, ids and timestamps, with no message content fetched at all.
  • Never hand a raw export to anyone, including another AI, without reading it first.

This skill will not export anything until you say yes, and it tells you what it is about to do before it asks.

Short version: your conversations travel from chatgpt.com to your disk, and nowhere else. There is no server of ours in this picture. Longer version, because you should not take that on trust:

Where the data goes. Each path fetches from chatgpt.com/backend-api and writes files locally. There is no upload, no telemetry, no analytics, no third-party endpoint of any kind. The only network destination in the entire package is chatgpt.com.

What gets written, and where.

PathDefault outputFiles
scripts/export-conversations.ts (relay)~/chatgpt-export/index.json, summary.md, per-conversation .json + .md
scripts/export.sh (token)~/chatgpt-export/index.json, per-conversation .json + .md
scripts/bookmarklet.js (browser)your browser's Downloads folderone chatgpt-export-.json

Directories are created 0700, files 0600. You can override the destination on both scripts.

How it authenticates — and the honest part. ChatGPT has no public API for reading your own conversation history. The only way to do this is to talk to the same private endpoints the web app uses, as you. That is the skill's core mechanism, and there is no version of it that avoids touching your session. What we can do is minimise it, and we do:

  • Relay path — runs inside the page with credentials: 'include'. Reads no token at all.
  • Bookmarklet — cookie-first. It only reads /api/auth/session if the cookie call comes back 401/403, and that token stays in the function scope: never printed, never stored, never sent anywhere except back to chatgpt.com in an Authorization header.
  • Shell path — takes a token from CHATGPT_ACCESS_TOKEN or a hidden prompt. Passing it as a command-line argument is rejected, because argv is visible to every process via ps and gets saved to your shell history.

If handling a session token is not acceptable to you — a reasonable position — use the relay path or the bookmarklet, which never read one, or use ChatGPT's own 24-hour export instead.

Capabilities, and why each one is needed.

CapabilityWhyScope
NetworkList and fetch your conversationschatgpt.com/backend-api only. No other host, ever
Browser session (cookie)Authenticate as you — there is no other way inSame-origin, inside the page; not copied out
Session tokenFallback when cookie auth is rejected; the only option headlessIn memory / env var for the run. Never logged, never written to disk
File writeThe export itselfThe output directory you choose. 0700 dir, 0600 files
Shell execexport.sh runs curl and jqTwo fixed binaries, fixed arguments
Search endpointFind conversations inside Projects, which the list endpoint omits~65 short queries against your own history. Opt-in, skippable
Credentials on diskNone. Reads no keyring, no .env, no config, no cookie jar
Third-party servicesNone. No telemetry, no upload, no analytics
Privilege escalationNone. No sudo, no writes outside the output directory

The consent step — every path has one, in code.

  • export.sh prints the destination, what will be written and the sensitivity warning, then requires you to type export. Anything else aborts before a single byte is fetched.
  • bookmarklet.js opens a dialog stating that the file may contain credentials and other sensitive material. Cancel and nothing happens. Two further dialogs let you skip the Projects search and drop message bodies.
  • exportChatGPTConversations() throws unless the caller passes confirmed: true. An agent has to ask you first — installing this skill cannot turn into an unattended dump of your chat history.

The off switch. Both scripted paths check this before any network call or file write:

CHATGPT_EXPORT_DISABLE=1                       # disable for one command or one shell
touch ~/.openclaw/chatgpt-export.disabled      # disable permanently, machine-wide
rm ~/.openclaw/chatgpt-export.disabled         # allow again

With either in place, export.sh prints a notice and exits 0, and the TypeScript path throws. Neither fetches anything. In the browser, the off switch is cancelling the first dialog.

Scope controls. Full export is a choice, not the default behaviour you get by accident:

Controlexport.shrelay (.ts)bookmarklet
Preview without writing--dry-run
Cap how many--limit Nlimit: N
No message bodies--index-onlyindexOnly: trueCancel the third dialog
Skip Projects searchn/a (never searches)n/a (never searches)Cancel the second dialog
Choose destination-o DIRoutputDirbrowser Downloads

Usage

Prerequisites: Node with tsx, an OpenClaw browser relay attached to a Chrome/Chromium where you are logged into chatgpt.com.

Ask your agent: "Export my ChatGPT conversations." The agent must confirm the destination and the sensitivity warning with you, then call:

await exportChatGPTConversations({
  browserEvaluate,           // supplied by the agent's browser tool
  confirmed: true,           // only after the user has actually agreed
  outputDir: "~/chatgpt-export/2026-01-31",
  format: "both",            // "json" | "md" | "both"
  limit: 50,                 // optional cap
  indexOnly: false,          // true = titles/timestamps only, no message text
});

Without confirmed: true it throws and exports nothing.

2. Bookmarklet (browser only, includes Projects)

Prerequisites: Chrome DevTools, logged into chatgpt.com.

Open the console on chatgpt.com, paste scripts/bookmarklet.js, press Enter, and answer the three dialogs: export or not, search Projects or not, include message text or not. The result lands in your Downloads folder as a single JSON file. This is the only path that finds conversations inside Projects, and it does so by running ~65 short searches against your own history — that is the trade, and the dialog says so before it starts.

3. Shell script (headless / advanced — you supply the token)

Prerequisites: bash, curl, jq, and an access token you already have.

export CHATGPT_ACCESS_TOKEN='...'        # or let the script prompt you (input hidden)
./scripts/export.sh --dry-run            # count what would be exported, write nothing
./scripts/export.sh --index-only         # titles and timestamps only
./scripts/export.sh -o ~/private/chatgpt --limit 100

The token is never accepted as an argument. Use this path only if the two above do not fit your setup; they need no token at all.

Included Files

FilePurpose
scripts/export-conversations.tsBrowser-relay exporter. Consent-gated, off-switchable, no token read
scripts/bookmarklet.jsConsole/bookmarklet exporter. Three consent dialogs, cookie-first auth, finds Projects
scripts/export.shHeadless exporter using a token you supply. Consent prompt, off switch, 0700 output

That is the whole package — three scripts, no binaries, no installers, nothing that runs on its own. Everything the documentation above describes is in these files, and everything in these files is described above. If you find a claim here that the code does not do, that is a bug — open an issue on the repo.

相关技能

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván1 次安装

以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。

作者 johnpatternai21 次安装8 星标

把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。

作者 nssa.io1.0k 次安装47 星标

按用户明确指令,在得到大脑(Get笔记)中保存、搜索并管理笔记与知识库。

作者 iswalle763 次安装66 星标

从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。

作者 fly0pants

通过托管 OAuth 访问 Microsoft Graph Excel 接口,读写 OneDrive 中的工作簿、工作表、区域、表格与图表。

作者 byungkyu800 次安装42 星标

globalcaos 的更多技能

浏览全部技能

为 OpenClaw 智能体加上 JARVIS 风格的英式嗓音与冷面幽默,一条命令同步输出语音和紫色聊天气泡。

作者 globalcaos190 次安装4 星标

OpenClaw 原生 WhatsApp 通道:22 项消息与群组操作,叠加 Protocol v2 多智能体协同。

作者 globalcaos116 次安装3 星标

一个本地面板,统一追踪 Anthropic、Gemini、OpenAI、Manus 四家提供商的 token 用量与预算告警。

作者 globalcaos59 次安装

Stop sending 'format this JSON' to Opus. Stop sending 'cron job' to GPT. Billing-aware routing guide for choosing among the models already configured in your OpenClaw setup when assigning an agent, sub-agent or cron task — flat-rate first, metered only when justified, budget pressure respected. Not for picking models outside your configuration, and not a runtime proxy.

作者 globalcaos16 次安装

Your agent says 'done' — but did it check? Superpowers turns any OpenClaw agent into a disciplined engineer. Verification iron law (evidence before claims), three-agent code review (build → verify spec → verify quality), systematic debugging (4-phase root cause, three-strike rule), brainstorming gates (design before code), and anti-over-engineering rules. Use when: (1) coding tasks of any complexity, (2) debugging failures, (3) about to claim work is complete, (4) spawning sub-agents, (5) planning features, (6) reviewing code. Inspired by top coding agent methodologies, adapted for OpenClaw multi-agent architecture.

作者 globalcaos14 次安装

Read and search Outlook, inspect attachments, and create or edit drafts without any send endpoint. Uses one short-lived Microsoft Graph access token supplied on stdin for one run; it never stores credentials. Bulk mailbox export is opt-in.

作者 globalcaos23 次安装