hyperb is a browser for small server-driven applications that put content first. Most apps don't need flashy gradients, rounded corners, or piles of hard-to-maintain client-side JavaScript, and few are worth a dedicated native app. With hyperb, the server sends a basic layout of components along with their data. A visually neutral client renders it, collects the user's input, and sends it back to the server.
It's ideal for server admin dashboards, remote controls for hardware devices, interfacing with a sandboxed WASM module, and for simple form-driven apps where content matters more than appearance: a food ordering service, a club enrollment status page, or a shipping monitor.
hyperb opens hyperb:// addresses, which can be served over HTTP or iroh, or can point to (local or HTTP) paths to WASM modules.
Applications are servers that send metadata, element, or signal messages. These modify the basic layout and local state of the components the browser renders. For WASM modules, the server role is played by the sandboxed program running locally.
SPEC.md is a thin layer on top of the hypereffect protocol. There is no client-side computation, and the browser defines one homogeneous style. The server provides only the layout skeleton and the basic behavior of the elements, and the client's only way to communicate with the server is by sending action messages. In the case of WASM modules they are executed locally inside the hyperb app, but play the role of a server.
The demo apps are WASM modules (crates/demoapps), hosted at hyperb://hypereffect.github.io/hyperb/apps/<app>.wasm. Some of these can actually be useful in practice, others are just demos with fake data. Either way because they don't interact with real servers, but only with a WASM sandbox, they don't represent the true powers of hyperb, only a small part of it.
The links below open the demo apps in the web renderer instance, but the same URLs can be open in the desktop, Android or TUI renderers.
qr: generate QR codestextutils: a pocket knife of small tools for text, data, numbers and morepomodoro: a focus timerchart: generate charts from pasted databillsplit: split a billfinance: an RPN financial calculatorgrammar: a grammar checker, using Harperrestaurant: reserve a tabledbclient: a SQL client over fake tablesminecraft: a fake Minecraft server's admin consolesaas: a fake product's admin panelsmarthome: a simulated houseworldclock: live clocks across time zones, and a time converter
Grab the files from the latest release, or use the commands below, which all download the latest one.
Windows
Manually: download the windows-x64-setup- .exe from the releases page and run it. It adds a Start menu entry and an uninstaller and registers the hyperb:// and web+hyperb:// links.
One-liner (PowerShell), does the same: downloads the installer and runs it.
$u=(irm https://api.github.com/repos/hypereffect/hyperb/releases/latest).assets.browser_download_url -match 'windows-x64-setup-v'; iwr $u -OutFile $env:TEMP\hyperb-setup.exe; Start-Process $env:TEMP\hyperb-setup.exe
No installer (PowerShell): downloads the .zip, unzips it to %LOCALAPPDATA%\hyperb and you start it with hyperb.bat. No Start menu entry and no hyperb:// links.
$u=((irm https://api.github.com/repos/hypereffect/hyperb/releases/latest).assets.browser_download_url -match 'windows-x64-v.*\.zip$')[0]; iwr $u -OutFile $env:TEMP\hyperb.zip; Expand-Archive -Force $env:TEMP\hyperb.zip $env:LOCALAPPDATA\hyperb; & $env:LOCALAPPDATA\hyperb\hyperb.bat
Linux
Flatpak (any distro), .flatpak, installs it for your user:
curl -fL "$(curl -s https://api.github.com/repos/hypereffect/hyperb/releases/latest | grep -o 'https://[^"]*linux-x86_64[^"]*\.flatpak')" -o /tmp/hyperb.flatpak && flatpak install --user -y /tmp/hyperb.flatpak
Debian / Ubuntu (Debian 13+, Ubuntu 24.04+), .deb:
curl -fL "$(curl -s https://api.github.com/repos/hypereffect/hyperb/releases/latest | grep -o 'https://[^"]*linux-amd64[^"]*\.deb')" -o /tmp/hyperb.deb && sudo apt install /tmp/hyperb.deb
Fedora and other RPM distros, .rpm (needs GTK 4.12+):
curl -fL "$(curl -s https://api.github.com/repos/hypereffect/hyperb/releases/latest | grep -o 'https://[^"]*linux-x86_64[^"]*\.rpm')" -o /tmp/hyperb.rpm && sudo dnf install /tmp/hyperb.rpm
AppImage, saves it to ~/.local/bin and runs it:
mkdir -p ~/.local/bin && curl -fL "$(curl -s https://api.github.com/repos/hypereffect/hyperb/releases/latest | grep -o 'https://[^"]*linux-x86_64[^"]*\.AppImage')" -o ~/.local/bin/hyperb.AppImage && chmod +x ~/.local/bin/hyperb.AppImage && ~/.local/bin/hyperb.AppImage
It needs FUSE (otherwise run it with --appimage-extract-and-run).
Plain binary (.tar.gz), for when you already have GTK 4.12+ installed:
mkdir -p ~/.local/bin && curl -fL "$(curl -s https://api.github.com/repos/hypereffect/hyperb/releases/latest | grep -o 'https://[^"]*linux-x86_64[^"]*\.tar\.gz')" | tar -xz -C ~/.local/bin hyperb-desktop && ~/.local/bin/hyperb-desktop
From source (see Building from source for the dependencies). This installs the desktop app for your user, with its icon, and makes it the handler of hyperb:// and web+hyperb:// links:
git clone https://github.com/hypereffect/hyperb && cd hyperb && just desktop-install
macOS
Apple Silicon only, and the app is unsigned.
Homebrew, installs from the tap and clears the quarantine flag for you:
brew install --cask andunieee/hyperb/hyperb
Manually: download the macos-arm64 .zip, double-click it in Finder to unzip, and drag hyperb.app to Applications. On first launch right-click it and choose Open.
One-liner (Terminal), downloads and unzips it into /Applications. ditto is the archive tool that comes with macOS, and it keeps the app bundle intact where a plain unzip can break it:
curl -fL "$(curl -s https://api.github.com/repos/hypereffect/hyperb/releases/latest | grep -o 'https://[^"]*macos-arm64[^"]*\.zip')" -o /tmp/hyperb.zip && ditto -x -k /tmp/hyperb.zip /Applications
If macOS refuses to open it because it is from an unidentified developer, run:
xattr -d com.apple.quarantine /Applications/hyperb.app
Android
Builds from source and installs on every device connected through adb (see Building from source):
just android
Web
Nothing to install: open https://hypereffect.github.io/hyperb/.
just lists the recipes. The main ones:
just desktop # the GTK4 app
just tui # the terminal app
just demo pomodoro # the desktop app on a demo app
just demo-serve # the demo apps over HTTP on 127.0.0.1:9001, for the web app
just web # the web app with hot reload on http://127.0.0.1:3000