To install Zen Browser on Ubuntu, you choose between three official builds. There’s a tarball that Zen’s own script drops into your home folder, the Flathub package, and a portable AppImage. None of them comes from apt or the Snap Store, and each keeps your profile in a different folder. That’s the part that trips people up later, when they back up bookmarks or try to remove the browser cleanly.
You’ll end up with Zen running from the method that suits you, set as your default browser, and with workspaces, split view and compact mode ready to use. Two steps from the earlier version of this guide failed in testing (the Flatpak --user install and the script on a brand new account), so both are fixed below, along with Ubuntu’s sandbox warning. I went through every step again on Ubuntu 26.04 and 24.04 in October 2026 with Zen 1.23.4b, and they still hold on both releases.
Which Zen install method should you pick?
Pick the official script if you want the smallest install and no sudo, pick Flathub if you’d rather let flatpak update (or GNOME Software, once its Flatpak plugin is installed) handle upgrades, and keep the AppImage for trying Zen without installing anything. The disk figures below were measured on the lab VMs, and the Flathub number matters most: on a machine with no other Flatpak apps, the runtimes Zen needs take far more space than the browser itself.
| What you get | Official script (tarball) | Flathub | AppImage |
|---|---|---|---|
| Disk used | 408 MB | 435 MB app, 2.4 GB with runtimes on a fresh system | About 140 MB single file |
| Needs sudo | No | Yes (system install) | No |
| Install location | ~/.tarball-installations/zen | /var/lib/flatpak | Wherever you save it |
| Profile folder | ~/.config/zen | ~/.var/app/app.zen_browser.zen/.zen | ~/.config/zen (shared with the tarball) |
| How it updates | Re-run the script | flatpak update, or GNOME Software with its Flatpak plugin | Download the new file |
| Architectures | x86_64, aarch64 | x86_64, aarch64 | x86_64, aarch64 |
If you’re unsure, start with the script. It takes well under a minute on a normal connection, touches nothing outside your home folder, and you can always add the Flatpak later. Just do not run the tarball and the AppImage side by side, because both keep their profiles in ~/.config/zen with one shared profiles.ini, which gets confusing fast. For the bigger picture on the packaging formats, the Snap vs Flatpak vs AppImage comparison explains the trade-offs.
Prerequisites
Zen is a desktop app, so the checklist is short. Tick these off before you start:
- You’re on Ubuntu 26.04 LTS or 24.04 LTS with a graphical desktop session.
- Your user can run
sudo(only the Flatpak path and the sandbox fix need it). - You have
curlinstalled. Ubuntu desktops shipwget,tarandxz, but not alwayscurl, and the install script needs it. - You have about 500 MB free for the tarball or AppImage, or 3 GB if Flathub is new on this machine.
A 64-bit Intel/AMD or ARM machine works with every method. Zen does not publish 32-bit builds, and the script stops with “Zen doesn’t support this architecture” if it can’t match yours.
Install Zen Browser on Ubuntu with the official script
The script runs as your normal user and never touches apt or /usr, which is why it needs no password and why removing it later is just a few rm commands. It downloads the latest zen.linux-x86_64.tar.xz (or the aarch64 one) from GitHub and leaves you with three things you can check afterwards:
- You’ll find the browser itself in
~/.tarball-installations/zen. - You’ll have a small launcher script at
~/.local/bin/zenthat starts it. - You’ll see a menu entry at
~/.local/share/applications/zen.desktop, which puts Zen in the Activities search.
Those paths come straight from the script source, and they matter again in the update and uninstall steps.
If curl isn’t on your machine yet, add it first with sudo apt install -y curl, because the installer is fetched with it and calls it again to download Zen. Then create the two folders it writes into. The script calls mkdir without -p, so on an account where ~/.local doesn’t exist yet it stops halfway with mkdir: No such file or directory. That happened on both fresh lab accounts, and this one line prevents it:
mkdir -p ~/.local/bin ~/.local/share/applications
Now run Zen’s installer. This is the command from the official Linux install guide, piped to bash instead of $SHELL because the script is written for bash:
curl -fsSL https://github.com/zen-browser/updates-server/raw/refs/heads/main/install.sh | bash
After the download progress bar, a successful run ends like this. If you see “Installation is successful”, you’re done with the install itself:
Welcome to Zen tarball installer, just chill and wait for the installation to complete!
64-bit (Intel/AMD) architecture identified!
Downloading the latest package
OK
Extracting Zen Browser...
Untarred successfully!
Checking to see if an older installation exists
Creating the /home/lorna/.tarball-installations directory for installation
Zen successfully moved to your safe place!
Created executable for your $PATH if you ever need
Created desktop entry successfully
Installation is successful
Done, and done, have fun! π·
Ubuntu adds ~/.local/bin to your PATH from ~/.profile, and only when the folder exists at login. A new terminal window won’t re-read that file, so zen stays “command not found” until you log out and back in. To use it right away, load the profile into the current terminal, then check what version you got:
source ~/.profile
zen --version
You should see a single line with the Zen version. On the lab machine it read:
Mozilla Zen 1.23.4b
The same check, together with the launcher files and the install size, looked like this on Ubuntu 26.04. The Milestone line in platform.ini tells you which Firefox release the build sits on, which helps when an extension asks for a minimum Firefox version:

Launch Zen from the Activities overview by searching for “Zen Browser”, or start it from a terminal with zen &. If you also see a line about CanCreateUserNamespace in the terminal, that’s the Ubuntu sandbox restriction covered next.
Allow Zen’s sandbox through AppArmor
Every time the tarball build starts on Ubuntu 26.04 or 24.04, it prints Sandbox: CanCreateUserNamespace() unshare(CLONE_NEWPID): EPERM. Both releases set kernel.apparmor_restrict_unprivileged_userns = 1, so an app may only create user namespaces if an AppArmor profile allows it. Ubuntu ships such profiles for Firefox and Chrome at their usual install paths, but nothing covers a browser living in your home folder, so Zen’s content sandbox runs with one layer missing. The browser still works; you’re just giving up part of the isolation that keeps a bad web page away from your files.
The fix is a small profile modelled on the one Ubuntu ships for Firefox. Know the trade-off before you add it: Ubuntu’s own browser profiles attach to root-owned paths, while this one attaches to a path your user can write to, so any program placed at that path also gets user namespaces. On a single-user desktop that’s a fair price for a working browser sandbox. Create the profile:
sudo vim /etc/apparmor.d/zen-browser
Paste in these lines. The /home/*/ path matches the script’s install folder for every user whose home directory lives under /home:
abi <abi/4.0>,
include <tunables/global>
profile zen-browser /home/*/.tarball-installations/zen/zen flags=(unconfined) {
userns,
include if exists <local/zen-browser>
}
Load the profile into the kernel. AppArmor attaches a profile when a program starts, so close any open Zen windows first, because a running Zen keeps the restriction it started with. No reboot is needed:
sudo apparmor_parser -r /etc/apparmor.d/zen-browser
Run zen --version again. The EPERM line is gone and only the version prints, which is what both lab VMs showed after loading the profile. The same message also appears when you start the Flatpak or the AppImage from a terminal, but this profile only covers the tarball path. If you want to understand what else you can do with profiles, the AppArmor guide for Ubuntu 26.04 walks through modes, logs and local overrides.
Install Zen Browser from Flathub
Flathub is the method Zen’s own docs recommend, and it’s a good pick if you already use Flatpak apps, because the runtimes are shared and the 2.4 GB first-time cost mostly disappears. Ubuntu doesn’t ship Flatpak by default, so install it and add the Flathub remote first. The Snap, Flatpak and APT guide for Ubuntu 26.04 covers that setup in more depth if you’re new to it.
sudo apt update
sudo apt install -y flatpak
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Want Flatpak apps to show up in GNOME Software too? Add gnome-software-plugin-flatpak to that install line; the package is in the archive on both releases. Next, install Zen system-wide from the remote you just added:
sudo flatpak install -y flathub app.zen_browser.zen
Flatpak pulls the org.freedesktop.Platform runtime, its GL and codec extensions, and then the app. That took 1 minute 20 seconds on 26.04 and 1 minute 43 seconds on 24.04 over the same connection. The last lines of the install should list the app itself:
Installing runtime/org.freedesktop.Platform.codecs-extra/x86_64/25.08-extra
Installing runtime/org.freedesktop.Platform/x86_64/25.08
Installing app/app.zen_browser.zen/x86_64/stable
Flathub publishes Zen builds within hours of the GitHub release (the 1.23.4b manifest merged on Flathub the same day), so the version should match what the script installs. Confirm what you got:
flatpak list --app --columns=application,version,installation
The lab got the same build as the tarball, and the third column confirms it’s a system-wide install, which is what the uninstall commands later assume:
app.zen_browser.zen 1.23.4b system
Log out and back in once so Zen appears in the app grid, because GNOME only picks up Flatpak’s menu folder at login. You only need to do that the first time Flatpak is set up, so later Flatpak apps show up straight away. Until then, start Zen from a terminal:
flatpak run app.zen_browser.zen &
Prefer to keep everything in your home folder without sudo? You can, but the remote has to be added per user too. Running flatpak install --user against the system remote above fails with “No remote refs found”, which is the bug the old version of this guide had. The fix is in the errors section below, and it’s tested.
Run the Zen AppImage
The AppImage is a single file of about 140 MB you can run from anywhere, which makes it handy for a quick test or a machine where you can’t add software. It doesn’t add a menu entry or update itself, so it’s a poor fit as your everyday browser unless you’re happy to manage it by hand. The releases/latest link always points at the newest build, so the command below will not go stale:
mkdir -p ~/Apps
cd ~/Apps
wget -O zen.AppImage https://github.com/zen-browser/desktop/releases/latest/download/zen-x86_64.AppImage
chmod +x zen.AppImage
On an ARM machine, swap zen-x86_64.AppImage for zen-aarch64.AppImage, because unlike the install script this download does not detect your architecture, so the x86_64 file simply won’t start. Then run it directly:
./zen.AppImage &
You don’t need libfuse2t64 for this one. Older AppImages fail without it, but the current Zen AppImage ran on both lab VMs with only the default fuse3 packages installed. It also keeps its profile under ~/.config/zen, the same folder the tarball build uses, so pick one of the two rather than running both. If you’d like it in your app menu, the AppImage management guide shows how to integrate it.
Finish the first-run setup
The first launch opens a short wizard, and every card can be changed later in Settings, so you cannot get it wrong. It walks you through these choices in order:
- You decide whether to import bookmarks, history and passwords from another browser.
- You pick a colour for your first space.
- You choose a default search engine (Google, Bing or DuckDuckGo).
- You say yes or no to having Zen install uBlock Origin for you.
- You can pin web apps such as GitHub, Slack or Notion to the sidebar, or skip it for now.
- You decide whether Zen becomes your default browser.
The ad-blocking card is the one worth a second look. Saying yes has Zen install uBlock Origin during setup, so you start with blocking already on, and the card itself notes you can remove it any time:

Click “Dive in!” on the last card and you land in the main window. Tabs run down the sidebar on the left, the address bar sits at the top of that sidebar, and the “zen basics” space holds a welcome tab you can close whenever you like:

Before you collect bookmarks, open about:profiles in a new tab and note where your data lives. Zen’s docs still say ~/.zen, but the current tarball build created its profile under ~/.config/zen, with the cache in ~/.cache/zen. That’s the folder to back up, and the one you delete for a truly clean uninstall:

The Flatpak build keeps its profile inside the sandbox at ~/.var/app/app.zen_browser.zen/.zen instead (with a dot in front of zen, which the docs also leave out). The two builds don’t share bookmarks, so pick one as your daily browser.
Make Zen your default browser
If you skipped the wizard card, you can set it from the terminal for the tarball build. The desktop file the script wrote is called zen.desktop, and that name is what Ubuntu stores in ~/.config/mimeapps.list, so links from your mail client or terminal will open Zen once it’s set:
xdg-settings set default-web-browser zen.desktop
Check that the change stuck for both the browser setting and the https link handler:
xdg-settings get default-web-browser
xdg-mime query default x-scheme-handler/https
Both commands should print zen.desktop, and links you click in other apps now open in Zen:
zen.desktop
zen.desktop
These commands were tested with the tarball build only. For the Flatpak build, the menu entry is named after the app ID, so the same command takes app.zen_browser.zen.desktop instead of zen.desktop.
Use workspaces, split view and compact mode
These three features are why most people switch from Firefox, and each has a keyboard shortcut. The table lists the defaults exactly as they appear under Settings, Keyboard Shortcuts in the current build. Some guides still list Ctrl+Alt+C for compact mode, but that’s not the binding any more:
| Action | Default shortcut |
|---|---|
| Toggle compact mode | Ctrl+S |
| Toggle floating sidebar | Ctrl+Alt+S |
| Next / previous workspace | Ctrl+Alt+β / Ctrl+Alt+β |
| Split selected tabs vertically | Ctrl+Alt+V |
| Split selected tabs horizontally | Ctrl+Alt+H |
| Split selected tabs in a grid | Ctrl+Alt+G |
| Close split view | Ctrl+Alt+U |
| Copy current URL | Ctrl+Shift+C |
| Copy current URL as Markdown | Ctrl+Alt+Shift+C |
Notice that Ctrl+S no longer saves the page. Zen moved “Save Page” to Ctrl+Alt+Shift+S, so if you save pages often, rebind one of the two in that settings screen.

Split view works on the tabs you’ve selected. Hold Ctrl, click a second tab in the sidebar so both are highlighted, then press Ctrl+Alt+V. The two pages sit side by side in one window, and the sidebar shows them as a single joined tab:

Press Ctrl+Alt+U to put them back as separate tabs. Compact mode is the opposite idea: Ctrl+S hides the sidebar and toolbar so the page fills the window, and pressing it again brings them back. For layout changes beyond shortcuts, Settings, Look and Feel offers three layouts (Only Sidebar, Sidebar and Top Toolbar, Collapsed Sidebar), and Firefox extensions from addons.mozilla.org install the same way they do in Firefox.
Update Zen Browser
For the tarball build, updating means running the installer again. It removes the old program files and launcher, drops in the new release, and leaves your profile in ~/.config/zen alone:
curl -fsSL https://github.com/zen-browser/updates-server/raw/refs/heads/main/install.sh | bash
On a re-run you’ll see it find and replace the previous install before the usual success lines, which confirms it’s an upgrade and not a second copy:
Checking to see if an older installation exists
Old bin file detected, removing...
Old app files are found, removing...
Old app files are found, removing...
Zen successfully moved to your safe place!
The AppArmor profile keeps working after an update because the install path doesn’t change. The Flatpak build updates with your other Flatpak apps, or on its own:
sudo flatpak update -y app.zen_browser.zen
For the AppImage, run the same wget command from earlier to replace ~/Apps/zen.AppImage with the newest file. The Zen releases page lists what changed in each build if you like to check before upgrading.
Uninstall Zen Browser
Removing Zen is easy once you know what each method leaves behind, because none of them uses apt and so apt remove won’t find anything. Before you start, check these:
- You’ve backed up
~/.config/zen(tarball or AppImage) or~/.var/app/app.zen_browser.zen(Flatpak) if you might come back. - You’ve closed every Zen window, so nothing is writing to the profile while you delete it.
- You know whether you added the AppArmor profile, since that file lives outside your home folder.
For the tarball build, delete what the script created, then unload the AppArmor profile before removing its file (deleting the file alone leaves it active until the next reboot). The last line wipes your bookmarks and history:
rm -rf ~/.tarball-installations/zen
rm -f ~/.local/bin/zen ~/.local/share/applications/zen.desktop
sudo apparmor_parser -R /etc/apparmor.d/zen-browser
sudo rm -f /etc/apparmor.d/zen-browser
rm -rf ~/.config/zen ~/.cache/zen
For Flathub, uninstall the app, then remove the runtimes nothing else uses. On a machine where Zen was the only Flatpak, that second command took /var/lib/flatpak from about 2.4 GB back down to 4.2 MB:
sudo flatpak uninstall -y app.zen_browser.zen
sudo flatpak uninstall -y --unused
rm -rf ~/.var/app/app.zen_browser.zen
The last line deletes your Flatpak profile by hand. Skip --delete-data here: under sudo it targets root’s data instead of yours, and on the lab VM it printed “Cannot autolaunch D-Bus without X11 $DISPLAY” partway through. Plain rm makes it obvious which folder goes. The AppImage needs only rm ~/Apps/zen.AppImage, plus ~/.config/zen if you want the profile gone too.
Fix common Zen install errors on Ubuntu
Each error below came up on the lab VMs while testing this guide, so the messages are exactly what you’ll see. Two of them only appear on minimal or brand new accounts, which is why many people never hit them, and the third comes from mixing Flatpak’s system and user installs.
“mkdir: No such file or directory” during the install script
The script got as far as moving Zen into place, then failed while creating its launcher folder:
Zen successfully moved to your safe place!
/home/lorna/.local/bin not found, creating it for you
mkdir: No such file or directory
That’s the wording on Ubuntu 26.04. On 24.04 the same failure reads mkdir: cannot create directory '/home/<user>/.local/bin': No such file or directory, which a fresh test account on the 24.04 VM printed word for word. Either way, your account has no ~/.local folder yet, which is common on new users and machines you mostly reach over SSH. Run mkdir -p ~/.local/bin ~/.local/share/applications and start the installer again. It detects the half-finished copy, replaces it, and completes normally.
“Couldn’t load XPCOM” when starting Zen
Zen exits straight away and names a missing shared library. On a 26.04 install without the desktop libraries it was GTK:
XPCOMGlueLoad error for file /home/lorna/.tarball-installations/zen/libmozgtk.so:
libgtk-3.so.0: cannot open shared object file: No such file or directory
Couldn't load XPCOM.
On 24.04, with GTK already added, the same error named libX11-xcb.so.1 instead. A normal Ubuntu desktop has all of these, so you’ll only meet this on a minimal or server install. Install the three packages that cleared it on both releases:
sudo apt install -y libgtk-3-0t64 libx11-xcb1 libasound2t64
Skip ldd for this one. Running it on Zen’s binaries lists Zen’s own bundled libraries, such as libmozgtk.so, as “not found” too, which sends you looking for packages that don’t exist. The XPCOM message already names the real missing library.
“error: No remote refs found for ‘flathub'”
This appears when you add Flathub with sudo (a system remote) and then install with --user, because per-user installs only look at per-user remotes:
Looking for matchesβ¦
error: No remote refs found for βflathubβ
Either drop --user and install system-wide as shown earlier, or add Flathub for your user as well and install from it:
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y flathub app.zen_browser.zen
That per-user install worked on the first try in the lab and stored everything under ~/.local/share/flatpak, which grew to 2.4 GB with the runtimes. Use flatpak update --user and flatpak uninstall --user for it from then on. For more on juggling the two installation types, see how to manage Flatpak applications on Linux.
Common questions about Zen on Ubuntu
Is there a Zen Browser .deb, apt repository or snap?
No. Zen publishes only the tarball, the AppImage and the Flathub package for Linux. Searching the Ubuntu archive with apt-cache search and the Snap Store with snap find zen-browser returned nothing on either lab VM, so treat any third-party .deb or PPA with the usual caution.
Is Zen based on Firefox or Chromium?
Firefox. Zen uses Mozilla’s Gecko engine, Firefox extensions install unchanged, and the Milestone line in platform.ini (shown in the version check above) tells you which Firefox release your build follows. If you’d rather stay on a Chromium-based browser, the guides for Brave on Ubuntu and Google Chrome on Ubuntu cover those.
Can I try the nightly Twilight build?
Yes, on x86_64 machines. Zen offers a separate install-twilight.sh script next to the regular one, and it installs to ~/.tarball-installations/zen-twilight, so it sits beside the stable build without replacing it. That script only downloads the x86_64 tarball, and its path isn’t covered by the AppArmor profile above. This guide only tested the stable script, so keep Twilight for trying new features, not for your everyday browsing.