ChromiumStack
Download

A shelf of real browsers,
Every Chromium, one click away.

Pick a Chromium version, press Launch, and it opens as an ordinary desktop browser — tabs, bookmarks, DevTools and all. No account, no build step, nothing to configure.

Download for your platform
Other platforms
0
milestones catalogued
0
years of engines
0
newest milestone
60
95
localhost:4173 Chromium 152
Why people keep one of these around

Modern browsers are excellent liars.

They quietly polyfill, gracefully degrade and make your site look finished — right up until it meets an engine from 2019, where an unsupported CSS declaration is dropped, not degraded, and a layout falls apart in a way nothing on your machine will ever show you.

Kiosks & devices

POS terminals, scanners and industrial tablets ship a System WebView years behind the OS. It is the engine that decides whether your CSS survives.

The same engine on your desk, in a window you can click around in.

The support ticket

A customer on a locked-down browser reports a bug you cannot reproduce anywhere.

Open their engine, load the page, see it happen.

The browserslist claim

Your config promises support for an old floor. Nobody has ever checked.

Two minutes to find out whether the promise is true.

The regression hunt

Something broke somewhere between two releases.

90, 105 and 120 open side by side, bisected by eye.

Sixty seconds to your first old browser

1

Open it

Double-click the launcher. The manager opens in your normal browser: every version, what is installed, what each one costs in disk.

2

Pick a version

Press Launch on any row. The first launch of a version downloads it — 90–300 MB, a few minutes, once. Every launch after that is instant.

3

Use it

A real browser window opens. Type a URL, open DevTools, log in, keep the profile. Close the launcher window when you are done.

One row, one button. The download happens once; after that the same button opens a 2019 engine in about the time a tab takes.
Tip

Type a URL in the box at the top of the manager and every version you launch opens straight to it. localhost:4173 is fine — it is the fastest way to compare four engines on the same page.

A look around

Three versions in flight, one window.

Downloads, launches, profile resets and Docker containers all report into the same strip along the bottom — and the log remembers every one of them.

The same window in the light theme Three jobs running at once: Chromium 105 downloading at 43 percent with 100 MB of 232 MB transferred and 16 seconds left, two other versions already open, and the job log switching between all three
One version downloading, two already open. The download shows the bytes and the time left rather than a spinner, the log keeps a tab per job, and the bar at the bottom follows whichever one you picked. The window follows your system theme — or pin it light or dark from the header, as it is doing here.
The version shelf

Every version on the shelf, verified against the live archive.

And any other snapshot revision works too. Drag the scrubber, or click a year.

Chromium 74
74.0.3729.0 · r638880 x86_64 · Rosetta
2019

No flexbox `gap` (84), `aspect-ratio`/`:is()` (88), optional chaining (80).

./chromium-stack.sh run 74
2017–2018
60 · 65 · 70

Hard floors for very old WebViews.

2019–2020
74 · 76 · 80

No flexbox gap; optional chaining arrives in 80.

2020–2021
85 · 90

Flexbox gap, aspect-ratio, :is().

2021–2022
95 · 100 · 105

Container queries and :has() arrive in 105.

2023
110 · 115 · 120

dvh, CSS nesting, view transitions, subgrid.

2024
125 · 130

Near-current — the control when you are bisecting.

For terminal people

The manager is a front end for the CLI.

Both do the same things, so they cannot drift apart. Flags for run: --size 1280x800, --gpu / --no-gpu, --no-restart, and anything after -- goes straight to Chromium.

Windows runs the same commands through .\chromium-stack.ps1.

zsh — Chromium-Stack
$
Docker edition

The Linux build in a container, shown in a browser tab.

Runs the Linux x86_64 build in a container and shows its desktop in a tab of your normal browser, over noVNC. It never touches Rosetta, so on Apple Silicon it sidesteps the stack-profiler crash.

Each version gets its own image, container, profile volume and port, so several can run side by side. Docker is optional, and the native launcher is what most people should use.

./chromium-stack-docker.sh start 74
./chromium-stack-docker.sh stop 74
./chromium-stack-docker.sh logs 74
./chromium-stack-docker.sh rebuild 74
./chromium-stack-docker.sh list
./chromium-stack-docker.sh purge 74

Inside the container, localhost is the container. Use http://host.docker.internal:4173 to reach a server running on your own machine.

Download

Every download is self-contained.

The launcher finds everything it needs inside the package. Nothing to install, nothing to keep together, no loose folder of files to lose.

Latest release
ChromiumStack
Pick the build for your platform below
Go to releases
All platforms
macOS
Latest release

Unzip → double-click ChromiumStack.app

Windows
Latest release

Unzip → double-click ChromiumStack.bat

Linux
Latest release

Extract → run ./ChromiumStack

Need an older build, the changelog or the checksums? Every version ChromiumStack has shipped stays available.
All releases

Runs on — macOS 10.13+ on Intel and 11+ on Apple Silicon · Windows 10/11, using the PowerShell 5.1 that ships with them · Linux x86_64. The manager wants Python 3 on macOS and Linux; the command line does not.

Paranoid, sensibly so? shasum -c SHA256SUMS.txt verifies the download against the published checksums.

Good to know

The honest caveats.

It really is a browser

Address bar, tabs, bookmarks, history, downloads, DevTools — all there, and each version keeps its own profile between launches. Do bear in mind that the old ones really are old. Sites built for a modern engine may refuse to load, render strangely, or nag you to upgrade. That is the browser being honest, not the tool misbehaving.

Point it at a production build, not your dev server

Vite, Next.js and friends ship your source untranspiled and skip the CSS-fallback step, so an old engine chokes on the dev server even when your shipped build is perfectly fine. A blank page on localhost:3000 usually means "the dev server is modern", not "my code is broken". Build the site the way you deploy it, serve the output, and open that.

Stability on Apple Silicon

Chromium publishes native arm64 macOS builds from roughly M92 on, so 95 and later run natively. 60 through 90 have no arm64 build, so they run through Rosetta. Those builds run with --disable-gpu by default, which removes the GPU-process crash completely.

Chromium's stack sampling profiler occasionally segfaults under Rosetta and there is no switch to turn it off, so the launcher relaunches the browser and lets Chromium restore your tabs, up to 5 times. Use --no-restart if you would rather it stop and show the log.

Nothing listens outside your machine

The server binds to 127.0.0.1 and every request must carry a token generated for that run, so a web page you happen to have open cannot drive your browser installs. Closing the launcher window stops the manager; browsers it opened keep running.

Keeping disk under control

Each version is a separate 90–300 MB download. The ··· menu on any installed row can reset the profile, delete the browser but keep the profile, or delete both. A running total across every browser and profile sits at the top of the manager, so it is obvious when to clear something out.

Contact

Found something? Say so.

Windows reports especially welcome — nothing on the Windows side has been run on Windows yet.

Email
1m93.contact@gmail.com

For anything that does not belong in a public issue.

GitHub
github.com/1m93

Issues, releases and the source, all in one place.