Skip to content

About

Midori for Windows, Linux & Mac, web browser focused on lightness and privacy.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

408 stars

Watchers

10 watching

Forks

Latest commit

 

History

3,229 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Midori Browser

Downloads ko-fi Telegram

Midori Browser is a lightweight, fast, and secure browser that promotes user privacy; it has evolved and is now based on the Gecko engine instead of WebKit.

Contents

Features

  • Privacy-oriented defaults and a built-in protection extension.
  • Workspace management and a customized new-tab page.
  • Custom branding and update configuration.
  • Builds for Linux, macOS, and Windows.
  • Compatibility with Firefox WebExtensions.

Install Midori

Debian and Ubuntu

sudo wget -O /etc/apt/trusted.gpg.d/midori-archive-keyring.gpg \
  http://repo.astian.org/midori-archive-keyring.gpg
echo "deb http://repo.astian.org midori main" | \
  sudo tee /etc/apt/sources.list.d/midori.list
sudo apt update
sudo apt install midori

For other platforms, download the current installer from the Midori website.

Build from source

This repository includes the Firefox-derived engine in engine/. Run all commands in this section from the repository root; the root does not contain a mach executable. The npm scripts invoke engine/mach through Amelia with the required Midori configuration.

The first build downloads toolchains and can take a long time. Reserve at least 50 GB of free disk space; 16 GB of RAM is recommended. Use the Node.js version in .nvmrc (currently 22) and Python in .python-version (currently 3.11). Rust, Clang, and platform libraries are also required.

Linux x86_64

Install Node.js 22 and Python 3.11 before continuing. The following is the supported manual development build on Debian or Ubuntu:

git clone https://github.com/goastian/midori-desktop.git
cd midori-desktop

sudo apt update
sudo apt install -y \
  build-essential libgtk-3-dev libdbus-glib-1-dev libxt-dev \
  libasound2-dev libpulse-dev libpython3-dev libdrm-dev \
  libcurl4-openssl-dev libx11-xcb-dev nasm yasm clang lld llvm curl \
  xauth xvfb

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
. "$HOME/.cargo/env"
node --version
python3.11 --version
rustc --version

npm ci
npm run brand
npm run bootstrap:linux
npm run build:linux-x64

The compiled browser is written below engine/obj-*/dist/bin/midori. Confirm the output and start it with:

bash scripts/verify-build-output.sh linux x86_64
npm run browser

For an ARM64 Linux build, install gcc-aarch64-linux-gnu and g++-aarch64-linux-gnu, then run:

npm run setup:linux-arm64
npm run build:linux-arm64
bash scripts/verify-build-output.sh linux aarch64

macOS

Install Xcode Command Line Tools, Homebrew, Node.js, Python 3.11, and Rust. Then install the additional tools and build for the host architecture:

xcode-select --install
brew install gnu-tar zstd
npm ci
npm run brand

cd engine
AMELIA_PLATFORM=darwin ./mach --no-interactive bootstrap \
  --application-choice browser --exclude macos-sdk
cd ..

npm run build:mac-arm64  # Apple silicon
# or: npm run build:mac-x64

The application is created under engine/obj-*/dist/Midori.app. Packaging is optional and requires the signing credentials used by the release process.

Windows targets

Windows packages are cross-compiled from Linux in the CI workflow. To reproduce that process on a Linux host, install the Linux dependencies listed above plus msitools, dos2unix, wine64, and xvfb; then run:

npm ci
npm run brand
AMELIA_PLATFORM=win32 MIDORI_CROSS_COMPILING=1 npm run bootstrap
npm run setup:windows
npm run build:win-x64
# or: npm run build:win-arm64

The executable is placed at engine/obj-*/dist/bin/midori.exe. A native Windows development environment is not documented or maintained by this repository; use the cross-compilation workflow above or the release artifacts.

Package a completed build

Building creates a runnable development binary. Packaging is a separate step and prepares distributable archives. For example, on Linux x86_64:

npm run package:linux-x64
npm run package:linux-x64-formats

The archives and native packages are written to dist/. Use the matching package:<platform>-<architecture> script for macOS or Windows. Release builds additionally set CI-only environment variables and may require signing keys; do not set MIDORI_RELEASE for an ordinary local development build.

Tests and common recovery commands

npm test
npm run test:unit
npm run l10n:validate

If an engine checkout is missing or incomplete, retrieve and initialize it with npm run init. To remove local build output, use cd engine && ./mach clobber; the next build will be a clean rebuild.

Project layout

engine/    Firefox-derived source tree and build output
src/       Midori source additions and overrides
configs/   Branding and platform configuration
scripts/   Build, packaging, and validation helpers
tests/     Repository-level tests

Contributing

Before opening a pull request, keep changes focused and run the tests relevant to the files you modified. See CONTRIBUTING.md for contribution guidelines and GitHub Issues for open work.

Do not submit generated build output. For security issues, follow the security policy when it is available for the branch you are using.

Documentation and support

License

Midori Browser is licensed under the Mozilla Public License 2.0. Midori is based on Mozilla Firefox but is not affiliated with Mozilla.

Star History

Star History Chart

About

Midori for Windows, Linux & Mac, web browser focused on lightness and privacy.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

408 stars

Watchers

10 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages