ConfigsMay 22, 2026·3 min read

Qutebrowser — Keyboard-Driven Web Browser with Vim Bindings

Minimal QtWebEngine browser controlled entirely from the keyboard with Vim-style keybindings and a Python-based config.

Agent ready

This asset can be read and installed directly by agents

TokRepo exposes a universal CLI command, install contract, metadata JSON, adapter-aware plan, and raw content links so agents can judge fit, risk, and next actions.

Native · 98/100Policy: allow
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Single
Trust
Trust: Established
Entrypoint
Qutebrowser Overview
Universal CLI install command
npx tokrepo install a77ae5c3-5576-11f1-9bc6-00163e2b0d79

Introduction

Qutebrowser is a keyboard-focused web browser that uses Vim-style keybindings for navigation. Built on Python and QtWebEngine (Chromium), it provides a minimal interface where nearly every action is performed via keyboard commands, making it popular among developers who prefer terminal-centric workflows.

What Qutebrowser Does

  • Navigates the web entirely through keyboard shortcuts with Vim-style modal keybindings
  • Follows links via hint mode, where each link gets a short letter label to press
  • Manages tabs, bookmarks, and history through command-mode or keyboard shortcuts
  • Supports userscripts and Greasemonkey scripts for page-level customization
  • Renders modern web pages using the QtWebEngine (Chromium) backend

Architecture Overview

Qutebrowser is written in Python using the Qt framework. It uses QtWebEngine (based on Chromium) for page rendering, which provides modern web standards support. The keybinding layer is a custom modal input system inspired by Vim, with normal, insert, command, and hint modes. Configuration is done through a Python file or YAML, and the internal command system can be extended with Python userscripts that interact with the browser via IPC.

Self-Hosting & Configuration

  • Install from distribution package managers on Linux, or via Homebrew on macOS
  • Configure via ~/.config/qutebrowser/config.py using Python syntax for full flexibility
  • Customize keybindings, search engines, ad-blocking lists, and appearance through config directives
  • Built-in ad blocking uses Brave's filter lists by default, configurable to use host-based blocking
  • Supports per-domain settings for JavaScript, cookies, and other permissions

Key Features

  • Full Vim-style keybinding system with modal editing (normal, insert, command, hint modes)
  • Hint-based link following that assigns letter labels to clickable elements
  • Python-based configuration file for programmatic customization
  • Built-in ad blocker using filter lists without requiring extensions
  • Lightweight resource usage compared to mainstream Chromium-based browsers

Comparison with Similar Tools

  • Nyxt — Lisp-based programmable browser; Qutebrowser uses Python and QtWebEngine with Vim keybindings
  • Vimium (extension) — Adds Vim bindings to Chrome/Firefox; Qutebrowser integrates them at the browser level
  • surf — Suckless minimal browser; Qutebrowser provides more features while maintaining keyboard-first design
  • Brave — Privacy-focused Chromium fork with GUI; Qutebrowser targets keyboard-driven workflows

FAQ

Q: Does Qutebrowser support browser extensions? A: Qutebrowser does not support Chrome or Firefox extensions. It provides built-in ad blocking and userscript support as alternatives.

Q: Can I use a mouse with Qutebrowser? A: Yes. Mouse interactions work normally. The keyboard-driven design is an option, not a requirement.

Q: Is Qutebrowser based on Chromium? A: It uses QtWebEngine for rendering, which is built on Chromium's Blink engine. The browser shell itself is written in Python.

Q: How do I search from the address bar? A: Press "o" to enter a URL, or type a search engine prefix followed by your query. Search engines are configurable in the config file.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets