retsurf

A real web browser for your handheld

Wikipedia, Hacker News and itch.io games on the handheld already in your pocket, or on your desk. retsurf is built on the Servo engine and driven from a gamepad or a keyboard, no mouse needed.

Latest release Nightly build date GitHub stars Downloads

PortMaster · Android · Windows · macOS · Linux · Miyoo Mini

retsurf on an Anbernic RG35XX SP, the on-screen keyboard raised under the address field
retsurf start page on a Powkiddy RGB30
Powkiddy RGB30, ROCKNIX
retsurf start page on a TrimUI Smart Pro S
TrimUI Smart Pro S, Knulli
And more Also tested on Anbernic RG35XX SP, Miyoo Mini Flip, Retroid Pocket Flip 2 and Unihertz Titan 2. See tested devices

See it in action

Browsing on a Miyoo Mini Flip with 128 MB of RAM
Browsing on a Powkiddy RGB30
Playing slither.io on a Powkiddy RGB30

Built for handhelds

Gamepad and keyboard navigation

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.

Link hints over a Wikipedia article, each labeled with gamepad buttons

Game mode and web games

Game mode hides the browser and routes input to the page. Input maps turn buttons and sticks into keys, mouse or raw gamepad input, with an editor built in.

Pages get WebGL 2, the Gamepad API, Web Audio and IndexedDB, plus shims that let Emscripten exports from itch.io run.

Quick Access over the WebGL racer HexGL in game mode

Runs on low-end hardware

No display server needed: SDL2 draws through whatever the firmware ships. OpenGL ES where there is a GPU, a software renderer where there is not, down to a Miyoo Mini with 128 MB of RAM.

A Miyoo Mini Flip showing Wikipedia in retsurf, held in two hands

Also in the box

  • 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.
  • Ad and tracker blocking at the network level with Brave's adblock-rust, EasyList and EasyPrivacy.
  • Tabs, bookmarks, history and downloads in one full-screen menu; downloads run in the background.
  • Real page zoom from 50% to 300% that reflows the layout, per tab.
  • Audio and video for direct files and embedded players; streaming sites that need MSE are not supported yet.
  • In-app updates from GitHub, with stable, beta and nightly channels.
  • Written in Rust on Servo, SDL2 and egui.

Screenshots

The start page with a search field and a speed dial
Start page
The on-screen keyboard under the search field
On-screen keyboard
Quick Access at the right edge over Hacker News
Quick Access
The input map editor
Input maps
A Wikipedia article in reader view
Reader view
The button bindings: each browser action with its gamepad and keyboard gestures
Controls

Install

Pick the package for your device. All builds, including nightlies, are on GitHub Releases.

DevicePackageWhere it goes
PortMaster handheldsArkOS, dArkOS, EmuELEC, Knulli, muOS, ROCKNIX retsurf-portmaster.zip ports folder, e.g. /roms/ports/
Miyoo Mini Flip and PlusOnionOS retsurf-onionos.zip App/Retsurf/ on the SD card
Miyoo Mini Flip and PlusAllium retsurf-allium.zip Apps/Retsurf.pak/ on the SD card
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