HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
philc
vimium
JavaScript2010–2026
philc / vimium

vimium

The hacker's browser.

54Distinct people
57Mentions
1Explicit recommenders
27.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The hacker's browser.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Chrome has Vimium for this, it's good to know there is an analogue for Firefox. I love using Vim bindings while browsing. https://github.com/philc/vimium

Dangeranger used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 12:54:37 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year57 dated mentions

Observed mentions: 2010-02-24 02:02:09 UTC to 2026-08-28 17:38:42 UTC.

0510152010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments20102011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 14 mentions; 1 submissions, 13 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 7 mentions; 2 submissions, 5 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC312
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC000
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC202
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC211
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC000
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC101
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC000
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC505
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC505
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC514
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC606
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC404
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC14113
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC725
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Vimium - The Hacker's Browser Vimium is a browser extension that provides keyboard-based navigation and control of the web in the spirit of the Vim editor. Watch the demo video. Installation instructions: Chrome: Chrome web store Edge: Edge Add-ons Firefox: Firefox Add-ons To install from source, see here. Vimium's Options page can be reached via a link on the help dialog (type ?) or via the button next to Vimium on the extension pages of Chrome and Edge (chrome://extensions), or Firefox (about:addons). Keyboard Bindings Modifier keys are specified as <c-x>, <m-x>, and <a-x> for ctrl+x, meta+x, and alt+x respectively. For shift+x and ctrl-shift-x, just type X and <c-X>. See the next section for how to customize these bindings. Once you have Vimium installed, you can see this list of key bindings at any time by typing ?. Navigating the current page: ? show the help dialog for a list of all available keys h scroll left j scroll down k scroll up l scroll right gg scroll to top of the page G scroll to bottom of the page d scroll down half a page u scroll up half a page f open a link in the current tab F open a link in a new tab r reload gs view source i enter insert mode -- all commands will be ignored until you hit Esc to exit yy copy the current url to the clipboard yf copy a link url to the clipboard gf cycle forward to the next frame gF focus the main/top frame Navigating to new pages: o Open URL, bookmark, or history entry O Open URL, bookmark, history entry in a new tab b Open bookmark B Open bookmark in a new tab Using find: / enter find mode -- type your search query and hit enter to search, or Esc to cancel n cycle forward to the next find match N cycle backward to the previous find match For advanced usage, see regular expressions on the wiki. Navigating your history: H go back in history L go forward in history Manipulating tabs: J, gT go one tab left K, gt go one tab right g0 go to the first tab. Use ng0 to go to n-th tab g$ go to the last tab ^ visit the previously-visited tab t create tab yt duplicate current tab x close current tab X restore closed tab (i.e. unwind the 'x' command) T search through your open tabs W move current tab to new window <a-p> pin/unpin current tab Using marks: ma, mA set local mark "a" (global mark "A") `a, `A jump to local mark "a" (global mark "A") `` jump back to the position before the previous jump -- that is, before the previous gg, G, n, N, / or `a Additional advanced browsing commands: ]], [[ Follow the link labeled 'next' or '>' ('previous' or '<') - helpful for browsing paginated sites <a-f> open multiple links in a new tab gi focus the first (or n-th) text input box on the page. Use <tab> to cycle through options. gu go up one level in the URL hierarchy gU go up to root of the URL hierarchy ge edit the current URL gE edit the current URL and open in a new tab zH scroll all the way left zL scroll all the way right v enter visual mode; use p/P to paste-and-go, use y to yank V enter visual line mode R Hard reload the page (skip the cache) Vimium supports command repetition so, for example, hitting 5t will open 5 tabs in rapid succession. <Esc> (or <c-[>) will clear any partial commands in the queue and will also exit insert and find modes. There are additional commands which aren't included in this README; refer to the help dialog (type ?) for a full list. Custom Key Mappings You may remap or unmap any of the default key bindings in the "Custom key mappings" on the options page. Enter one of the following key mapping statements per line: map key command: Maps a key to a Vimium command. Overrides Chrome's default behavior for that key, if any. unmap key: Unmaps a key and restores Chrome's default behavior (if any). unmapAll: Unmaps all bindings. This is useful if you want to completely wipe Vimium's defaults and start from scratch with your own setup. Examples: map <c-d> scrollPageDown maps ctrl+d to scrolling the page down. Chrome's default behavior of showing a bookmark dialog is suppressed. map r reload hard maps the r key to reloading the page, and also includes the "hard" option to hard-reload the page. unmap <c-d> removes any mapping for ctrl+d and restores Chrome's default behavior. unmap r removes any mapping for the r key. See the docs for every Vimium command and its options. You can add comments to key mappings by starting a line with " or #. The following special keys are available for mapping: <c-*>, <a-*>, <s-*>, <m-*> for ctrl, alt, shift, and meta (command on Mac) respectively with any key. Replace * with the key of choice. <left>, <right>, <up>, <down> for the arrow keys. <f1> through <f12> for the function keys. <space> for the space key. <tab>, <enter>, <delete>, <backspace>, <insert>, <home> and <end> for the corresponding non-printable keys. Shifts are automatically detected so, for example, <c-&> corresponds to ctrl+shift+7 on an English keyboard. How to allow Vimium to work on new tab pages Vimium will work on new tab pages which are opened with Vimium's createTab command (mapped to t by default). To have Vimium work on all new tab pages opened by the browser (e.g. via cmd-t or ctrl-t shortcuts), a companion Vimium New Tab Page extension is required. Once that is installed, all new tabs will open a blank Vimium new tab page. More documentation FAQ Command listing Vimium's GitHub wiki: documentation for the more advanced features. Contributing See CONTRIBUTING.md for details. Release Notes See CHANGELOG for the major changes in each release. License Copyright (c) Phil Crosby, Ilya Sukhar. See MIT-LICENSE.txt for details.
Read the full README on GitHub

What Hacker News says

57 sources
I think you're projecting a bit. I'm sure there are a few weird KEYBOARD VS MOUSE people that occupy the same bizarre neurotic domain space as TABS VS SPACES, but most people just have their own personal preference and leave it at that. Personally, it's not about what's faster - it's about switching. If my hands are already resting lightly on the keyboard, then the keyboard is faster - and vice versa. To decrease the amount of switching I have to do, I use an extension called Vimium that quickly highlights all links with key bindings. For example "g i" automatically puts the first <input> level field into focus. https://github.com/philc/vimium
In Nyxt: The Hacker's Browser
All my points stand * VimFX still works in the latest release of Firefox * If random people on the internet can square it, so probably could the Firefox team, they didn't need to keep all features * They decided to handicap their addons to match Chrome, because "security" and lost users * Chrome is now doing the same > ...but I the impression that this means that pretty much no extensions from the 56 era will work any more. Look at VimFx’s changelog... The changelog shows a fix this month for the firefox 127 this month, the current version is 126. And the readme clearly states firefox-esr 115+. You don't get more working than that > WebExtension era, extensions almost never break Any other recent extension needs way more maintenance to keep up with the constant evolving of the WebExtensions apis. And you can look at their logs. Years to p
Read the rest
artially catch up, and much more work for worse user experience https://github.com/tridactyl/tridactyl https://github.com/philc/vimium > ..they had too much access to browser internals.. All apps have to much access, that's is the same lame excuse Google is using now. All extensions are reviewed by Google/Mozilla and manually installed by the user. If they can't keep them safe hire someone who can. Especially Chrome that already has APIs for random websites to access USBs, filesystem, etc..
In Manifest V2 phase-out begins
Sooo, apparently in a clean browser without extensions this does not happen. I tracked down this to a problem with Vimium [0], when I disable it the webpage displays correctly. Essentially, the issue is that Vimium's stylesheet also set the --fg variable. While your website sets it to #000000 or something like that, Vimium sets it to #FFFFFF and for some reason that interferes with the webpage. Alas, one more reason for me to stay with SCSS haha. Even more interesting is that the same issue does not happen on a Chromium browser with Vimium with the exact same stylesheet, meaning the global stylesheet pollution only happens on Firefox. Anyway, I would say this is not a problem with your website but rather with my (beautiful) Vimium stylesheet [1]. Still, you could fix this issue by converting these CSS variables to SCSS ones, so they are h
Read the rest
ard-coded variables on runtime, or perhaps by using !important to make sure it's not overwritten. The stylesheet I'm using is not the default but rather a fork of a pretty specific one, so I'll also make the changes there to stop using CSS variables. By the way, since you asked I'm running Firefox 112.0.2 (64-bit), Red Hat fedora - 1.0 build, although it's not related to Firefox at all. edit: just prefixed all css variables in the stylesheet with an identifier and everything is working now :) [0]: https://github.com/philc/vimium [1]: https://github.com/DoodlesEpic/VimiumDark
In Show HN: Automatic Domain Verification

Showing the 15 most recent of 57 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.