SMIPPO
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 →](https://smippo.com)**
## Quick Start
Install globally:
```bash
npm install -g smippo
```
Capture a single page:
```bash
smippo https://example.com
```
Mirror a site (3 levels deep):
```bash
smippo https://example.com --depth 3
```
Or use without installing:
```bash
npx smippo https://example.com
```
## Commands
Smippo provides several commands for different use cases:
- **`smippo `** — Capture and mirror websites with full fidelity
- **`smippo capture `** — Take screenshots of web pages
- **`smippo serve `** — Serve captured sites locally
- **`smippo continue`** — Resume an interrupted capture
- **`smippo update`** — Update an existing mirror
Run `smippo` with no arguments to start the interactive guided mode.
## Features
- **🚀 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
## Documentation
For complete documentation, guides, and API reference, visit **[smippo.com](https://smippo.com)**:
- **[Installation Guide](https://smippo.com/getting-started/installation)** — Detailed installation instructions
- **[Commands Reference](https://smippo.com/commands)** — All available commands and options
- **[Configuration](https://smippo.com/configuration)** — Filtering, scope control, performance tuning
- **[Guides](https://smippo.com/guides)** — Output structure, link rewriting, troubleshooting
- **[Programmatic API](https://smippo.com/api/programmatic)** — Use Smippo in your Node.js code
- **[Examples](https://smippo.com/getting-started/examples)** — Real-world use cases
## Requirements
- Node.js 18 or later
- Chromium (automatically downloaded on first install)
## Contributing
Contributions are welcome! Whether it's bug reports, feature requests, or pull requests — all contributions help make Smippo better.
Please read our [Contributing Guide](CONTRIBUTING.md) for details on development setup, code style guidelines, and the pull request process.
Quick start:
```bash
git clone https://github.com/pouyanafisi/smippo.git
cd smippo
npm install
npm test
```
## License
[MIT](./LICENSE) — feel free to use this in your own projects.
## Acknowledgments
- Built with [Playwright](https://playwright.dev/) for reliable browser automation
- CLI powered by [Commander.js](https://github.com/tj/commander.js) and [@clack/prompts](https://github.com/natemoo-re/clack)
- Inspired by classic website copiers like [HTTrack](https://www.httrack.com/)