Modular by construction
Components are separable, and the ones you do not want are absent rather than installed and switched off. A system you can subtract from is a system you can reason about.
A Linux-based system built for developers and organizations who want a lean, transparent and highly customizable environment instead of a general-purpose OS with decades of accumulated defaults. It is in design and early development, and there is nothing to download yet.
GUI Linux is already solved. Ubuntu, Fedora, Mint, Zorin and Pop!_OS made it accessible, they did it well, and there is nothing left to win by doing it again. 0dyssey is not chasing that half of the problem, and conceding it is what makes the rest of this page a claim rather than a boast.
The half nobody has taken is the setup. A lean tiling environment with the tooling already curated still has to be assembled by hand, out of configuration files and accumulated Linux experience, by every person who wants one. That cost is the target. Remove the setup tax, not the power.
The terminal stays. It is a feature, not the enemy, and a system built to keep you out of it is solving a different problem for a different person. What sits on top of the base is built by hand rather than inherited as someone else's defaults with a theme over them.
Modern operating systems are built for the mass market, and that is not an insult, it is a design constraint. Serving everyone means shipping defaults that suit nobody exactly, carrying decades of compatibility, and hiding the machine behind layers that are difficult to inspect and harder to change.
The result is familiar to anyone who works close to the metal: you spend your time adapting to the system rather than the other way round, and when something behaves oddly the honest answer is often that nobody currently working on it knows why that code is there.
We want the opposite properties. A system where what runs at boot is a decision somebody made and can explain, where the pieces you do not want are absent rather than disabled, and where changing behavior means changing a component rather than defeating one.
That is not a general-purpose operating system, and it is not trying to be. It is a system for people who would rather own the layer underneath than negotiate with it.
These are the constraints the build is being held to. They are stated in the present tense because the decisions are real, even though the software is early.
Components are separable, and the ones you do not want are absent rather than installed and switched off. A system you can subtract from is a system you can reason about.
What happens between power-on and a usable shell is inspectable and documented. No behavior that only exists as folklore in a forum thread from six years ago.
Security is treated as a build-time property: a smaller surface, explicit privileges, sane defaults. Not a hardening guide published after the fact for the user to apply.
Weight is a design failure, not a tax to accept. What ships is what is needed, which is the only reliable way to stay fast rather than becoming fast in a benchmark.
Changing how the system behaves means changing a component through a supported path, not defeating a default that assumed you would never want to.
Developers, systems people, and organizations running their own infrastructure. The environment is tuned for that work rather than made friendly enough for everyone at its expense.
An operating system is an integration problem before it is a coding problem. This is the order the integration has to happen in.
This is the plan of work, not a changelog. None of these layers is finished, and the ones nearer the bottom of the list have not been started.
The kernel configuration, the boot path, and the smallest set of userland that constitutes a machine you can log into and trust.
What starts, in what order, and under whose authority. The part of a distribution that determines whether the system is legible or magic.
How software arrives, how it is verified, and how a machine gets from one known state to the next without becoming a unique snowflake.
Privilege boundaries, defaults, and what is exposed by a stock install. Decided alongside the base rather than added over it.
Toolchains, containers and the daily working surface, treated as a first-class part of the system rather than something the user assembles afterwards.
Reproducible builds, images, and the machinery that turns a directory of decisions into something another person can install.
Every layer under the top one is existing software, chosen on its merits and used as it is. The only new thing is the layer at the top, and that is the honest scope of the work.
Not a fork, a careful composition of proven layers on a Void Linux base. Each one does its job and hands off cleanly to the next. Naming a component is a decision taken, not a claim that the parts are already assembled.
The one layer to be written here rather than adopted: curated defaults, a control surface for the settings that matter, and the documentation that turns the four layers below into a system somebody else can pick up. It does not run yet, and this is the only rung on the list that does not already exist.
Tiling, keyboard driven, configured in one readable file. It stays a window manager instead of growing into a desktop environment.
How software arrives, and how a machine moves from one known state to the next, with the same tooling for a single package and for a whole system.
What starts, in what order, and what restarts it when it dies. Small enough to read end to end, which is why it is here instead of a larger init.
Drivers, memory and process scheduling under one authority. Chosen for the boring reasons: broad hardware support, and behaviour that is already documented in depth.
Every line is a decision already taken, written down plainly so it can be argued with rather than guessed at.
This sheet records decisions, not measurements. Nothing on it has been benchmarked, because there is no build stable enough to benchmark, and a figure published now would be a figure invented now. The row that would normally carry the numbers says exactly that instead.
No reporting path is being built into it. There is nothing to switch off later, because nothing goes in in the first place.
Every layer it is composed from is already open, and the layer specific to this project is meant to be published the same way. How the machine works is not intended to be a trade secret.
What starts at boot, what a package installs, and what a default assumes should all be readable by the person running the machine. Behaviour nobody can account for counts as a defect, not a quirk.
A scope stated only as ambitions is not a scope. These are the readings we want to rule out now rather than disappoint later.
This band changes the moment there is something real to hand you.
There is no ISO, no installer, no package mirror, no release channel and no early-access list. What exists is the architecture, the decisions above, and early development against them. The work is being written up as it happens, and that writing is the honest way to follow it until there is a build.
Follow the build logsThe standard the log is written against, settled before there is anything in it. Numbering will start at 001, every entry will carry the day its work happened, and nothing will be backdated.
The numbering is the guarantee. It begins at 001 with nothing behind it, so this log cannot quietly acquire a history it did not have.
The log has not started. There is no entry 001 yet, nothing has been backdated, and no sample entry is standing in for one. 0dyssey is in development, and the first entry will be written when there is a piece of work finished enough to describe accurately, not when this page needs something in it.
Read what is publishedFixed in advance, so the format is settled before the first entry can quietly define it. Every entry will answer these four things, in this order.
The narrow thing this stretch of work had to achieve, stated before any of it is claimed. A bar written after the fact is a bar that was always met.
Only what runs today, in the past tense, with nothing asserted that a reader could not check from the work itself. No screenshots of mockups, no roadmap theatre.
The parts that are genuinely unfinished, named rather than left to be assumed done. If two things are half-built, both get named.
The next concrete piece of work and why it comes before the others. No date attached to it, because there is no date to attach.
Phases, not dates. The marker sits on the phase the work is actually in today.
No entry below carries a quarter, because none of them has one. When a real date exists it will be printed here and nowhere else first.
The design commitments, the module model, and the scope, including the refusals. Enough to build against and enough to argue with.
The bottom of the stack: kernel configuration, boot, and the minimum userland that makes a machine you can log into. This is where the work actually is.
The layers that decide whether the system is legible: what starts and why, how software arrives, and how a machine moves between known states.
Reproducible builds and release engineering, which is the point where this page stops being a plan and starts being a download.
None of the three exists, none of them has a date, and none of them is a later phase of the roadmap above. This is the direction the design is being held to, printed here so that the roadmap cannot be mistaken for the whole of the ambition, or the ambition for the state of the software.
A system small enough that speed is a property of its size rather than a tuning exercise, with the toolchain and the daily working surface treated as part of it rather than as something the user assembles afterwards. Tooling chosen for how developers actually work, and growing with the system instead of accumulating in it.
Woven in at the system level rather than bolted on as an app: a machine that automates what it can, acts on your behalf, and talks to you, prompting, explaining and asking, instead of making you drive every command by hand. This is the one rung where the operating system and the rest of the engineering are the same problem. It is also research-hard, so it is stated as the north star and nothing more.
Building the system from the ground up, eventually the kernel. Named separately on purpose: it is a decades-long endeavour rather than the next item after the ones above, and filing it as a roadmap entry would be a lie about its size.
These are answered here and on the FAQ from one source, so the two can never say different things. Where the honest answer is that nothing exists yet, that is the answer given.
Every answer below is written against the state of the work today. None of it describes software you can run.
The layers it composes are existing free software and keep their own licences regardless of anything decided here. The licence for the parts written for this project has not been decided, so there is nothing to announce and nothing to imply. It gets stated here once it is chosen. A licence quoted today would be a position taken for a website rather than a decision made about the software.
Developers, systems people, and organizations running their own infrastructure: the people who work close to the machine and would rather own the layer underneath than negotiate with it. The more useful half of that answer is who it is not for. This is not an attempt to make Linux friendly for people who do not want a terminal. That problem is solved, and other distributions solved it: a graphical Linux desktop is genuinely good now, and building a worse version of one would help nobody. The audience here already chose the terminal and wants the environment around it to stop costing days of assembly.
The design intent is that the command line is always there and is never the only way in. Comfort with a terminal should make the system faster to work in, not be the price of getting into it. Treat that as a commitment to hold the project to rather than a feature to plan around: the surface that would make it true is designed and not built, and there is nothing today you could sit in front of and test the claim against.
No. Void Linux is the base, with the Linux kernel underneath it, runit as init, xbps for packages and i3 as the tiling window manager. Those are proven layers and rewriting them badly would be a waste of everyone's time. It is not a fork, it is a careful composition: each layer does its job and hands off cleanly to the next. What is being built for this project is everything above them, the tooling, the defaults and the working surface, and that is the part worth judging. Someone else's defaults with a theme on top would not be worth shipping.
There is no answer to that yet, and any figure printed here would be invented rather than measured. Running well on modest and older machines is a design goal, and it follows from the same decisions as the rest of the design: what is absent cannot cost you anything. But a requirement is a measurement, nothing is stable enough to measure, and a number published now is a number a future build would be held to for no reason. The requirements get published when they have been measured, and not before.
You cannot. There is no build: no ISO, no installer, no package mirror, no release channel, no version number and no early-access list to join. There is also no date, which means there is no date being kept quiet. The work is written up as it happens, and following that writing is the honest way to track real progress instead of a marketing countdown.
Nothing, because there is nothing to install. When there is an image, the intent is that it behaves like any other Linux installation: ordinary partitioning, an ordinary boot loader, ordinary dual boot, and documentation for the common configurations rather than a special path only we understand. None of that is a promise to plan around until an image exists and has been tested on real machines. Nobody should be repartitioning a working machine for software with no build.
The decisions above are stated here and argued elsewhere. These are the pieces that show the working.
The decisions, the dead ends and the rewrites get written up while they are still fresh. If you want to know when there is something to run, that is where it will be said first.