website | blog | FAQ | contributing | releases | installing
qutebrowser is a keyboard-focused browser with a minimal GUI. It’s based on Python and Qt and free software, licensed under the GPL.
It was inspired by other browsers/addons like dwb and Vimperator/Pentadactyl.
qutebrowser’s primary maintainer, The-Compiler, is currently working part-time on qutebrowser, funded by donations. To sustain this for a long time, your help is needed! See the GitHub Sponsors page or alternative donation methods for more information. Depending on your sign-up date and how long you keep a certain level, you can get qutebrowser t-shirts, stickers and more!
See the GitHub releases page for available downloads and the INSTALL file for detailed instructions on how to get qutebrowser running on various platforms.
Please see the help page for available documentation pages and support channels.
You want to contribute to qutebrowser? Awesome! Please read the contribution guidelines for details and useful hints.
If you found a bug or have a feature request, you can report it in several ways:
-
Use the built-in
:report
command or the automatic crash dialog. -
Open an issue in the Github issue tracker.
-
Write a mail to the mailinglist at [email protected].
Please report security bugs to [email protected] (or if GPG encryption is desired, contact [email protected] with GPG ID 0x916EB0C8FD55A072).
Alternatively, report a vulnerability via GitHub’s private reporting feature.
The following software and libraries are required to run qutebrowser:
-
Python 3.9 or newer
-
Qt, either 6.2.0 or newer, or 5.15.0 or newer, with the following modules:
-
QtCore / qtbase
-
QtQuick (part of qtbase or qtdeclarative in some distributions)
-
QtSQL (part of qtbase in some distributions)
-
QtDBus (part of qtbase in some distributions; note that a connection to DBus at runtime is optional)
-
QtOpenGL
-
QtWebEngine (if using Qt 5, 5.15.2 or newer), or
-
alternatively QtWebKit (5.212) - This is not recommended due to known security issues in QtWebKit, you most likely want to use qutebrowser with the default QtWebEngine backend (based on Chromium) instead. Quoting the QtWebKit releases page: [The latest QtWebKit] release is based on [an] old WebKit revision with known unpatched vulnerabilities. Please use it carefully and avoid visiting untrusted websites and using it for transmission of sensitive data.
-
-
PyQt 6.2.2 or newer (Qt 6) or 5.15.0 or newer (Qt 5)
On macOS, the following libraries are also required:
The following libraries are optional:
-
adblock (for improved adblocking using ABP syntax)
-
pygments for syntax highlighting with
:view-source
on QtWebKit, or when using:view-source --pygments
with the (default) QtWebEngine backend. -
On Windows, colorama for colored log output.
-
asciidoc to generate the documentation for the
:help
command, when using the git repository (rather than a release).
See the documentation for directions on how to install qutebrowser and its dependencies.
qutebrowser’s primary maintainer, The-Compiler, is currently working part-time on qutebrowser, funded by donations. To sustain this for a long time, your help is needed! See the GitHub Sponsors page for more information. Depending on your sign-up date and how long you keep a certain level, you can get qutebrowser t-shirts, stickers and more!
GitHub Sponsors allows for one-time donations (using the buttons next to "Select a tier") as well as custom amounts. For currencies other than Euro or Swiss Francs, this is the preferred donation method. GitHub uses Stripe to accept payment via credit cards without any fees. Billing via PayPal is available as well, with less fees than a direct PayPal transaction.
Alternatively, the following donation methods are available — note that eligibility for swag (shirts/stickers/etc.) is handled on a case-by-case basis for those, please get in touch for details.
-
Liberapay, which can handle payments via Credit Card, SEPA bank transfers, or Paypal. Payment fees are paid by me, but they are relatively low.
-
SEPA bank transfer inside Europe (no fees):
-
Account holder: Florian Bruhin
-
Country: Switzerland
-
IBAN (EUR): CH13 0900 0000 9160 4094 6
-
IBAN (other): CH80 0900 0000 8711 8587 3
-
Bank: PostFinance AG, Mingerstrasse 20, 3030 Bern, Switzerland (BIC: POFICHBEXXX)
-
If you need any other information: Contact me at [email protected].
-
If possible, please consider yearly or semi-yearly donations, because of the additional overhead from many individual transactions for bookkeeping/tax purposes.
-
-
PayPal: CHF, EUR, USD. Note: Fees can be very high (around 5-40%, depending on the donated amounts) - consider using GitHub Sponsors (credit card), Liberapay (credit cards, PayPal, or bank transfer) or SEPA bank transfers instead.
-
Cryptocurrencies:
-
Bitcoin: bc1q3ptyw8hxrcfz6ucfgmglphfvhqpy8xr6k25p00
-
Bitcoin Cash: 1BnxUbnJ5MrEPeh5nuUMx83tbiRAvqJV3N
-
Ethereum: 0x10c2425856F7a8799EBCaac4943026803b1089c6
-
Litecoin: MDt3YQciuCh6QyFmr8TiWNxB94PVzbnPm2
-
Others: Please get in touch, I’d happily set up anything supported by Ledger Live
-
Thanks a lot to MacStadium for supporting qutebrowser with a free hosted Mac Mini via their Open Source Project.
(They don’t require including this here - I’ve just been very happy with their offer, and without them, no macOS releases or tests would exist)
Thanks to the HSR Hochschule für Technik Rapperswil, which made it possible to work on qutebrowser extensions as a student research project.
qutebrowser’s primary author is Florian Bruhin (The Compiler), but qutebrowser wouldn’t be what it is without the help of hundreds of contributors!
Additionally, the following people have contributed graphics:
-
Jad/yelo (new icon)
-
WOFall (original icon)
-
regines (key binding cheatsheet)
Also, thanks to everyone who contributed to one of qutebrowser’s crowdfunding campaigns!
Various projects with a similar goal like qutebrowser exist. Many of them were inspirations for qutebrowser in some way, thanks for that!
-
vimb (C, GTK+ with WebKit2)
-
luakit (C/Lua, GTK+ with WebKit2)
-
Nyxt browser (formerly "Next browser", Lisp, Emacs-like but also offers Vim bindings, QtWebEngine or GTK+/WebKit2 - note there was a critical remote code execution in 2019 which was handled quite badly)
-
Vieb (JavaScript, Electron)
-
surf (C, GTK+ with WebKit1/WebKit2)
-
wyeb (C, GTK+ with WebKit2)
-
Chrome/Chromium addons: Vimium
-
Firefox addons (based on WebExtensions): Tridactyl, Vimium-FF
-
Addons for Firefox and Chrome: Surfingkeys (somewhat sketchy…), Link Hints (hinting only), Vimmatic
-
dwb (C, GTK+ with WebKit1, unmaintained - main inspiration for qutebrowser)
-
webmacs (Python, Emacs-like with QtWebEngine, unmaintained)
-
vimprobable (C, GTK+ with WebKit1)
-
jumanji (C, GTK+ with WebKit1)
-
conkeror (Javascript, Emacs-like, XULRunner/Gecko)
-
uzbl (C, GTK+ with WebKit1/WebKit2)
-
xombrero (C, GTK+ with WebKit1)
-
Cream Browser (C, GTK+ with WebKit1)
-
Firefox addons (not based on WebExtensions or no recent activity): Vimperator, Pentadactyl, VimFx (seems to offer a hack to run on modern Firefox releases), QuantumVim, Vim Vixen, VVimpulation, Krabby
-
Chrome/Chromium addons: ViChrome, Vrome, Saka Key (unmaintained), cVim, vb4c (fork of cVim, unmaintained), GleeBox
-
Addons for Safari: Vimari
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/gpl-3.0.txt.
qutebrowser optionally uses pdf.js to display PDF files in the browser. Windows releases come with a bundled pdf.js.
pdf.js is distributed under the terms of the Apache License. You can
find a copy of the license in qutebrowser/3rdparty/pdfjs/LICENSE
(in the
Windows release or after running scripts/dev/update_3rdparty.py
), or online
here.