X's Open-Source Algorithm: What the Numbers Actually Mean
X open-sourced its For You feed algorithm—2,015 files, real weight constants, and a transparency tool. Here's what the code actually says, and what it still hides.
Written by AI. Zara Chen

Photo: AI. Zephyr Cole
A number broke the internet last week. It was −234.
Four lines above it in the same config file sat another number: 0.5. That one is the weight for a like. The big negative one is the weight for a report. Do the division and you get 468—and within hours, that ratio was everywhere. One report cancels 468 likes. It traveled because it sounds like a receipt. It sounds like proof.
It is also wrong, and the way it's wrong tells you almost everything about how X's recommendation algorithm actually works.
Cloud Codes just dropped a meticulous 19-minute breakdown of X's open-sourced For You feed repository—2,015 files, Apache license, 30,000 GitHub stars in two days—and the first and most important thing the video does is correct that misreading. The weights in the config file don't multiply your raw action counts. They multiply predicted probabilities. A model called Phoenix reads a post alongside your recent behavior and outputs 13 separate probability estimates: how likely are you, specifically, to like this? Reply to it? Repost it? Mute the author? Report it?
The final post score is those probabilities multiplied by their respective weights, then summed. One line of Rust.
So −234 isn't the cost of a report. It's the cost of the predicted chance of a report—and as X clarified in a commit pushed roughly 27 hours after the initial release, that probability is more than a thousand times smaller than the probability of a like. The weight is large precisely because reports are rare. A rare event with a small multiplier would vanish into rounding error. Think of it as unit conversion: report probabilities arrive in a tiny denomination, and the weight scales them up so they can sit on the same axis as likes at all. The ratio is a calibration, not an exchange rate.
X's rebuttal commit is itself a fascinating object. Twenty-one files changed, 29 lines added to the scorer, 62 to the params file, 15 to the readme—and one line that might be the most 2025 sentence ever written in a code comment: "We have added comments to the code they wrote so that language models or people reading it are more likely to understand it correctly." Language models listed first, because most people who want to understand a Rust codebase of this size are going to paste it into a chatbot and ask.
The actual price list
Once you clear up the misreading, the weight table gets interesting fast. A like is worth 0.5—the cheapest positive signal in the entire file, and the one most creators optimize for hardest. A repost is 1.0, twice a like, which the video notes is lower than most people would guess given how much platform culture treats the repost as the trophy. A reply is 5. A quote post is 5. Sending something to a DM is 5. Following the author off the back of a post is 4.
Then there's copying the link: 20.0. Forty times a like. The plainest, least visible thing you can do with a post is weighted higher than anything else on the positive side.
The pattern that falls out of those numbers is coherent: cheap actions are public ones, expensive actions are private ones. A reply you have to write. A link you paste into a group chat with people you actually know. The algorithm isn't chasing applause; it's chasing proof that you cared enough to do something inconvenient.
The negative side is equally revealing. "Not interested" costs −43.2. Blocking an author costs −31.2. Muting costs −58.8. Most people's intuition runs the other direction—blocking feels louder, more decisive. In this file, the quiet act of muting is the more expensive signal. And report is −234, for reasons now established.
One notable absence: bookmarks. Phoenix does predict bookmark probability—it's right there in the list of 13 prediction heads—but the published weight for it is zero. The model sees you saving something. It just doesn't count it.
The mutual follow boost, documented in public
One of the more useful things the August release did was ship not just the current state of the algorithm but the history of at least one change, with diffs. On July 13th, Nikita Bier posted that X was "rolling out a small tweak to boost visibility of your post to your mutuals." The reason given was almost domestic: the data was missing from the algorithm, which made reply sections feel more like a battleground with strangers than a conversation with people you actually know.
The code landed three weeks later with an explainer document. The experiment started July 10th, with users randomly assigned boost values of 5, 10, 15, or 20 (everyone else at zero). Results came back strong on the 13th—20 went wide. Then on the 24th, after complaints that World Cup content was getting buried, they moved it down to 15.
Here's what most coverage missed: the boost doesn't lift a mutual's post directly. It raises the weight on the predicted probability that you'll reply to it—from 5 to 20. A mutual's original post ends up weighted at 20 times a repost. And it applies only to original posts, not to their reposts or replies.
The document says explicitly: "Going forward, future algorithm updates will be published to this repository and you should be able to understand what changed by checking the diffs." That's a testable promise. Worth remembering.
What the code can't tell you
Here's where the video earns its keep on the skeptical side.
Researchers were unimpressed after X's first repository release in January. Cornell computer science professor John Thickstun said "these releases give you a pretense that they are being transparent for releasing code." Ruggero Lazarini, a doctoral researcher at Graz, put the core problem plainly: "We have the code to run the algorithm, but we do not have the model that you need to run the algorithm."
That complaint remains live in August. Search 2,015 files and you find zero trained model weights. The quick start documentation says it directly: this is not a production-quality setup. You can train a tiny model on synthetic data for six steps and watch the machinery turn. You cannot reproduce what ranked your timeline this morning.
There's also a subtler caveat buried in the readme: cron jobs write live production values into the files. The repository is a mirror of a running configuration service, not its source of truth. Every weight in the published table is a snapshot with a shelf life. The accurate way to read any of it is: this is what production said the last time the job ran.
Two categories of files are withheld on purpose—prompt files for content classifiers, and some labeling rules—with X citing the risk of people gaming the system. Meanwhile, promises have a track record here: after the January push, the repository went 116 days without an update. In July, Elon Musk wrote that "the entire code base of X will be open source with no exceptions." What shipped in August is the For You feed and the systems around it. That's a lot of code. It is not the code base.
665 accounts and a Brazilian election
The release dropped on August 13th. On the 14th, X added one more file: a hardcoded filter for the Brazilian general election. Every candidate registered with Brazil's electoral court, listed by numeric ID with their username in a comment. Their posts are removed from For You recommendations—along with reposts, quotes, and replies whose thread contains one—unless you already follow the account, in which case nothing changes.
The accounts aren't suspended. The posts stay on their profiles. X's Brazil account posted the legal basis—a resolution of the electoral court—an hour and 47 minutes before the code landed.
You can have whatever view you want about whether that policy is correct. What open-sourcing did to it is specific and worth noting: a country-specific suppression list applied to named politicians is now a file with a diff and a timestamp. X makes this argument itself in the readme: "A benefit of open source is that you can see that changes like this exist and exactly how they work."
What the number was always really about
The 468 story is a Goodhart's Law story before the weight table even existed. Once a measure becomes a target, it stops being a good measure. The worry was never really the arithmetic—it was whether someone could understand and manipulate the system that controls what you see.
Publishing the actual weight table, the visibility filtering rules (28 for the home timeline, 26 additional for out-of-network recommendations that can only drop a post), and the new "Under the Hood" account diagnostic tool that lets you download which labels are currently sitting on your own account—all of that is more than Meta, TikTok, or YouTube have offered. It's a real advance.
But the advance creates its own question. Copying a link is worth 40 times a like. That's true right now, in the current snapshot, with the current model. The moment that number is widely understood as a target, it becomes a worse measure of genuine interest. Publishing the price list is real transparency. It's also an invitation to optimize for it—and the most interesting thing about X's feed is that the signals hardest to manufacture are the private ones: the DM share, the link pasted to real friends, the mute you don't perform in public.
Does knowing all of this make you a more informed user, or just a more strategic one? Both, probably. The question is which one wins.
— Zara Chen, Tech & Politics Correspondent
More Like This
Laravel 13.6 Drops Debounceable Jobs and JSON Health Checks
Laravel 13.6 introduces debounceable jobs, JSON health check responses, and Cloudflare email support. Here's what developers need to know.
This Creator Got Shadowbanned on YouTube in 25 Days—On Purpose
A vidIQ creator deliberately shadowbanned their channel with AI-generated content to expose how YouTube's algorithm actually works. The results are wild.
Heroku Is Really Dead This Time, and Here's What Happened
Heroku has entered full maintenance mode after mass layoffs and leadership exodus. How did Salesforce let a developer platform die at the finish line?
Master Remote Access with Comet Pro KVM
Explore the Comet Pro KVM for seamless remote PC access: Wi-Fi 6, out-of-band management, and Tailscale security.
What malloc Actually Does (It's Not Magic)
Dave's Garage breaks down how malloc really works—from a five-line bump allocator to 40 years of fragmentation fixes, security patches, and thread nightmares.
One PR Hijacked the Entire NPM Registry
A single pull request compromised 169 npm packages—no phishing, no stolen passwords. Here's how the TanStack supply chain attack actually worked.
RAG·vector embedding
2026-08-18This article is indexed as a 1536-dimensional vector for semantic retrieval. Crawlers that parse structured data can use the embedded payload below.