# ⇅ Portage
**A universal browser data swap.** Export your setup to a portable JSON bundle. Import it anywhere. Chrome to Firefox, Firefox to Chrome, or a fresh install of the same browser. No cloud, no lock-in.
[Website](https://portage.pvrz.lol)
---
## Why
Browsers intentionally make it annoying to leave their ecosystem. Portage is a straightforward, open-source tool that reads what it's allowed to read, dumps it into a human-readable `*.portage.json` file, and rebuilds it on the other side. Because the export is just plain JSON, it bridges the gap between competing browsers or lets you easily migrate to a new machine.
## What transfers
Extensions are locked out of reading local profile files straight from your hard drive, so Portage routes everything through official WebExtension APIs.
| Data | Export | Import |
|---|---|---|
| **Bookmarks** | ✅ Full tree | ✅ Recreated in a `Portage Import` folder |
| **History** | ✅ URLs, titles, timestamps | ✅ Re-added (Firefox keeps full metadata; Chrome limits to URLs) |
| **Cookies** | ✅ Full export | ✅ Re-injected to keep you logged in |
| **Open tabs** | ✅ Active & recently closed | ✅ Reopened instantly |
| **Reading list** | ✅ Exported (Chrome only) | ✅ Chrome: Reading list · Firefox: Bookmarks folder |
| **Extensions** | ✅ Exported as a text checklist | ℹ️ Cannot auto-install (see below) |
### The Extension Workaround (`.txt`)
There is no API for an extension to silently install another extension. To handle this, Portage generates a secondary `portage-