Frame: The First Linux Assembly X Server for Ultimate Control

Frame – the first Linux Assembly X server

Frame: The First Linux Assembly X Server for Ultimate Control

I built Frame, a custom X server written entirely in Assembly, to replace the massive X11 codebase. This lightweight solution runs my entire desktop, including Firefox and GIMP, with significantly lower CPU usage and better battery life. By owning every layer of my software stack, from the kernel to the shell, I achieve a system that sits completely still until I interact with it.

Software designed for a large audience fits everyone a little. This fits one person exactly.
  1. adrian_b

    When first looking at the source code, I wondered why one would waste so much time to write 25k lines in raw assembly language, but then I saw that it was generated with Claude, for whom it does not matter much how expanded is the written text.

    If someone had written this program manually, the strategy would have been very different. With a good macro-assembler (and nasm is good enough) one should define a great number of macros, to encapsulate all the tedious boilerplate, especially for things like function prologues, epilogues and invocations.

    With a well written macro library, an assembly program can be almost as compact as a C program, instead of containing many text lines for each equivalent high-level language statement.

    Such an assembly source with good macros can be read and understood much more easily than raw assembly language, like in this "frame.asm".

    Otherwise, this is interesting work.

  2. bogwog

    > I wrote my own

    I see the growing trend of words losing all meaning is still going strong in 2026. I wonder what human communication will look like in the near future?

  3. yjftsjthsd-h

    I am loving the shift from 'X11 is too big and messy to ever reimplement' to 'there are multiple wildly different X servers being built from scratch'.

    Also, has anyone run it successfully? I got as far as building and running with --display and then running `DISPLAY=:7 dwm` and `DISPLAY=:7 alacritty`, but I can't seem to focus the window to actually type. Given that the author posted a picture of the thing actually running a live environment and claims to actually be using it, I'm pretty sure this is a me problem but I haven't been able to figure out where it is. Mouse works, too.

  4. ToyKeeper

    It's funny to see someone using a LLM as a compiler, making it convert higher-level operations into assembly, instead of just using a compiler.

  5. orphereus

    At first I was so interested into this guy, writing his own everything, thinking this has got to be something to aspire to, to be as good a programmer as this guy. Then I realised LLMs wrote this, and I was so very disappointed. It was naive and stupid of me to think otherwise, but here I am.

  6. asveikau

    I can have a machine generated X server in assembly too. It's called cc -s.

    Or:

    $ objdump --disassemble /usr/lib/xorg/Xorg

    Maybe I'm getting too old for this, but I really don't see the point in having AI generate assembly code for this.

  7. dlojudice

    How many times have people posted here about how software is no longer optimized because CPUs keep evolving, making programmers lazy? It seems things have changed.

    The question is: will LLMs manage to squeeze the most out of this hardware, better than compilers do?

    In the few tests I’ve run, yes, a lot.

  8. NetOpWibby

    Beautiful. Using LLMs to create perfect tools for yourself is my favorite thing about them.

    No dependencies and better performance? Fantastic.

More from this day

2026-07-17