Open source Chrome MV3 Apache-2.0 Local-first

Browse Chrome without
leaving the keyboard

Vim+ adds modal navigation to Google Chrome: link hints, omnibar, a command palette, side panel, reading tools, and window docking. Aimed at people who keep dozens of tabs open and would rather type than aim. Settings stay on your machine. No account required.

Chrome Web Store listing coming soon · load unpacked in about two minutes

5 keys to get going
j k f o Esc
0 accounts or
required cloud sync
1 place for tabs,
commands, and help
key maps you can
change later

Watch a short loop — or switch to Try it and press keys.

docs.example.com/long-guide
NORMAL
A practical guide to staying in flow
Sequence

Interactive preview of the main flows · in Try it yourself, click the frame (or a key below) and type · optional video slot

Useful if you already live in shortcuts Still useful if you only learn five keys Exclude any site when it gets in the way

The problem

Browsers optimized for pointing. Your work optimizes for flow.

Knowledge work is a rhythm of find → open → read → act → switch. Each reach for the mouse is a tiny context switch: find the cursor, aim, click, re-home your hands. Alone, it’s nothing. Across a day of docs, issues, RFCs, and PRs, it’s a tax on attention.

Mouse-first day

  • Cursor archaeology on a 4K display
  • Tab bar hunting across dozens of tabs
  • Address bar for every jump
  • Menus for mute, close others, dock
  • Help scattered across dead wiki links

Keyboard-first day

  • f — labels every link; type to open
  • o — omnibar ranks history & tabs
  • : — power actions by name
  • Side panel when pages block keys
  • Wiki that ships with the extension
“Each reach for the mouse is cheap. A full day of them is not.” — why a keyboard control plane helps

Screen recording

Optional video walkthrough

Prefer a recorded tour? Drop an MP4 here when you have one. The interactive demo above already covers hints, omnibar, palette, scroll, and find.

Vim+ demo preview placeholder

No recording uploaded yet
Place site/static/media/demo.mp4 when ready

Until then, use Try it yourself in the interactive preview

Open interactive demo
Optional · H.264 · 720p+ · see site/static/media/README.md

Theory

Modal control is a feature, not nostalgia.

Vim+ borrows what editors got right: modes, counts, and composable commands. It is not “Vim inside Chrome.” It is a browser control plane that stays quiet until you need it — then yields again with Esc.

01

Normal mode is the default

Keys are commands. Focus an input (or press i) and the page gets the keyboard back.

02

Hints beat aim

Your eyes already found the link. Labels finish the job — no pixel hunting across ultrawide glass.

03

Commands are the API

Keys are convenience. Run the same action from a map, the : palette, or the side panel.

04

Escape always works

Partial chords, find, hints, omnibar — cancel cleanly. Predictable exit makes modal UI safe daily.

What it does

One control plane for the whole browser loop

f F

Link hints

Open, new tab, copy, hover, download. Labels appear; type to activate.

o O

Omnibar

History, domains, bookmarks, tabs, windows. Hashbangs: !g !grok !gpt.

:

Command palette

Privacy tools, tabs, dock, reader, highlighter, zen, clipboard — searchable short names.

gS

Command center

Side panel for keys, commands, sessions, Reading List. Works when content scripts can’t.

jk/v

Navigate & select

Scroll, find, visual mode, marks, frames. Counts: 5j without five presses.

:read

Reading tools

Progress bar by default, Readability reader, highlighter, focus FX, zen window.

:win

Windows & tabs

Dock edges, maximize, cycle. Pin, mute, discard, restore closed, tab groups.

map

Remap everything

Map language, site maps, exclusions, user CSS. Start stock; shape it to your hands.

Why you should want it

Not faster for screenshots. Faster for real days.

  1. Keep flow while reading technical material. Scroll and jump links without breaking eye–hand coupling. Progress shows depth in long posts.
  2. Stop treating the tab bar as a UI. Omnibar and side panel find tabs by content. Closed-session restore is a command, not archaeology.
  3. Power features become discoverable. Palette and command center surface dock, shred, reader, and clip tools without a 200-line cheat sheet on day one.
  4. Restricted pages don’t brick you. When Chrome blocks content scripts, the side panel and global shortcuts still reach the extension.
  5. Help doesn’t rot. The wiki ships inside the product. This site is the public mirror — not a dependency for daily use.
  6. Privacy defaults match how engineers think. Local settings, opt-in sync, user-initiated history tools. AI hashbangs open the vendor’s site — Vim+ does not proxy your prompts.

Positioning

Where Vim+ sits

Mouse ChromeGeneric shortcutsVim+
Open any link without aimingClickRareHints (f)
History + tabs + engines UIAddress barPartialOmnibar (o)
Discoverable power commandsMenusMemorizePalette : + side panel
Works on chrome:// gapsNative UIOften noSide panel / globals
Reading progress + reader + HLExtensions soupBuilt in
Window dockingOS / drag:win family
Docs that can’t 404Help CenterREADMEIn-extension wiki
Telemetry / accountsVariesVariesNone required

A day in the loop

What “keyboard-first” actually looks like

o

Jump somewhere

Omnibar → fragment of a title → Enter. Or !gh issue / !grok explain….

f

Follow the interesting link

Hints paint the page. Two keystrokes. F for a new tab if you want to keep place.

j k

Read

Home-row scroll. / to find. :read when the page is a wall of chrome.

:

Act

Copy markdown, dock the window, mute the noisy tab, shred a domain you regret opening.

gS

Command center

Map of everything bound — or a way in when Chrome’s own pages won’t accept keys.

Get it

Download for Google Chrome

Targets Chrome 121+ (Manifest V3). Free, open source, Apache-2.0. Built for people who will read the source — and for people who just want f today.

Chrome Web Store: listing in progress. Until it’s live, install from source (clone → npm cinpm run tsc → Load unpacked).

From source ~2 min

git clone https://github.com/JamalYusuf/vim-plus.git
cd vim-plus && npm ci && npm run tsc
# chrome://extensions → Developer mode → Load unpacked → repo root

Install & build · Permissions · Privacy

First keys

j kScroll
fLink hints
oOmnibar
:Command palette
?Help
gSSide panel
EscCancel / normal
Getting started →

For skeptics

  • Exclude any site in one click
  • Not a full Vim emulator — browser-shaped modal UI
  • Chrome-only product focus in this build
  • Every permission is documented for review

Questions

Common questions

How is this different from classic keyboard browsers?

Beyond link hints and scrolling, Vim+ adds a command palette, side panel command center, reading tools (progress, reader, highlighter), window docking, hashbangs for search and AI sites, and an in-extension wiki. The aim is one coherent control plane for everyday Chrome use.

Do I need to know Vim?

No. Learn j k f o Esc and you’re useful. Vim muscle memory helps later; it is not a prerequisite.

Will it fight Gmail / Docs / IDEs in the browser?

Use Off for this site in the side panel, exclusions, or pass-keys. Escape hatches are first-class — not an afterthought.

What about Firefox / Safari / Arc?

This distribution is Chrome MV3-focused. Other browsers are out of scope for the product promise here.

Does it phone home?

No author-operated telemetry backend. Settings stay in your Chrome profile; sync is opt-in. AI hashbangs open third-party sites with your query — same as typing there yourself. See the privacy policy.

Why so many permissions?

Tabs, history, windows, side panel, and optional privacy tools need explicit Chrome APIs. We publish store-style justifications on the permissions page — read them before installing.

Design principles

What we optimize for

Latency of intentThought → action with minimal mode error.
DiscoverabilityPalette and side panel beat memorizing a novel day one.
Local-firstMaps and marks live in your profile; sync is opt-in.
Docs that shipWiki in the extension; this site is the public handbook.
Escape hatchesExclusions when a site needs its own shortcuts.
Honest scopeChrome MV3 keyboard navigation — not a second browser.

Next step

Install it and try five keys.

Vim+ is free and open source for Google Chrome, by Jamal Yusuf. Start with j k f o Esc — add maps only when they earn their keep.