
TL;DR
A developer built a complete X11 server in 20,000 lines of assembly language using Claude as a compiler, running Firefox and GIMP with one-third the CPU usage of Xorg.
Geir Isene has built Frame, a complete X11 server from scratch in approximately 20,000 lines of x86-64 assembly language. The project uses no external libraries, no garbage collector, and zero dependencies. It can already run Firefox, GIMP, and a full desktop environment.
The unusual part: Isene used Claude as what he calls a "natural language compiler," describing high-level operations and having the AI generate the corresponding assembly code.
Frame represents a fundamental rethinking of how graphical servers should work. The numbers tell the story:
The server is part of Isene's larger "CHasm" project (Custom Hardware Assembly), which includes:
The entire stack totals roughly 100,000 lines of assembly - approximately 50 times smaller than the equivalent conventional stack (gdm, X11, i3, conky, wezterm, zsh combined).
Isene's development process treats Claude not as a code generator but as a compilation layer. He describes the intended behavior at a high level, and the AI produces corresponding assembly:
"I leveraged Claude AI as a collaborative partner, describing technical requirements and receiving guidance on hardware layers, cursor rendering, GPU interactions, and event handling."
This approach inverts the traditional relationship between programmers and AI tools. Instead of using AI to generate high-level code that compiles to machine code, Isene skips the middle layers entirely and uses AI to translate intent directly into assembly.
The Hacker News discussion revealed that several developers are experimenting with similar approaches. One commenter noted:
"Given how few programmers very seriously write lots of assembly, it's kind of astonishing how good LLMs are at working with assembly. They can compile and decompile all on their own with apparently very little effort."
Another shared practical experience:
"I've had all my side projects being written in x64 for the last 6 months and it is shockingly effective."
The Hacker News discussion captures the mix of fascination and skepticism around the project.
On the broader trend of X11 reimplementations:
"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.'"
One commenter noted their own Ruby X11 server project:
"Turns out a functioning X server is a relatively simple piece of software. It's mostly just tedious. And most of the bulk is protocol handling that Claude can handle really trivially."
On using AI for assembly generation:
"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."
Several commenters pushed back on the efficiency claims:
"How can a generic LLM generate better assembly than a dedicated compiler, whose sole purpose is to generate assembly code, with people pedantically adding every optimization imaginable?"
Others defended the approach:
"There are a ton of optimization opportunities that hinge on the intent of a piece of code which static compilers can never detect at scale. LLMs can actually navigate that and write surprisingly optimal assembly."
On the Linux battery optimization tangent that emerged in the thread:
"The really unfortunate thing about Linux is the defaults tend to be not battery friendly. For example, I recently got another 1 hour out of my old laptop's battery because I didn't realize for the Intel video card driver I needed to add some modprobe flags."
Newsletter
Get the weekly deep dive
Tutorials on Claude Code, AI agents, and dev tools, delivered free every week.
From the archive
Jul 17, 2026 • 7 min read
Jul 17, 2026 • 7 min read
Jul 17, 2026 • 6 min read
Jul 17, 2026 • 6 min read
The project's philosophy rejects the conventional wisdom that assembly is obsolete:
"Software designed for a large audience fits everyone a little. This fits one person exactly."
Isene argues that modern software has become unnecessarily bloated and opaque. By writing everything in assembly, he maintains complete understanding and control over his computing environment.
The performance benefits appear real. Frame uses roughly one-third the CPU cycles of Xorg when idle - a significant difference for battery-powered devices. The elimination of garbage collection and runtime overhead means the system only consumes resources when actually doing work.
Not everyone could replicate this approach. The project works because:
One commenter tried running the project and hit immediate issues with terminal emulators not rendering correctly. The author responded with fixes, but it highlights that "works on my machine" is literal for personal-use assembly software.
The discussion revealed a deeper disagreement about whether AI-generated assembly can actually outperform traditional compilers.
The skeptical view:
"How can a generic LLM generate better assembly than a dedicated compiler? This has got to be either a masterful ragebait, or a person with very low knowledge of modern compilers."
The optimistic view:
"One simple thing that LLMs don't have to do is use a calling convention. Compilers need to use them because it's not known at compile time who will link against this function. But for a sufficiently smart LLM, noticing a register doesn't need to be preserved because there are only two callers and neither of them care about it might be doable."
The pragmatic view:
"Claude has surprisingly good knowledge of X11 protocol. The other day, a colleague showed me a terminal emulator written in one-shot by Opus. That was compiled to a 30 KB static binary. No libX11, no libXfont, not even libc."
Frame is unlikely to become mainstream - it's explicitly designed for one person. But it demonstrates several interesting possibilities:
AI can handle tedious protocol work. The bulk of an X11 server is mechanical protocol handling. AI excels at generating this kind of repetitive, well-specified code.
Assembly is more accessible than it used to be. With AI assistance, developers can write and debug assembly without memorizing instruction sets. The AI handles the mechanical translation while the human focuses on architecture.
Minimal dependencies have real benefits. Zero-dependency software starts instantly, uses minimal memory, and has no supply chain vulnerabilities. These benefits may become more valuable as dependency trees grow ever larger.
The "LLM as compiler" pattern works. Using AI to translate high-level intent directly to low-level code is a valid development approach, at least for personal projects where correctness can be verified through use.
Frame shows that the boundary between "impossible without a team" and "possible for one person" continues to shift. AI tools don't just accelerate conventional development - they enable entirely different approaches that would have been impractical before.
Whether using AI as a "natural language compiler" will work at scale remains unclear. But for personal computing environments where the user can verify correctness through daily use, it's already producing results that would have seemed impossible a few years ago.
As one commenter put it:
"Yeah, I've had it work on an X11 server using a Ruby X11 protocol implementation instead of libX11, and it just rushed ahead and added support for a bunch of missing requests and responses. None of that is hard - it's all very well documented - but it's tedious. Claude handles the tedious parts while I focus on architecture."
The project is available on GitHub for those interested in examining 20,000 lines of AI-generated assembly.
Read next
Ternlight ships a ternary-quantized sentence encoder at 7 MB that runs semantic search at 5ms per embedding - entirely client-side via WASM, no API calls required. Here is how it works, what HN thinks, and where browser-side embeddings make sense.
6 min readA new project proposes a graphical shell layer for SSH that turns remote servers into browsable desktops. The HN discussion digs into architecture choices, the terminology debate, and whether this solves a real problem.
8 min readA solo developer built a 1,300-line C inference engine that runs the 744B GLM 5.2 model on consumer hardware by streaming routed experts from disk. Here's how it works.
6 min readTechnical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
Configure Claude Code for maximum productivity -- CLAUDE.md, sub-agents, MCP servers, and autonomous workflows.
AI AgentsWhat MCP servers are, how they work, and how to build your own in 5 minutes.
AI AgentsStep-by-step guide to building an MCP server in TypeScript - from project setup to tool definitions, resource handling, testing, and deployment.
AI Agents
Ternlight ships a ternary-quantized sentence encoder at 7 MB that runs semantic search at 5ms per embedding - entirely c...

A YC W25 startup open-sources CADAM, a browser-based tool that converts natural language to parametric OpenSCAD models....

How a 60-second auto-continue timer shipped to Claude Code without documentation, what it reveals about agent safety ass...

LM Studio launches Bionic, a standalone agent harness for open models with local inference, voice input, and zero data r...

Mozilla's inaugural report reveals open models now match closed AI on capability, but only 51% reach production. The har...

Google rebrands NotebookLM to Gemini Notebook, integrating the popular research tool deeper into its AI ecosystem. Here...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.