Import from Medium
Bring your Medium history into Scripto with scripto articles import — point it at a single file, the posts/ folder, or the export root.
scripto articles import brings your existing Medium stories into Scripto, parsing each into Scripto’s semantic HTML — headings, code blocks, lists, and figures preserved with their original image URLs.
Get your Medium export
In Medium: Settings → Account → Download your information. The export is a zip; unzipped, each post is one HTML file under a posts/ folder.
Import
Point import at a single file, the posts/ folder, or the unzipped export root:
scripto articles import ./medium-export # batch: every story in the export
scripto articles import ./medium-export/posts # just the posts folder
scripto articles import ./posts/2024-06-25_My-Story-abc123.html # a single file Preview first
scripto articles import ./medium-export --dry-run Would import 7 stories:
• My first post
• A deep dive on …
Skipping 12 (responses/drafts). A dry run touches the network for nothing — it just reports the plan.
What’s skipped, and how to include it
By default, Medium responses/comments and drafts are skipped. Override per run:
| Flag | Effect |
|---|---|
--include-responses | Also import responses/comments. |
--include-drafts | Also import Medium drafts. |
--publish | Publish imported stories immediately (default: import as drafts). |
Imports land as drafts with their original Medium publish date preserved on createdAt, so your library reads in chronological order. updatedAt is set to now, so a freshly imported story still surfaces at the top of the list. A Medium draft can’t be published on import (it never had a public date) — it stays a draft even with --publish.
After importing
Each imported story is a normal Scripto article — edit it section by section, refine the Brief, and re-publish. Because the original image URLs are already absolute (Medium-hosted), they render and re-import without re-hosting.
--publish mints a slug and goes live immediately for every non-draft story in the batch. Use --dry-run first to confirm the plan, especially on a large export.
Next
- Import, don’t paste — the publish-and-import model in the other direction.
- POST /api/articles/import — the endpoint behind this command.
- The ordered-sections model — how an imported body is split for editing.