Python JavaScript Gherkin HTML Shell CSS
Latest commit d44ff5b Feb 25, 2018
The-Compiler Don't load the URL immediately on :undo
On some pages like Qt's Gerrit, Indiegogo or Telegram Web, this caused a crash
with QtWebEngine and Qt 5.10.1 in

I'm not sure what causes the crash exactly, but I'm guessing it's some kind of
race condition between loading the URL initially and deserializing the history,
which both ends up loading the URL.

Since restoring the history means we end up on the given URL anyways, let's just
not open the URL beforehand, which seems to fix this.

Fixes #3619.
Failed to load latest commit information.
.github Add myself to `CODEOWNERS` to watch for caret code Jan 19, 2018
doc Don't load the URL immediately on :undo Feb 25, 2018
icons Update qutebrowser xpm Dec 29, 2017
misc Merge remote-tracking branch 'origin/pr/3617' Feb 21, 2018
qutebrowser Don't load the URL immediately on :undo Feb 25, 2018
scripts use up to date cheatsheet images from repo instead of Feb 20, 2018
tests Merge remote-tracking branch 'origin/pr/3599' Feb 21, 2018
www Use https:// links for Nov 14, 2017
.appveyor.yml Use PyQt 5.10 on AppVeyor Feb 7, 2018
.codecov.yml Make codecov.yml hidden Sep 17, 2017
.coveragerc Add an utils.Unreachable exception Dec 15, 2017
.editorconfig Add basic editorconfig for enforcing style Apr 6, 2016
.flake8 Add new B008 to flake8 ignores Dec 19, 2017
.gitignore Add .pytest_cache to .gitignore Feb 7, 2018
.pydocstylerc Add a .pydocstylerc. Jan 30, 2016
.pylintrc pylint: More config adjustments Dec 15, 2017
.pyup.yml Switch pyup to Mondays Aug 24, 2017
.travis.yml Add PyQt 5.10 to Travis CI Feb 7, 2018
LICENSE Fix more file move issues Sep 17, 2017 Add scripts/*.js to Feb 9, 2018
README.asciidoc use up to date cheatsheet images from repo instead of Feb 20, 2018
pytest.ini Skip failing scrolling tests on Qt 5.10 on Travis Feb 8, 2018 Update copyright years Feb 5, 2018
requirements.txt Update attrs from 17.3.0 to 17.4.0 Jan 1, 2018 Add Python 3.7 compatibility to Feb 10, 2018
tox.ini Add Python 3.7 to tox.ini Feb 10, 2018



qutebrowser logo A keyboard-driven, vim-like browser based on PyQt5 and Qt.

license badge version badge Build Status AppVeyor build status coverage badge

qutebrowser is a keyboard-focused browser with a minimal GUI. It’s based on Python and PyQt5 and free software, licensed under the GPL.

It was inspired by other browsers/addons like dwb and Vimperator/Pentadactyl.


screenshot 1 screenshot 2 screenshot 3 screenshot 4


See the github releases page for available downloads and the INSTALL file for detailed instructions on how to get qutebrowser running on various platforms.


Getting help

You can get help in the IRC channel #qutebrowser on Freenode (webchat), or by writing a message to the mailinglist at

There’s also an announce-only mailinglist at (the announcements also get sent to the general qutebrowser@ list).

If you’re a reddit user, there’s a /r/qutebrowser subreddit there.

Contributions / Bugs

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:

For security bugs, please contact me directly at, GPG ID 0xFD55A072.


The following software and libraries are required to run qutebrowser:

The following libraries are optional:

  • cssutils (for an improved :download --mhtml with QtWebKit).

  • 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.


Working on qutebrowser is a very rewarding hobby, but like (nearly) all hobbies it also costs some money. Namely I have to pay for the server and domain, and do occasional hardware upgrades [1].

If you want to give me a beer or a pizza back, I’m trying to make it as easy as possible for you to do so. If some other way would be easier for you, please get in touch!


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!

Similar projects

Many projects with a similar goal as qutebrowser exist. Most of them were inspirations for qutebrowser in some way, thanks for that!




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


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/, or online here.

1. It turned out a 160 GB SSD is rather small - the VMs and custom Qt builds I use for testing/developing qutebrowser need about 100 GB of space