A simple, fast web browser built using qtwebengine (chromium), that is configured and extended using lua.
This web browser is just a stack of web views that can be controlled using lua. Don't expect a full featured web browser, expect the opposite.
- No url bar
- use dmenu, rofi, fzf in a terminal, etc. for url input
- No tab ui
- use dmenu, rofi, etc. to show a list of tabs on key
- use tabbed (X11) with multiple windows
- use window manager with multiple windows
- No persistant history
- save it in a file on UrlChanged event and show as completion for your url input
- same as above but in a sqlite db instead
- No notifications
- Call notify-send (or whatever) on NotificationReceived event
- No splits
- use a window manager
- No buttons
- define key bindings
- No built-in ad blocker
- filter host-names
- No settings page
- write some lua
- No incognito/private window
- create a window with a custom user data directory and delete it when window is closed
- No chromium/web extensions
- inject javascript into pages from your lua config
- No built-in cryptocurrency
- add it if you want it
- No built-in AI
- add it if you want it
Any feature you want, you implement yourself. Either from scratch or build on top of a built-in module.
- Vi-style keybindings
- Hints: f-key search for links
- Plain-text history
- Statusline showing the current keymode, url and tabs count
- Tabline showing a list of tabs
Using the builtin modules, you can get something like this:

Or do your own thing, I don't care.
I built this for myself and people like me who enjoy tinkering with their tools. Out of the box, it is almost unusable... by design.
- Add this repo to your flake:
github:phenax/null-browser - Or build it in a directory:
nix build github:phenax/null-browser - Or run it without installing:
nix run github:phenax/null-browser - Or add to profile:
nix profile install github:phenax/null-browser
- Clone
- Run
make buildto build it sudo make install PREFIX=/usr/localto install it
WIP
