LinuxmacOSWindows

Where Is the qutebrowser Config File?

qutebrowser manual config versus GUI settings on every OS, and the line that decides which wins.

Last updated

qutebrowser separates hand config from GUI config. config.py is yours to edit and the app never touches it; autoconfig.yml is written by :set and :bind and you should leave it alone. History and sessions live apart in the data dir (history.sqlite, sessions/*.yml).

The classic trap: with a config.py present, autoconfig.yml is ignored unless config.py calls config.load_autoconfig(). Put that line at the top to let the file win, at the bottom to let GUI tweaks win. The authoritative map for your install is qute://version, since Windows Roaming versus Local splits changed across versions.

Where qutebrowser stores this, by platform

Linux
~/.config/qutebrowser/config.py

Manual Python config ($XDG_CONFIG_HOME respected). GUI settings in ~/.config/qutebrowser/autoconfig.yml. Data in ~/.local/share/qutebrowser (history.sqlite, sessions/); cache in ~/.cache/qutebrowser.

macOS
~/.qutebrowser/config.py

Legacy hand config location still default for config.py on Mac. GUI autoconfig.yml instead lives in ~/Library/Preferences/qutebrowser. Data in ~/Library/Application Support/qutebrowser; cache in ~/Library/Caches.

Windows
%APPDATA%\qutebrowser\config\config.py

Manual config with autoconfig.yml beside it (Roaming vs Local split changed across versions; confirm via qute://version). Data in %APPDATA%\qutebrowser\data; cache under %LOCALAPPDATA%\qutebrowser.

Frequently asked questions

Why are my qutebrowser :set changes ignored?

Because config.py exists without config.load_autoconfig(). Those GUI writes land in autoconfig.yml, which your config.py suppresses. Add the load line (position decides the winner) and they apply.

Where are qutebrowser history and sessions?

In the data directory (~/.local/share/qutebrowser on Linux): history.sqlite plus sessions/*.yml with default.yml and autosave.yml. Copy both to migrate browsing state.

Notice an outdated path? Let us know.