S.M.I.P.P.O. = Structured Mirroring of Internet Pages and Public Objects
Modern website copier — consumes everything fast. Hippos don't nibble. They vacuum.
S.M.I.P.P.O. (Structured Mirroring of Internet Pages and Public Objects) is a command-line website copier and scraper that captures websites exactly as they appear in your browser. Create complete offline mirrors with all assets, styles, and dynamic content preserved. Perfect for website duplication, archiving, and offline browsing.
📚 View complete documentation →
Install globally:
npm install -g smippoCapture a single page:
smippo https://example.comMirror a site (3 levels deep):
smippo https://example.com --depth 3Or use without installing:
npx smippo https://example.comSmippo provides several commands for different use cases:
smippo <url>— Capture and mirror websites with full fidelitysmippo capture <url>— Take screenshots of web pagessmippo serve <directory>— Serve captured sites locallysmippo continue— Resume an interrupted capturesmippo update— Update an existing mirror
Run smippo with no arguments to start the interactive guided mode.
- 🚀 Vacuum Architecture — Parallel workers consume sites rapidly
- 📸 Complete Fidelity — Captures pages exactly as rendered, including CSS-in-JS, dynamic content, and lazy-loaded images
- 🎯 Smart Filtering — Filter by URL patterns, MIME types, and file sizes. Respects robots.txt
- 🌐 Built-in Server — Serve captured sites locally with directory browsing
- 📊 HAR Files — Generates HTTP Archive files for debugging and replay
- 💻 Programmatic API — Use Smippo in your Node.js applications
For complete documentation, guides, and API reference, visit smippo.com:
- Installation Guide — Detailed installation instructions
- Commands Reference — All available commands and options
- Configuration — Filtering, scope control, performance tuning
- Guides — Output structure, link rewriting, troubleshooting
- Programmatic API — Use Smippo in your Node.js code
- Examples — Real-world use cases
- Node.js 18 or later
- Chromium (automatically downloaded on first install)
Contributions are welcome! Whether it's bug reports, feature requests, or pull requests — all contributions help make Smippo better.
Please read our Contributing Guide for details on development setup, code style guidelines, and the pull request process.
Quick start:
git clone https://github.com/pouyanafisi/smippo.git
cd smippo
npm install
npm testMIT — feel free to use this in your own projects.
- Built with Playwright for reliable browser automation
- CLI powered by Commander.js and @clack/prompts
- Inspired by classic website copiers like HTTrack