qutebrowser profile manager
Revert "add a flake.lock so that `nix run` will work"
add a flake.lock so that `nix run` will work



You can also use your local clone with git send-email.

#qutebrowser profile manager

builds.sr.ht status

qutebrowser profile manager (qbpm) is a tool for creating and managing qutebrowser profiles. There isn't any built in concept of profiles in qutebrowser, but there is a --basedir flag which allows you to use any random directory to store qutebrowser config and data. By default qbpm creates profiles that source your main qutebrowser configuration, but have their own history, bookmarks, etc. qutebrowser sessions started from separate profiles are entirely isolated from each other, and can be opened and closed independently.


Create a new profile called "python", edit its config.py, then launch it:

$ qbpm new python
$ qbpm edit python
$ qbpm launch python docs.python.org

Notice that qbpm launch passes extra arguments directly to qutebrowser, so you can use it to open urls in your profile and use any options you would pass to qutebrowser:

$ qbpm launch python duck.com --target window --loglevel info

qbpm from-session can copy the tabs of a saved qutebrowser session to a new profile. If you have a window full of tabs related to planning a vacation, you could save it to a session called "vacation" using :session-save -o vacation in qutebrowser, then create a new profile with those tabs:

$ qbpm from-session vacation

The default profile directory is $XDG_DATA_HOME/qutebrowser-profiles, where $XDG_DATA_HOME is usually $HOME/.local/share, but you can create and launch profiles from anywhere using --profile-dir/-P:

$ qbpm --profile-dir ~/dev/my-project new qb-profile
$ cd ~/dev/my-project
$ qbpm -P . launch qb-profile
# or
$ qutebrowser --basedir qb-profile

qbpm isn't the easiest command to type, so personally I use qpm as an alias.


  • Arch: qbpm-git in the AUR
  • Nix: clone the repository and run nix-env -if default.nix

#Future ideas that may or may not happen

  • Release through github
  • More shared or copied config and data
  • Use any profile as a base for new profiles (currently only the main config in $XDG_CONFIG_HOME is supported)
  • Source autoconfig.yml instead of config.py
  • Bundled config file optimized for single-site browsing
  • qbpm.conf to configure the features above
  • Someday: qutebrowser plugin