LEAN

A browser with
nothing in the way

NORMAL
Fig. 1 / a working model, press the keys below

Try it

j k d u gg G scroll this website, the way they scroll any page in Lean.

Synopsis

Lean is a small macOS browser for people who work in a terminal.

Every action is a Vim key. Tabs sort themselves into your projects. The window wears your Ghostty theme. A local MCP server lets Claude Code read the page you are looking at.

It starts in under half a second and leaves out most of what other browsers add. In essence, it is lean because of what is missing.

Alpha

closed alpha/macOS 13+/free/50 seats in the first round
--from your browser today, optional
--vim how often you use Vim keys, optional
  • a buildLean for macOS, and every update while the alpha runs
  • a direct lineyour bug reports and wishes go to the person who writes the code
  • no stringsyour email is used for the invitation and nothing else. What is stored

Screens

Lean screenshot: three panes
Fig. 2 / the real thing. More screenshots

Keys

] [
projects URL rules sort every tab into a sidebar group; Jira issues show their status colour; test, production and localhost carry a mark
f F
link hints a label on every link and button; type it to follow, here or in a new tab
T o
palette search open tabs or open an address; your quick-launch entries are in the same list
<C-w>v
panes split the window like a terminal, up to six; the layout survives a restart
gl gL
Proton Pass fills login and one-time code after Touch ID; checks the address first; keeps no password
gd gX
developer tools the full Web Inspector, and a new process for a page that hangs
/ n N
find in the page, next, previous
g,
settings rebind any key; everything is one JSON file, made for your dotfiles

The defaults follow Vimium, so your fingers already know most of them.

Themes

Click one; it repaints this site the way gC repaints Lean. Set "theme": "ghostty" and Lean takes colours and font from your Ghostty config.

Claude Code

Claude Code can list your tabs, read a page, take a screenshot and open an address. Enough to say “look at the error in the tab I have open”.

mcp/127.0.0.1 only/token
$ claude mcp add --transport http lean http://127.0.0.1:8719/mcp \
    --header "Authorization: Bearer $(cat ~/.config/lean/mcp-token)"
reads
and navigates. No tool clicks, types or runs a script in a tab where you are logged in.
refuses
requests without the token, from web pages, and from the network.
is attacked
on purpose: a script that ships with Lean goes at a throwaway copy with stolen tokens, look-alike host names, floods and a hostile page.

Numbers

launch until a page is shown, median of 5
Lean
Chrome
Comet
Safari
Edge
memory with the same 16 tabs open
Lean
Chrome
Edge
Safari
Comet

One Mac, 12 November 2026; the benchmark script ships with Lean. Lean keeps the 8 tabs used last awake and puts the rest to sleep. With all 16 awake it used 2,259 MB, more than Chrome: the saving comes from sleeping tabs, not from magic.

Left out

extensions
Chrome extensions cannot be loaded
passkeys
need a permission Apple grants to few browsers
history
and bookmarks; open tabs and quick-launch entries are all there is
ad blocking
not built in
private windows
one window, one profile
own engine
pages are drawn by the WebKit of macOS; fixes arrive with system updates

If you need one of these every day, Lean is your second browser, not your first.

Platforms

macOS
now closed alpha, macOS 13 or later
Linux
likely next Linux has the same engine family (WebKitGTK), so pages, keys and your config file would behave the same. Not started.
Windows
maybe Windows has no system WebKit, so Lean would sit on a different engine there. Only if enough people ask.

Want it on Linux or Windows? Say so in --note when you request access. That decides the order.

Coffee

Lean is free. If you like where it is going, you can buy its maker a coffee.

$ lean coffee --buy ko-fi.com ↗

Links