A programmable, privacy-first browser built on
GPUI and
PolkaVM.
UI components by gpui-ui-kit.
Native on macOS. No Electron.
Install · Features · Build · Architecture · License
Build from source (see below).
Browsing
- WebView tabs powered by WKWebView (WebKit)
- Cmd-click to open links in background tabs
- Find in page (Cmd+F)
- Session restore across launches
- Browsing history with configurable retention (session only, 8h, 24h, 7d, 30d)
- Favicon and live page titles in the tab sidebar
- Reader mode for distraction-free article reading
Privacy
- Content blocking via WKContentRuleList — blocks before the network request, not after
- EasyList, AdGuard, uBlock Origin, Fanboy, and Peter Lowe filter lists (440k+ rules)
- Per-site shield toggle
- Tab isolation mode — each tab gets its own cookie/storage sandbox
- Session contexts — named browsing sessions with separate data stores
- Cosmetic filtering with element count badge
Sandboxed Apps (.dot)
- Run apps as browser tabs in a PolkaVM sandbox
- Framebuffer apps (games, emulators) with full pixel-level rendering
- SPA bundles — sandboxed single-page web apps in
.prodformat .dotdomain resolution — load apps from IPFS via on-chain name registry- Capability broker controls what each app can access
Wallet
- BIP-39 mnemonic key management with encrypted keystore
- Polkadot: Smoldot light client,
window.polkadotinjection - Ethereum: EIP-191 signing, Helios light client
- Bitcoin: BIP-137 signing, Kyoto light client (compact block filters)
window.bitcoin(Unisat-compatible) andwindow.ethereumbridges
- Rust 1.91+
- macOS 13+ (Ventura or later)
- Xcode Command Line Tools:
xcode-select --install
git clone https://github.com/replghost/epoca.git
cd epoca
cargo build -p epoca --release
./target/release/epocaOr use the convenience script:
./run-release.sh# Open a .prod bundle (sandboxed app)
./target/release/epoca path/to/app.prod
# Open a .dot app from IPFS
./target/release/epoca dot://doomgame.dot
# Open a URL
./target/release/epoca https://example.comcrates/
epoca/ binary entry point
epoca-core/ workbench shell, tabs, sidebar, session management
epoca-sandbox/ PolkaVM runtime (guest app execution)
epoca-shield/ content blocking (WKContentRuleList compiler)
epoca-protocol/ ViewTree serialization (host <> guest)
epoca-broker/ capability/permission broker
epoca-dsl/ ZML parser and evaluator
epoca-chain/ light clients (Polkadot, Ethereum, Bitcoin), DOTNS resolver
epoca-wallet/ key management and signing
epoca-hostapi/ host API dispatch (JSON + SCALE transports)
Early release. The core browsing shell works on macOS with content blocking, session restore, and sandboxed app support. Expect rough edges.
