Skip to content

savedpixel/savedpixel-instant-mhtml-server

Repository files navigation

savedpixel-instant-mhtml-server

License: MIT macOS Local Server

savedpixel-instant-mhtml-server is an open-source macOS app and local HTTP server for turning captured MHTML, HTML, CSS, JavaScript, and static website exports into working private local web apps.

It gives every imported capture a real http://127.0.0.1 origin so ES modules, dynamic imports, workers, root-relative assets, fonts, and framework bootstraps work locally instead of breaking under file://.

Companion app for the SavedPixel HTML CSS JS Extractor Chrome extension.

Why this exists

Modern websites are not just static files.

When an exported site is opened directly:

file:///Users/you/Downloads/captured-site/index.html

the browser applies file:// security rules. That often breaks:

  • ES modules
  • dynamic import()
  • root-relative assets
  • web workers
  • font loading
  • framework bootstraps
  • scripts that expect a real HTTP origin

This app fixes that by serving each imported export from an isolated loopback server:

http://127.0.0.1:48231/index.html

The files stay local, private, and runnable.

What it helps with

Use this app when you need to:

  • preview SavedPixel exports locally
  • run captured HTML, CSS, JavaScript, fonts, and assets from a real local origin
  • open exported sites without breaking modern JavaScript
  • inspect captured projects through a native macOS workspace
  • debug missing assets, remote references, and request issues
  • organize captured websites into a reusable local library
  • avoid uploading private captures to remote preview tools

How it works

website capture or ZIP
  -> import into local library
  -> start isolated 127.0.0.1 server
  -> serve files with correct MIME types
  -> open index.html in Chrome
  -> inspect files, diagnostics, previews, and request logs

Features

  • Native macOS SwiftUI + AppKit app
  • Drag-and-drop folder and ZIP import
  • Per-project local HTTP server
  • Correct MIME types for .js, .mjs, .wasm, fonts, images, and assets
  • ES module, dynamic import, worker, and root-relative path support
  • Recursive file browser with source and image previews
  • Diagnostics for missing assets, unresolved cid: links, and remote references
  • Live request log
  • Favorites, collections, tags, search, sort, trash, restore, and rename
  • One-click Chrome launch
  • Copy served URL to clipboard
  • Fully local and private

Installation

git clone https://github.com/savedpixel/savedpixel-instant-mhtml-server.git
cd savedpixel-instant-mhtml-server
bash scripts/build-app.sh

The build script handles the release build, .app bundle creation, icon generation, and ad-hoc code signing.

You can also run the checker:

swift run SavedPixelHTMLExtractorChecks

Quick start

  1. Build and open the app.
  2. Import a captured website folder or ZIP.
  3. Select index.html.
  4. Click Open in Chrome.
  5. Use the workspace, diagnostics, and request log to inspect the capture.

Sample captures

The repo includes sample OpenAI Platform exports under:

data/extracted-sites/

These were used to verify the difference between broken file:// behavior and working local HTTP behavior.

Architecture

The project uses:

  • Swift Package Manager
  • SwiftUI + AppKit
  • Hummingbird embedded HTTP server
  • loopback-only per-project server sessions
  • safe path normalization
  • directory traversal blocking
  • optional serve-time HTML rewriting
  • local JSON metadata snapshots

More details are in:

docs/architecture/
docs/product/
docs/verification/

Development

# Build the app
bash scripts/build-app.sh

# Run checks
swift run SavedPixelHTMLExtractorChecks

# SwiftPM build only
swift build

Status

Current version:

1.0.0 build 18

This is the first public v1 macOS companion release. The core import, library, local serving, preview, diagnostics, and Chrome launch flows are working.

Planned improvements include duplicate detection, import progress UI, more Chrome launch modes, expanded diagnostics, and cross-platform considerations.

Related projects

GitHub description

Native macOS app and local HTTP server for turning captured MHTML, HTML, CSS, JavaScript, and static website exports into working private local web apps on 127.0.0.1.

GitHub topics

savedpixel, mhtml, html-export, local-server, macos-app, swiftui, appkit, hummingbird, web-archive, website-capture, static-site, developer-tools, frontend-tools, es-modules, local-preview

Author

SavedPixel
GitHub: @savedpixel

License

MIT License. See LICENSE.

Copyright © 2026 SavedPixel. All rights reserved.

Made for people who want captured web moments to actually work again.