· 10 min read

X Just Open-Sourced the Algorithm Deciding Who Sees Your Posts. Here's What the Code Says About Building an Audience There.

On August 13, 2026, X published the source code for its For You ranking engine on GitHub under the Apache 2.0 license, alongside a new "Under the Hood" settings page that lets qualifying accounts download a report showing which visibility-limiting labels have hit their account or posts. X says the newly public codebase is roughly 10 to 15 times larger than what it had open-sourced before. If you've ever posted something on X, watched it die at 40 impressions, and wondered whether the platform buried it on purpose, you can now go read some of the actual mechanism instead of trusting a growth-hacker thread that's guessing same as you.

I post on X twice a week to drive traffic to this blog, and until this week my entire mental model of "why did that one flop" was vibes. Now there's a repository to check my vibes against.

What actually shipped

The repo is xai-org/x-algorithm on GitHub, and it's the real pipeline, not a simplified demo. home-mixer assembles the feed per request through two stages: a Post Pipeline that finds, ranks, and filters candidate posts, and a Blending Pipeline that adds ads, Who to Follow prompts, and other non-post items around them. Candidates come from two places: thunder, which holds recent posts from accounts you follow in memory, and phoenix plus simclusters, which retrieve posts from accounts you don't follow. A separate system, visibility-filtering, decides independently of ranking whether a post gets shown at all, shown behind an interstitial, or dropped, based on labels produced by a rules engine called botmaker running inside a service called scarecrow.

Alongside the code, X's VP of Product Keith Coleman told TechCrunch the release includes "the core ranking code that pulls posts and ranks them for any given user and assembles the feed," and that some of those systems, including the ranker, "you can even run yourself outside the company." He also said the quiet part out loud: "This is the kind of thing that I think people will be fairly shocked that we are releasing."

The transparency tool, called Under the Hood, is separate from the code drop. It's rolling out to a pilot group first, limited to accounts at least a year old that have posted 10 or more times in the past month, and it produces a report of the visibility-affecting labels applied to that account or its posts over the previous calendar month. X's own repo README frames the two pieces as a pair: the code shows you how the system works in general, the tool shows you what it actually did to your account specifically.

The formula, and what it actually weighs

Here's the part worth reading closely if you post for distribution. phoenix predicts a probability for a long list of possible actions on every candidate post: favoriting, replying, reposting, quoting, sharing (including via DM or copy link), clicking into the post, profile, a link, an expanded photo, or a quoted post, and a set of attention signals including dwell time, click-dwell time, and active seconds. It also predicts negative actions: not interested, mute, block, report, and simply not dwelling on the post at all.

A component called RankingScorer then combines all of that into one number: final score equals the sum of each action's predicted probability multiplied by a weight, and the weights themselves are checked into the repo at home-mixer/params/param.rs, not hidden in a black box. After that base score, three adjustments run. Posts from an author you've already seen once in the session get discounted further with each repeat, down to a floor. Posts from accounts you don't follow, along with replies and reposts from accounts you do follow, get multiplied by a discount factor below 1. And posts from accounts whose total impressions sit below a threshold get boosted toward a specific target position in the feed, on purpose, to help new accounts get seen.

That last one is the closest thing to a sourced answer to "does X bury new accounts," and the answer in the code is the opposite: small accounts get an explicit lift, up to a threshold, before the normal ranking math takes back over.

What a code snapshot doesn't tell you

X is upfront that this repo isn't a live mirror of production. The company runs scheduled jobs that sync the default parameter values in the repo to match what's actually live, but only experiments running at a meaningful share of traffic, X says roughly 10% or more, are guaranteed to show up here at all. Smaller tests can be live on your account right now and absent from what you're reading on GitHub.

More importantly, X explicitly withheld two categories of files specifically because publishing them would make gaming easier: the LLM prompts that a system called grox uses to classify posts, and some of the rules loaded into botmaker. Those are exactly the pieces that decide whether your post gets quietly labeled in the first place, and they're the ones you don't get to read.

There's also a real limit on what "run it yourself" means in practice. Ahead of the launch, X let outside researchers preview the code, and they were able to train and run X's Phoenix scoring model themselves using the open source pieces. TechCrunch had to issue a correction on this point after publishing: those researchers trained and ran the system architecture, they did not get the live, per-post production score for a specific post on a specific account. You can run a version of the ranker. You can't currently point it at your own Tuesday post and get the exact number X assigned it in production.

What I'd actually do this week

If you post on X for distribution, skip the temptation to read the whole repo cover to cover and instead go straight to three things. First, docs/BIDIRECTIONAL_BOOST_CHANGE.md in the repo, which documents an actual production change to a ranking parameter over time. It's the single clearest example in the release of how a scoring decision gets tuned without any announcement, and it's a useful gut check against any "the algorithm changed on this exact date" claim you see floating around. Second, home-mixer/params/param.rs, to see the actual weight ordering rather than assume it. Third, if your account clears the bar (a year old, 10-plus posts in the last month), request the Under the Hood report once it's available to you and read it against the labels the visibility-filtering rules describe, not against a stranger's screenshot.

What I wouldn't do is spend a weekend trying to reverse-engineer your exact score by comparing posts. The ranking model is built so candidates can't see each other during scoring, each post is evaluated only against your context as a viewer, which means you can't cross-reference "why did this post outrank that one" the way you could with a leaderboard. That kind of pattern-matching is exactly the guesswork this release was supposed to replace, and doing it by hand against a black-box number isn't better just because the code behind it is now public.

The honest take

My honest read: for most solo operators, this repo changes very little about what to actually post. The mechanics it confirms, that engagement and dwell time matter, that new accounts get a temporary boost, that repeated posting from one author gets discounted, aren't shocking, and none of it replaces writing something people want to stop scrolling for. Where it does matter is for the smaller group of people convinced they've been specifically, deliberately suppressed. That argument used to be unfalsifiable. Now there's a report you can request and a rules engine you can partially read, and "I think I'm shadowbanned" moves from a vibe to a checkable claim, even if the check is incomplete.

Where I could be wrong: the parts X chose to withhold, the Grox prompts and the undisclosed botmaker rules, are precisely the parts most likely to explain an individual suppression case, which means the group of people this tool was built to reassure may come away just as unconvinced as before. A company that controls both the code repo and the transparency tool that grades it against itself hasn't fully solved the trust problem, it's just moved the argument to a more specific, better-lit room.

Author

Sources

Stay in the Loop

Get new posts delivered to your inbox. No spam, unsubscribe anytime.

Newsletter coming soon. Set PUBLIC_CONVERTKIT_FORM_ID in .env to activate.

Related Posts