Upstream-first
i2tor launches an isolated Tor Browser profile instead of maintaining a custom browser fork.
Tor Browser plus I2P, without a browser fork
.i2p through I2P and keep everything else on Tor Browser.
i2tor is a Go desktop launcher that composes Tor Browser and Java I2P without
patching Tor Browser, forking its source, or changing system-wide proxy settings.
Independent project. Not affiliated with, endorsed by, or sponsored by the Tor Project or the I2P Project.
i2tor launches an isolated Tor Browser profile instead of maintaining a custom browser fork.
It generates a PAC file so .i2p goes to the local I2P HTTP proxy and other traffic stays on Tor Browser.
The current product path targets Linux, with AppImage, AUR, and Nix install options.
Install
The primary desktop package. Download it from GitHub Releases and run the native GUI.
chmod +x i2tor-*.AppImage
./i2tor-*.AppImage run
Open releases
The recommended Arch package is i2tor-bin.
yay -S i2tor-bin
Run directly or install into your profile.
nix run github:SethMcGuire/i2tor -- run
nix profile install github:SethMcGuire/i2tor
If you do not want the AppImage, use the Linux release binary.
chmod +x i2tor-*-linux-x86_64
./i2tor-*-linux-x86_64 run
How It Works
i2tor owns a dedicated Tor Browser profile, starts I2P, waits for the local
I2P HTTP proxy at 127.0.0.1:4444, starts the bundled Tor daemon from Tor Browser,
waits for the SOCKS proxy at 127.0.0.1:9150, writes proxy.pac, and then launches the browser.
If I2P is not ready, the browser is not launched. That keeps .i2p from silently falling back somewhere else.
Security And Limits
Downloads are verified before extraction or execution, and extraction rejects unsafe archive paths.
Routing stays inside the launcher-managed browser profile instead of touching system-wide proxy settings.
Windows and macOS paths exist in the codebase, but Linux is the primary implementation target right now.
Localhost access is off by default because it weakens the normal local-service isolation posture.
Project Links