retsurf

Web browser for any device

A web browser built on the Servo engine, driven by a gamepad, a keyboard or touch. Sites open as apps and games from its start page.

Handhelds · Android · Kindle · Windows · macOS · Linux

Flink hintsEsccancel

retsurf on an Anbernic RG35XX SP, the on-screen keyboard raised under the address field

On many devices

From a Miyoo Mini with 128 MB of RAM and no GPU to Android phones, Kindle e-readers and desktops. Packages for PortMaster, OnionOS, spruceOS, NextUI and more.

See it in action

Browsing on a Miyoo Mini Flip: 128 MB of RAM, no GPU
Browsing on a Powkiddy RGB30
Playing slither.io on a Powkiddy RGB30

Sites as apps and games

Your start page is a launcher

Every bookmark is a tile on the start page. Open it as a site, as an app without the browser around it, or as a game in game mode.

Filter by sites, apps, games or your own tags, sort by hand, by name or by last opened, and lay it out as a grid or a list in three sizes.

Every bookmark keeps its own settings, from the user agent and dark mode to game mode, and closing an app or a game takes you back to the start page.

The start page: bookmarks as site, app and game tiles under filter tabs, the search field at the bottom
itch.io's HTML5 games opened as an app, with no browser toolbar
itch.io as an app
A bookmark's options in Quick Access: open, launch as game, rename, tags, move, remove
Launch as site, app or game
The start page as a list: each bookmark with its site, launch badge and tags
List layout with tags

Game mode

Play browser games from itch.io and similar sites, with WebGL 2, gamepad and audio.

Game mode hides the browser and routes input directly to the page. Input maps let you map controls to keyboard keys, mouse or gamepad input, with an editor built in.

It can also cut the game out of the page, fit it pixel-perfectly to the screen and apply CRT, LCD or upscaling shaders.

Quick Access over the WebGL racer HexGL in game mode, drawn through a CRT shader
The HexGL menu through the crt-lottes shader: a curved screen with scanlines
The HexGL menu as drawn, without a shader
Shaders: none and crt-lottes, drag to compare
The input map editor
Input map editor

Built for any input

Gamepad, keyboard and touch

A virtual cursor on the stick or D-pad, Vimium-style link hints that label every link with the buttons or keys that open it, and an on-screen keyboard as a grid or a wheel.

Every browser action can be bound to a gamepad gesture or a keyboard shortcut, in the app, with tap, hold and chord. On phones and e-readers, touch taps and scrolls the page.

Link hints over a Wikipedia article, each labeled with gamepad buttons
The on-screen keyboard under the search field
On-screen keyboard
The wheel keyboard: letters in groups around a center, picked with the stick and typed with the face buttons
Wheel keyboard
The button bindings: each browser action with its gamepad and keyboard gestures
Button bindings

Read in comfort

Made for small screens

Reader view strips pages down to their articles, even logged-in and dynamic ones.

Dark pages use sites' own dark themes, or force dark on sites that have none. Page zoom from 50% to 300% reflows the layout, per tab.

Ads and trackers are blocked at the network level with Brave's adblock-rust, EasyList and EasyPrivacy.

A Wikipedia article in reader view
lobste.rs forced dark
Forced dark
Hacker News as the site draws it
As the site draws it

Also in the box

Install

Pick the package for your system. All builds, including nightlies, are on GitHub Releases and only there; gh attestation verify FILE --repo mxmgorin/retsurf confirms a file came from there.

OSPackageWhere it goes
PortMasterArkOS, dArkOS, EmuELEC, Knulli, muOS, ROCKNIX retsurf-portmaster.zip ports folder, e.g. /roms/ports/
OnionOSMiyoo Mini Plus and Mini Flip retsurf-onionos.zip App/Retsurf/ on the SD card
AlliumMiyoo Mini Plus and Mini Flip retsurf-allium.zip Apps/Retsurf.pak/ on the SD card
spruceOSMiyoo, TrimUI and Anbernic handhelds aarch64, Miyoo Mini root of the SD card
NextUI, NX ReduxTrimUI Smart Pro, Smart Pro S and Brick retsurf-nextui.zip root of the SD card
CrossMix-OSTrimUI Smart Pro retsurf-crossmix.zip root of the SD card
Kindlejailbroken, started from KUAL or KOReader retsurf-kindle.zipnightly build root of the Kindle's USB storage
Android retsurf-android-arm64.apk sideload it
Linux x86_64, aarch64 unpack and run
Windows retsurf-windows-x86_64.zip unpack and run
macOS retsurf-macos-aarch64.dmg open it and run Retsurf.app

Early days. retsurf is in early development: expect bugs and sites that do not render yet. Not sure about your device? See how it runs for others in Tested devices.

Get involved

⌂