mrkeyoor.com_
Wed 09 Sept 06:48 UTC
Dev Toolsevaluationupdated 09 Sept 2026

serenity review

SerenityOS is a graphical Unix-like operating system built in one repository, including its kernel, desktop, browser, applications, libraries, and developer tools. It is meant for people who want to study and build an operating system with a late-1990s desktop style, rather than install a conventional Linux distribution.

Verdict

Our SerenityOS run installed 36 packages in 20 seconds and built the Tests/ClangPlugins Python project in 7 seconds; those results do not cover the operating system build. SerenityOS is an excellent codebase to study or join if compiling the toolchain and living on a moving ABI sound enjoyable. Choose a released desktop OS if you need an installer, stable application compatibility, or a machine you can treat as a secure daily driver.

We ran it

Lab card: what happened when we ran serenityScreenshot of serenity (serenityos.org)
Install✓ · 20s36 packages · 37 MB
Build✓ · 7s
Testsn/ano test script
Known vulns0(pip-audit)
Repo18646 files~1,383,167 lines of source · 113.5 MB · 13 CI workflows

Answers from our run

Does serenity build from source?

Dependencies installed in 20 seconds (36 packages), and the build succeeded in 7 seconds. We cloned commit c594b79 into a clean Debian container with 3 CPUs and no project-specific setup.

Does serenity have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does serenity have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use serenity?

Desktop users who want an installer image: the FAQ says there are no ISO images and that the project does not cater to non-technical users.

What are the alternatives to serenity?

Haiku, Redox, ToaruOS. Our SerenityOS run installed 36 packages in 20 seconds and built the Tests/ClangPlugins Python project in 7 seconds; those results do not cover the operating system build.

Setup2/5The OS needs a cross-compiler, host packages, an image build, and QEMU
Docs5/5Build, contribution, port, and development caveats are plainly documented
Community5/533,806 stars with code, issue, and pull-request activity in September 2026
Maturity3/5Wide system scope, but no stable ABI, binary package manager, or releases

Who it’s for

Operating-system developers who want readable C++ code spanning a kernel, desktop, browser, and applications.
Contributors willing to build a cross-compiler, run the system in QEMU, and start with a small patch.
Learners who value one source tree where userland and the operating system evolve together.
Retro-computing fans who care about the late-1990s interface as much as the Unix-like internals.

Who it’s NOT for

Desktop users who want an installer image: the FAQ says there are no ISO images and that the project does not cater to non-technical users.
Application vendors who require a stable binary target: SerenityOS says its ABI has no stability guarantee and provides no Linux-style binary package manager.
Operators looking for a hardened production host: the build guide says the default anon account can become root without a password and documents foo as its password.
First-time contributors planning a new application or large subsystem: the contribution guide asks the first couple of pull requests to stay small.
Developers who expect GitHub issues to provide build support: project policy sends build problems to Discord and rejects support requests from the issue tracker.

Setup reality

Our sandbox found the Python project in ./Tests/ClangPlugins/, installed 36 packages in 20 seconds, and used 37 MB on disk. Its build succeeded in 7 seconds. No test script or target was available, so tests were skipped; pip-audit found 0 known vulnerabilities. These figures do not describe a full SerenityOS compile.

The operating system build needs no account credentials, but it does need a cross-compilation toolchain, host packages, downloaded database files, and QEMU. The guide requires GCC 14 or Clang 17+, CMake 3.25+, and QEMU 6.2+ on supported hosts.

There is no ISO or binary package manager. The normal command builds the system, creates a disk image, and launches a virtual machine. Ports are compiled from source, the ABI may change at any moment, and the default development image permits passwordless root access for anon.

SerenityOS targets developers, not desktop buyers

SerenityOS puts a custom kernel, desktop, browser, applications, and libraries in one 18,646-file source tree. The project calls itself a graphical Unix-like system for x86_64, Arm, and RISC-V computers. Its visual reference is late-1990s productivity software, while its command-line ambitions come from later Unix systems. This combination is unusually coherent because the same repository owns the window server, shell, GUI toolkit, system services, and everyday applications.

The intended user is stated with refreshing bluntness. SerenityOS exists for its developers, and its FAQ says there are no ISO images because it does not cater to non-technical users. The default route is a source build that opens the result in QEMU. Someone looking for a polished replacement for Windows, macOS, or Linux is shopping in the wrong aisle. Someone curious about how an operating system fits together can inspect about 1,383,167 lines of source without crossing repository boundaries.

The first run builds a cross-compiler before QEMU opens

Building the operating system requires GCC 14 or Clang 17+, CMake 3.25+, and QEMU 6.2 or newer. Debian and Ubuntu users also need a long list of host packages covering compilation, disk images, emulation, caching, compression, and cryptographic libraries. Older host distributions may need another compiler source. If the installed CMake is too old, the SerenityOS scripts attempt to build a suitable copy themselves.

Meta/serenity.sh run compiles the system, installs it into a build root, creates a disk image, and starts the virtual machine. The first run also downloads required database files and builds the cross-compiler toolchain. SerenityOS supports 3 target architectures, with the host architecture selected by default. Rebuilds should be faster after that toolchain exists, but the documentation supplies no promised full-build time, and our lab did not measure one.

What happened when we ran it

Our sandbox run at commit c594b79 located a Python project under Tests/ClangPlugins, then installed 36 packages in 20 seconds. The installed dependencies occupied 37 MB. The build step for that project succeeded in 7 seconds. These are useful numbers for the clang-plugin checks only; presenting them as a SerenityOS kernel or disk-image build would be false.

The harness found no test script or target, so it skipped tests. Pip-audit reported 0 known vulnerabilities in the installed Python environment. The checkout itself occupied 113.5 MB and contained about 1,383,167 source lines. Its structural scan counted 13 CI workflow files, no Dockerfile, and no tests directory. None of those signals proves that the full C++ system builds in the fresh Debian container used for this run.

More than 300 ports still compile from source

The repository lists more than 300 ports, including compilers, Unix utilities, games, and multimedia software. That is a substantial catalog for an independent operating system. SerenityOS also ships its own browser stack, POSIX-style virtual filesystems, networking, development tools, file-format support, and desktop programs. The attraction is the shared design language: a contributor can trace behavior from a GUI application through project libraries into the kernel without switching to several upstream codebases.

Package handling remains intentionally developer-facing. There is no Linux-style manager for prebuilt binaries, and the FAQ says the SerenityOS ABI may change at any moment. Each port is built from source, usually on the host and added to the filesystem image before boot. Compiling ports inside SerenityOS requires manual work and is not an actively supported workflow. The 300-plus catalog therefore signals breadth, while installation remains closer to image construction than clicking an app-store button.

Thirteen CI workflows do not make the default image secure

Our scan found 13 CI workflow files, and the README describes memory protections, process promises, address randomization, and web-content isolation. The build guide still warns that its development defaults are deliberately unsafe: the anon user can become root without a password, and its documented password is foo. Anyone exposing a SerenityOS instance to untrusted users must change those defaults and review the system as experimental software, not assume the security feature list settles the question.

Contribution rules are equally direct. New contributors should keep their first couple of pull requests small and avoid starting with a new application or library. Code uses SerenityOS C++26 conventions and project containers, while formatting requires clang-format 20 or later. Build-support questions belong in Discord rather than GitHub issues. Those constraints can feel strict, but they tell a prospective contributor how review works before a large patch consumes a month.

September activity outweighs the missing release feed

GitHub recorded 33,806 stars, 744 combined issues and pull requests, and a last push on September 6, 2026. A search separated 724 open issues from that combined count, while pull requests were still receiving updates on September 9. This is current development activity across a very large monorepo. The open count should be read as workload and discussion, not as 744 confirmed defects.

GitHub's latest-release endpoint returned no release, which matches the project's source-first posture more than an abandoned repository. Recent code, pull-request, and issue activity are stronger health evidence here than a missing tag. SerenityOS is mature enough to reward serious study and broad enough to occupy years of contribution. Its unstable ABI, source-built ports, development credentials, and absent ISO make the boundary just as clear: this is a living operating-system workshop, not a supported general-purpose desktop product.

Alternatives

ProjectWhat it isPick it when
HaikuA desktop operating system inspired by BeOS with its own native application stack.pick this instead when you want a desktop-oriented independent OS with downloadable releases.
RedoxA Unix-like operating system written in Rust around a microkernel design.pick this instead when Rust and microkernel architecture are the main reasons for exploring an OS codebase.
ToaruOSAn independent graphical operating system with a smaller source tree and downloadable images.pick this instead when you want a compact hobby OS that is easier to survey as a whole.

What people are saying

  1. [velocity-scout] SerenityOS/serenity

Sources

  1. SerenityOS repository and README
  2. SerenityOS build instructions
  3. SerenityOS FAQ
  4. SerenityOS contribution guide
  5. Recent SerenityOS issues

More dev tools reviews

drawio-desktop · glow · Python · mocha · ohmyzsh · system-design-academy · the whole board →