qutebrowser's primary maintainer, The-Compiler, is currently workingpart-time on qutebrowser, funded by donations.
To sustain this for a longtime, your help is needed! See theGitHub Sponsors page oralternativedonation methods for more information. Depending on your sign-up date andhow long you keep a certain level, you can get qutebrowser t-shirts, stickersand more!
Only the following releases are done by qutebrowser’s maintainer directly:
Source packages inthis GitHub repository and onPyPI
Windows and macOS prebuilt binaries in the GitHub Releases
Thequtebrowser-git package in theArchlinux AUR
Installingin a virtualenv from the git repository.
All other packaging is done by the community, so in case of outdated/brokenpackages, you will need to reach out to the respective maintainers. Note thatsome distributions (notably, Debian Stable and Ubuntu) do only updatequtebrowser and the underlying QtWebEngine when there’s a new release of thedistribution, typically once all couple of months to years.
With those distributions, qutebrowser is in the official repositories, and youcan install it withapt install qutebrowser.
However, when using a stable variant (e.g. Debian Stable / Ubuntu LTS / LinuxMint), note that your versions of qutebrowser and the underlying QtWebEnginewill only be updated when there’s a new release of your distribution (e.g.upgrading from Ubuntu 22.04 to 24.04):
Ubuntu 20.04, Linux Mint 20: qutebrowser 1.10.1, QtWebEngine 5.12.8 (based on Chromium 69 from 2018)
Ubuntu 22.04, Linux Mint 21: qutebrowser 2.5.0, QtWebEngine 5.15.9 (based on Chromium 87 from 2020)
Debian Bookworm: qutebrowser 2.5.3, QtWebEngine 5.15.13 (based on Chromium 87 from 2020)
The old versions of the underlying Chromium will lead to various compatibilityissues. Additionally, QtWebEngine on all Debian-based distributions isnot coveredby Debian’s security support.
It’s recommended toinstall qutebrowser in a virtualenv with a newer PyQt/Qt binary instead.If you need proprietary codec support or use an architecture not supported by Qtbinaries, starting with Ubuntu 22.04 and Debian Bookworm, it’s possible toinstall Qt 6 via apt. By usingscripts/mkvenv.py with--pyqt-type link you get anewer qutebrowser running with:
Ubuntu 22.04, Linux Mint 21: QtWebEngine 6.2.4 (based on Chromium 90 from mid-2021)
Debian Bookworm: QtWebEngine 6.4.2 (based on Chromium 102 from mid-2022)
Note you’ll need some basic libraries to use the virtualenv-installed PyQt:
# apt install --no-install-recommends git ca-certificates python3 python3-venv libgl1 libxkbcommon-x11-0 libegl1 libfontconfig1 libglib2.0-0 libdbus-1-3 libxcb-cursor0 libxcb-icccm4 libxcb-keysyms1 libxcb-shape0 libnss3 libxcomposite1 libxdamage1 libxrender1 libxrandr2 libxtst6 libxi6 libasound2On Ubuntu 20.04 / Linux Mint 20 / Debian Bullseye, no OpenSSL 3 is available. However, Qt 6.5moved to OpenSSL 3 for its binary builds. Thus, you will either need to live with:adblock-update and:download being broken, or use--pyqt-version 6.4 for thescripts/mkvenv.py script to get an older Qt.
If running from git, run the following to generate the documentation for the:help command (thescripts/mkvenv.py script used with a virtualenv install already does this for you):
$ pip install -r misc/requirements/requirements-docs.txt # or install asciidoc manually$ python3 scripts/asciidoc2html.pyIf you prefer using QtWebKit, there’s QtWebKit 5.212 available in those distributions. Note however that it is based on an upstream WebKit from September 2016 with known security issues and no sandboxing or process isolation.
If video or sound don’t work with QtWebKit, try installing the gstreamer plugins:
# apt install gstreamer1.0-plugins-{bad,base,good,ugly}Note those are only needed with QtWebKit, not with the (default) QtWebEngine backend.
qutebrowser is available in the official repositories:
# dnf install qutebrowserFedora only ships free software in the repositories.To be able to play videos with proprietary codecs with QtWebEngine, you willneed to install an additional package from the RPM Fusion Free repository.For more information seehttps://rpmfusion.org/Configuration.
With Qt 6 (recommended):
# dnf install libavcodec-freeworldWith Qt 5:
# dnf install qt5-qtwebengine-freeworldqutebrowser is available in the official [community] repository.
# pacman -S qutebrowserThere is also a -git version available in the AUR:qutebrowser-git.
You can install it usingmakepkg like this:
$ git clone https://aur.archlinux.org/qutebrowser-git.git$ cd qutebrowser-git$ makepkg -si$ cd ..$ rm -r qutebrowser-gitor you could use an AUR helper likeyay, e.g.yay -S qutebrowser-git.
If video or sound don’t work with QtWebKit, try installing the gstreamer plugins:
# pacman -S gst-plugins-{base,good,bad,ugly} gst-libavqutebrowser is available in the main repository and can be installed with:
# emerge -av qutebrowserIf video or sound don’t work with QtWebKit, try installing the gstreamerplugins:
# emerge -av gst-plugins-{base,good,bad,ugly,libav}To be able to play videos with proprietary codecs with QtWebEngine, you willneed to turn off thebindist flag fordev-qt/qtwebengine.
See theGentoo Wiki formore information.
To be able to use Kerberos authentication, you will need to turn on thekerberos USE-flag system-wide and re-emergedev-qt/qtwebengine after that.
See theTroubleshooting section in Gentoo Wiki for more information.
qutebrowser is available in the official repositories and can be installedwith:
# xbps-install qutebrowserNixpkgs collection containspkgs.qutebrowser since June 2015. You can installit with:
$ nix-env -i qutebrowserThere are prebuilt RPMs available atOBS.
qutebrowser is available in the 3rd party repository atslackbuilds.org
An easy way to install it is with sbopkg (frontend for slackbuilds.org) available atsbopkg.org
sbopkg can be run with a dialog screen interface, or via command line options.
After installing the latest sbopkg package, choose your release version, and sync the repo.
sbopkg -V 14.2sbopkg -rGenerate a queue file for qutebrowser and dependencies:
sqg -p qutebrowserThen load the queue in the dialog queue menu or via:
PYTHON3=yes sbopkg -i qutebrowserIf you use the dialog screen you can deselect any already-installed packages that you don’t need/want to rebuild before starting the build process.
qutebrowser is availableon Flathubasorg.qutebrowser.qutebrowser. See thequtebrowser Flatpak documentationfor more information about setting up certain features with the Flatpak sandbox.
qutebrowser is inFreeBSD ports.
It can be installed with:
# cd /usr/ports/www/qutebrowser# make install cleanAt present, precompiled packages are not available for this port,and QtWebEngine backend is also not available.
Note | As an additional resource, seeInfinite Ink: Installingqutebrowser on Windows. |
There are different ways to install qutebrowser on Windows:
Prebuilt standalone packages and installersare built for everyrelease.
Note that you’ll need to upgrade to new versions manually (subscribe to thequtebrowser-announcemailinglist to get notified on new releases). You can install a newer versionwithout uninstalling the older one.
The binary release ships with a QtWebEngine built without proprietary codecsupport. To get support for e.g. h264/mp4 videos, you’ll need to buildQtWebEngine from source yourself with support for that enabled.
If you want to test out new features before an official qutebrowser release, automatednightlybuilds are available. To download them, open the latest run (usually the first one),then download the archive at the bottom of the page.
Those builds also include variants with debug logging enabled, which can be useful totrack down issues.
Note | Due to GitHub limitations, you need to be signed in with a GitHub accountto download the files. |
PackageManagement PowerShell module
PS C:\> Install-Package qutebrowserChocolatey package withchoco:
C:\> choco install qutebrowserScoop’s client
C:\> scoop bucket add extrasC:\> scoop install qutebrowserUse the installer frompython.org to getPython 3 (be sure to install pip).
The easiest way to install qutebrowser on macOS is to use the prebuilt.appfiles from therelease page.
Note that you’ll need to upgrade to new versions manually (subscribe to thequtebrowser-announcemailinglist to get notified on new releases).
The binary release ships with a QtWebEngine built without proprietary codecsupport. To get support for e.g. h264/mp4 videos, you’ll need to buildQtWebEngine from source yourself with support for that enabled.
Note | Currently, qutebrowserdoes not use macOS'Notarization,due toPyInstaller issues(as well as the requirement topay USD 100 per year to Apple).Depending on your system settings, this might lead to errors such as"qutebrowser.app can’t be opened because Apple cannot check it for malicioussoftware." or "can’t be opened because it is from an unidentified developer".You should be able to open the .app by right-clicking it and selecting "Open", see themacOS documentationfor details. |
$ brew install qutebrowserIf you want to test out new features before an official qutebrowser release, automatednightlybuilds are available. To download them, open the latest run (usually the first one),then download the archive at the bottom of the page.
Those builds also include variants with debug logging enabled, which can be useful totrack down issues.
Note | Due to GitHub limitations, you need to be signed in with a GitHub accountto download the files. |
qutebrowser ships with aMakefileintended for packagers. This installs system-wide files in a proper locations,so it should be preferred to the usualsetup.py install orpip installinvocation.
Important | Before January 2020, this section used to be about installingqutebrowser viatox which is a wrapper aroundvirtualenv. Now, a dedicatedscript is used instead. |
Avirtual environment(virtualenv, venv) allows Python packages to be installed in an isolatedlocation for a particular application, rather than being installed globally.
Thescripts/mkvenv.py script in this repository can be used to create avirtualenv for qutebrowser and install it (including all dependencies) there.The next couple of sections will explain the most common use-cases - runscripts/mkvenv.py with--help to see all available options.
First of all, clone the repository usinggit and switchinto the repository folder:
$ git clone https://github.com/qutebrowser/qutebrowser.git$ cd qutebrowserUsing a Qt installed via virtualenv needs a couple of system-wide libraries.See theDebian-based distributions section for details about which librariesare required.
Then run the install script:
$ python3 scripts/mkvenv.pyThis installs all needed Python dependencies in a.venv subfolder(which subdirectory the environment is created in is configurable via the--venv-dir flag).
This comes with an up-to-date Qt/PyQt including a pre-compiled QtWebEnginebinary, but has a few caveats:
Make sure yourpython3 is Python 3.9 or newer, otherwise you’ll get a "No matching distribution found" error and/or qutebrowser will not run.
It only works on 64-bit x86 systems, with other architectures you’ll get the same error.
It comes with a QtWebEngine compiled without proprietary codec support (such as h.264).
See the next section for an alternative install method which might help withthose issues but result in an older Qt version.
You can specify a Qt/PyQt version with the--pyqt-version flag, seescripts/mkvenv.py --help for a list of available versions. By default, thelatest version which plays well with qutebrowser is used.
Note | If the Qt smoke test fails with a"This application failed to startbecause no Qt platform plugin could be initialized." message, most likely asystem-wide library is missing. Pay attention to aQLibraryPrivate::loadPluginfailed on … line for details. |
Alternatively, you can usescripts/mkvenv.py --pyqt-type link to symlinkyour local PyQt/Qt install instead of installing PyQt in the virtualenv.However, unless you have a new QtWebKit or QtWebEngine available, qutebrowserwill not work. It also typically means you’ll be using an older release ofQtWebEngine.
On Windows, runset PYTHON=C:\path\to\python.exe (CMD) or$Env:PYTHON ="..." (Powershell) first.
There is a third mode,scripts/mkvenv.py --pyqt-type source which uses asystem-wide Qt but builds PyQt from source. In most scenarios, this shouldn’tbe needed.
Runningscripts/mkvenv.py does not install a system-widequtebrowserscript. You can launch qutebrowser by doing:
.venv/bin/python3 -m qutebrowserYou can create a simple wrapper script to start qutebrowser somewhere in your$PATH (e.g./usr/local/bin/qutebrowser or~/bin/qutebrowser):
#!/bin/bash~/path/to/qutebrowser/.venv/bin/python3 -m qutebrowser "$@"If you cloned the git repository, runscripts/mkvenv.py --update which willtake care of updating the code (viagit pull) and recreating the environmentwith the newest dependencies.
Alternatively, you can update your local copy of the code (e.g. by pulling thegit repo, or extracting a new version) and the virtualenv should automaticallyuse the updated versions. However, dependencies won’t be updated that way.