Ownchats

How to save a ChatGPT chat with images and code

Reviewed .

A conversation can contain several different things: text, code, a displayed image, an uploaded file, and links to sources. Saving the text does not automatically save all of those assets. Before choosing a method, decide which originals a reader needs and which formatting must remain usable.

For example, a PDF with a visible diagram may be sufficient for reading, while a developer needs code that can be copied without altered characters. An image filename or placeholder records that an image existed, but it cannot substitute for the image. Treat the transcript and its companion files as related parts of the handoff.

What each method can preserve

Expected behavior to check, not guaranteed fidelity
MethodImages and attachmentsCode and structure
Copy and pasteImages depend on selection and the destination; plain text excludes them. File labels do not copy file contents.Text can survive, but indentation, tables, and speaker labels may need repair.
Browser print to PDFRendered images may appear if loaded and printable. A pictured attachment is not an embedded original file.Visual code may wrap or clip; test text selection and copy behavior.
ChatGPT share linkSupported images or uploads may be included, depending on features and permissions.Hosted shared content, with scope determined by the sharing option; no self-contained local file.
Official account exportInspect the delivered ZIP for actual assets; references alone do not establish inclusion.Account-history source data, followed by local inspection or conversion.
Export extensionDepends on the product, format, and accessible source. Review missing-asset warnings.Formatting and extraction vary; inspect the selected branch and message order.
Ownchats 1.0ChatGPT images are placeholders, not embedded image originals. Uploaded files retain names, not their contents.Designed to preserve code blocks and language, tables, links, and lists; math is LaTeX text.

These differences explain why a file can have the right number of messages and still be unsuitable. A message might contain a figure that never arrived in the output, or a code block whose opening line is present but whose final lines were clipped.

Preserve code through a manual copy

Copy each important code block separately into a plain text editor as well as keeping it in the transcript. Record its language and which answer it came from. Compare indentation, blank lines, quotes, hyphens, and backslashes. Rich text editors can introduce substitutions that are hard to spot visually.

If you make a Markdown copy, place code inside fenced blocks and verify the opening and closing fences. An unclosed fence can make the remainder of a conversation look like code. Keep prose and commands separate so readers do not accidentally copy a speaker heading into a script.

Do not execute exported code merely to prove that it copied correctly. A character-level comparison is useful without running commands. If you later test the code, do so as a separate review of its behavior and environment, not as an export-completeness check.

Keep images as companion originals

Where the interface provides a download for an image you need, keep that file separately and verify it opens. For a user-uploaded image, your original local file is a useful companion. Give each asset a descriptive name and note which message refers to it. Avoid silently replacing an unavailable image with a different one.

A screenshot can record what was visible, including a chart and its caption, but label it as a screenshot. It may have lower detail than the original, and text inside it may not be searchable. For an image-heavy conversation, a short asset list can make missing originals clear to the recipient.

For uploaded documents, retain the source document if the recipient needs its pages, spreadsheet formulas, or embedded images. A chat answer describing a file is a separate document. Even a perfect transcript of that description does not reproduce the uploaded file.

Print only after checking the loaded content

Review the intended branch from first prompt to last answer and wait for images and responses to finish loading. Open Chrome's print dialog, choose Save as PDF, and inspect the preview. Chrome printing help, checked 2026-10, documents the browser controls.

Look for clipped code at the right edge and tables split across pages. Search the saved PDF for an early and a middle phrase, then copy an important code block into a text editor for comparison. If earlier messages are absent, use the long-conversation troubleshooting guide before adjusting cosmetic settings.

Know what a share link gives the reader

OpenAI's sharing help, checked 2026-10, says supported images and uploads can appear, with availability depending on the sharing experience and permissions. Review the shared preview. Personal-account links are available to anyone with the link; a hosted view is not a private offline archive.

A link can be convenient when visual presentation matters, but you still need a local copy if the handoff must remain readable without the hosted page. Check whether you shared a single assistant response or the intended full conversation. Do not infer the scope from the link's title.

Inspect the official archive before conversion

Request account data using OpenAI's export instructions, checked 2026-10. Preserve the downloaded ZIP and inspect what it actually contains. The help page establishes a history-and-account archive, not a guarantee that every linked asset becomes a portable original.

Use the free chat export viewer to read a compatible archive and download one conversation as Markdown or HTML. Check its output for asset references and warnings. A local converter cannot recover an image from a reference if the image itself is absent or inaccessible.

If a table matters more than the surrounding prose, the chat table to Excel tool offers a separate route for copied table data. Verify column headings and row alignment against the answer. Keep that spreadsheet beside the transcript instead of presenting it as the whole conversation.

Ownchats' specific version 1.0 boundary

Ownchats is designed for ChatGPT and Claude, with Word, PDF, Markdown, and HTML outputs generated in the browser. PDF uses Chrome printing. It compares source messages with written messages, exports the current branch, and keeps warnings about unavailable content.

In version 1.0, ChatGPT images are placeholders. Do not choose it on the assumption that it bundles the original images. Keep those separately. Uploaded files retain names, and formulas are LaTeX text rather than guaranteed typeset equations. Image handling in a future version is planned; it is not a current 1.0 capability.