Open-source project
MultiboxLabs/flow-browser avatar
MultiboxLabs/flow-browser

Flow Browser: an Electron browser for people who want Chrome extensions

A modern, privacy-focused browser with a minimalistic design.

1,082 stars61 forksTypeScriptGPL-3.0

At a glance

What is it?
Flow Browser is a tabbed browser built on Electron, so it renders with Chromium and installs Chrome extensions from the Web Store, but it replaces the browser chrome with a sidebar, spaces and a command palette. It is GPL-3.0, it is on a 0.12 line, and the design is openly borrowed from Arc and Zen.
Who is it for?
Adopt Flow Browser if you want Chrome extension support with a tab and sidebar layout that is not Chrome, and if you are comfortable with an Electron application that carries a Chromium runtime inside it. Do not adopt it if you want a browser that ships weekly security updates from a vendor, since the release line is 0.12 with the last tag in April 2026, and check the resource cost before you move your main browser onto it.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 146 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Chromium rendering, a different shell

Flow Browser is a modern, tabbed web browser with Chrome extension support, built on Electron. The project description calls it a lightweight, feature-rich web browser that combines the power of Chromium with a clean, modern interface, and the repository description is a modern, privacy-focused browser with a minimalistic design.

The architecture is worth stating plainly, because it determines both the strengths and the limits. Electron means the rendering engine is Chromium and the extension support is genuine Chrome extension support. What you give up is the browser you did not build: there is no Chrome process tree, no native browser UI, and no separate browser binary to update.

The project is TypeScript, the licence is GNU GPL v3.0, and the site is flow-browser.com. The install path is a download rather than a package, with the files on the GitHub releases page, and the screenshots in the README are all labelled macOS, which tells you where the author's testing focus is.

The release history shows a project iterating quickly on a pre-1.0 line: v0.11.0 on 2026-03-22, v0.12.0 on 2026-04-15 and v0.12.1 on 2026-04-16, with the last push to the repository on 2026-05-30. The repository is not archived, so it is alive, but the gap between the last release and the last commit is worth keeping in mind.

What the browser actually does

The feature list is where the design shows, and it is organised around the ways a browser can differ from Chrome.

The organising features come first. Profiles let you keep different settings and extensions per profile. Spaces let you organise tabs into separate spaces, and the sidebar gives quick access to bookmarks, history and settings from the side. The command palette lets you search the web or open a new tab, a bookmark or a history entry from a single keystroke. That is the Arc and Zen lineage showing through, and it is the reason a lot of people try the browser at all.

Then the smaller ones. Wide Customization covers custom icons and a new page mode. Persist Tabs keeps your tabs across restarts. Sleep Tabs puts tabs to sleep to save resources, which is the feature that matters on a laptop. The native adblocker blocks ads and trackers without an extension. The offline games are a small set of games you can play at flow://games, which is either charming or strange depending on your mood.

The security item is the one to notice: Good Security asks before opening external applications. A browser that can launch a local program is a browser with a sharp edge, and prompting before it does is the difference between a convenience and a hole.

Extensions install from the Chrome Web Store, and Widevine support lets you watch DRM protected content, which is the feature that separates a hobby browser from one you can use for a streaming service.

The roadmap list is more honest than the feature list

The Upcoming Features section is short, and it reads like a list of things a Chrome user would ask for first, which is a good sign about who the project is for.

Reorder Tabs is the first, which is telling: a tabbed browser where you cannot drag a tab into a different position feels broken to anyone who has used Chrome for more than a day. Topbar lets you choose between a topbar and the sidebar, so the two layouts are alternatives rather than a fixed choice. Downloads, favourites, pinned tabs in spaces and custom search engines are all in the list, and preview tabs would show a tab before you switch to it.

The items themselves describe an ambitious but coherent scope. Nothing here suggests a redesign of the web platform, and everything here is a table stakes feature of a modern browser that a project starting from an Electron shell would have to implement itself.

The feedback loop is a separate service rather than the issue tracker, a userjot board at flowbrowser.userjot.com for feature requests and bugs, and the contributing guide is a single file, CONTRIBUTING.md, in the repository root.

The build: electron-vite, Bun and electron-builder

The package manifest shows a build setup that is more elaborate than a typical Electron application, and the scripts explain why.

The bundler is electron-vite, and the entry point for the main process is ./out/main/index.js. The development script is electron-vite dev, with a watch variant and a devtools variant that sets BROWSER_WINDOW_DEVTOOLS. The build script type-checks first and then builds with PRODUCTION_BUILD=true, and then runs a prune step for the frontend routes, which implies the renderer has generated route files that need cleaning between builds.

There is a build:unpack target that runs electron-builder with the --dir flag, which produces an unpacked directory instead of an installer, and per-platform targets for win, mac and linux. The electron-builder configuration is a TypeScript file, electron-builder.ts, rather than JSON, and there is a patches/ directory, which means the project applies patches to dependencies, a common necessity when you are shipping a patched Chromium.

The package manager is Bun, with bun.lock at the root, and the scripts are all invoked through bun run. There is a .nvmrc for the Node version, and the TypeScript configuration is split into three projects, tsconfig.node.json, tsconfig.web.json and tsconfig.scripts.json, with separate typecheck scripts for the node and web sides. The linter is eslint with a cache, and the formatter is prettier.

The database is Drizzle, with a drizzle.config.ts at the root and the migrations in a drizzle/ directory.

Nightly builds, Electron upgrades and Linux packaging

The script list contains a few things that are unusual enough to explain what the project does between releases.

There is a start:nightly script that runs a helper with the name Flow Nightly before launching the preview, so a second build can run alongside your installed browser without overwriting it. That is a small thing, and it is exactly the kind of thing a project with a real user base does.

Then there are three Electron maintenance scripts. One uses the stock Electron instead of the project's own build. Two upgrade Electron, one to the current release and one to the next one, which is the kind of script that tells you Electron's release cadence is a recurring chore rather than a one-off.

There is also a script to generate the frontend routes and a separate one to prune them, both under scripts/frontend-routes-generator/, and the build calls the pruner. The patcher for dependencies lives in patches/.

The Linux packaging is done properly rather than approximately. The repository root holds com.flow_browser.flow.desktop, the freedesktop entry file, com.flow_browser.flow.metainfo.xml, the AppStream metadata, and com.flow_browser.flow.png, the icon. That trio is what makes the browser show up correctly in a Linux application menu, and its presence is a good signal about how seriously the project takes distribution outside macOS and Windows.

The repository also has a design/ directory, an assets/ directory, a build/ directory with the icon, a docs/ directory with the screenshots, and a components.json for the component library setup, plus the .codex/, .cursor/ and .clinerules directories and an AGENTS.md, which is a lot of tool configuration for one project.

Provenance: electron-browser-shell, Arc and Zen

The Acknowledgements section is short and unusually specific, and it is the honest account of where the project comes from.

Some parts of Flow Browser are based on electron-browser-shell by Sam Maddock, with enhancements and modifications. That is the base, and the tab and sidebar work in this project is a layer built on top of it.

The design is inspired by Arc Browser and Zen Browser, which the README credits for a minimalistic design that is clean and simple. The lineage is coherent: a Chromium rendering model, an Electron embedding, and an interface borrowed from the two browsers that have made the sidebar the fashionable choice.

The project also carries the standard community signals, with a Star History chart, a CodeRabbit pull request review badge, a DeepWiki badge, and contributing links. The CodeRabbit badge is worth noting as a workflow detail, since automated review on every pull request is a substantial ongoing cost for a maintainer.

What is not in the README is equally worth noting. There is no privacy policy, no telemetry statement and no data collection description, even for a project whose description leads with privacy-focused. The native adblocker is described as a feature, but the list of what the browser itself sends is not something the documentation covers, and that is the first question for anyone considering this as their main browser.

Editorial conclusion

Adopt Flow Browser if you want Chrome extension support with a tab and sidebar layout that is not Chrome, and if you are comfortable with an Electron application that carries a Chromium runtime inside it. Do not adopt it if you want a browser that ships weekly security updates from a vendor, since the release line is 0.12 with the last tag in April 2026, and check the resource cost before you move your main browser onto it. Before you start, install the build for your platform from the GitHub releases page, and if you plan to follow the development, read CONTRIBUTING.md, because the project keeps its own Electron upgrade scripts and applies patches, which is where the maintenance effort goes.

Frequently asked questions

What is Flow Browser?

It is a modern, tabbed, privacy-focused web browser with a minimalistic design, built on Electron. It renders with Chromium and supports Chrome extensions from the Web Store, and it is licensed under the GNU General Public License v3.0 with releases published on the GitHub releases page.

Can Flow Browser install Chrome extensions?

Yes. Extensions install from the Chrome Web Store, which is the main practical reason to choose an Electron-based browser, and the extension set is per profile. The browser also ships a native adblocker, so you do not need an extension for that.

What are the main features of Flow Browser?

Profiles with separate settings and extensions, spaces for organising tabs, a sidebar for bookmarks, history and settings, a command palette, persist tabs, sleep tabs to save resources, widevine support for DRM content, a native adblocker, offline games at flow://games, and a prompt before opening external applications.

How do I develop Flow Browser from source?

With Bun as the package manager and electron-vite as the bundler: bun run dev starts the development server, bun run build type-checks and builds with PRODUCTION_BUILD=true before pruning the generated frontend routes, and bun run build:linux, build:win or build:mac invoke electron-builder for the installers. There is also a build:unpack target that produces an unpacked directory.

Is Flow Browser still being developed?

The repository is not archived and the last push was on 2026-05-30, with releases v0.11.0 on 2026-03-22, v0.12.0 on 2026-04-15 and v0.12.1 on 2026-04-16. The project is on a 0.x version line, and the scripts include its own Electron upgrade tooling, a nightly build variant and a patch directory for dependencies.

Official sources

  1. License: GPL-3.0
  2. MultiboxLabs/flow-browser on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/multiboxlabs-flow-browser.svg)](https://hysenlabs.com/projects/multiboxlabs-flow-browser)

Was this useful?