X Algorithm October 2026: The New For You Code and How to Use It

The X For You algorithm in the October 2026 open-source release scores every post by predicting what you will do with it, weights shares sent by copy link 30 times more than likes, taxes repeated posts from the same author, and hides labeled accounts from non-followers. xAI’s x-algorithm repository now holds about 2,300 files and 524,000 lines of code. That is far more than the May 15 release we covered: the current version adds the production ranking weights (synced from live configuration on October 26, 2026), the visibility filtering service, the labeling and enforcement systems, the Phoenix training code, SimClusters, and the Under the Hood transparency tool. We split the full repository across sixteen AI readers, checked the key numbers against the source ourselves, and wrote down what the code says and what you can do with it.

TLDR

For You still mixes posts from accounts you follow (Thunder) with posts found by machine learning (Phoenix retrieval, SimClusters and a popular-posts list), and one transformer predicts about 30 actions you might take on each post. The final score is a weighted sum of those predictions, in which sharing, quoting, replying and following count far more than liking, and reports, mutes, “not interested” and blocks carry large negative weights. After scoring, the feed discounts out-of-network posts to 0.75, discounts each extra post from the same author toward a floor of 0.25, runs a diversity filter, and gives one slot to a small account’s fresh post. A separate visibility system then reads labels from spam, NSFW, link-reputation and policy classifiers, and most of those labels hide you from non-followers rather than from everyone.

Thoughts

The weights make one thing clear: X is ranking for distribution, not approval. In the production values, a like is worth 0.66, a repost 1.0, a share 2.0, a reply, a quote or a share by DM 5.0, a follow from the post 4.0, and a share by copy link 20.0. Copy link is the strongest positive signal in the system, because a link pasted into another app brings people to X, which a like never does. On the negative side, a report is -234, a mute -58.8, “not interested” -52.272 and a block -31.2. The code’s own comments push back hard on the viral reading that “one report cancels 468 likes.” These weights multiply your predicted probability of each action, not raw counts, and the comments say a report is more than a thousand times rarer than a like, which is why its weight has to be so large to register. The practical upshot is that the score is personal. A post is not globally penalized by its reports. It is shown less to people who look like the people likely to report it.

The feed also taxes volume, which matters more than any posting hack. After the weighted sum, each additional post from the same author in a batch is multiplied by 1.0, 0.625, 0.4375 and so on toward a floor of 0.25. Posts from accounts you do not follow are multiplied by 0.75, and so, by default, are replies and reposts from accounts you do follow. Then a determinantal point process takes the top 150 posts and keeps a diverse subset, returning every post it did not select with a score of zero. Put together, the code rewards one strong original post over five quick ones, and an original post over a repost. The mutual-follow boost points the same way: original posts from people you follow who also follow you get their reply weight raised from 5 to 20. X has built a feed that favors conversations between people who know each other, and it says so in a dated document that walks through the July rollout.

The most useful thing for creators is in the label descriptions, not the ranking weights. SPAM_HIGH_RECALL, MALICIOUS_URL, DO_NOT_AMPLIFY, the NSFW labels and FOSNR_ABUSE_INSULTS all say “hidden from recommendations to non-followers.” Only a few labels, such as SPAM, PDNA and BOUNCE, remove a post for everyone, and the FOSNR policy labels restrict a post to the author’s profile. So the most common kind of “shadowban” is real in a narrow sense: a labeled post or account stops reaching strangers but keeps reaching followers. That makes your follower base the floor of your reach and makes the Under the Hood report worth checking. The code shows its limits, though. It covers accounts older than 365 days with at least 10 eligible posts, it reports the previous full month only once ten days have passed, and its feature switches default to off in the published code, so availability is still a pilot.

Small accounts get a deliberate, if experimental, way in. The cold-start scorer picks one post per feed from an author with 50,000 followers or fewer, posted in the last two hours, with fewer than 200 impressions, and lifts it to roughly the 16th-best score in that batch. Replies and reposts are not eligible, and Thompson sampling decides which new authors get the slot, starting from a prior that expects about a 1.5% hit rate. The code assigns authors to treatment and control groups, so this is a live test and not a guarantee. It still answers the common complaint that only big accounts get reach: a new original post has about two hours to earn engagement while it is eligible, so posting when your likely audience is awake matters more than a clever hook.

Links are less penalized than people think, and also less forgiving. The ranking weight on opening a link is a small positive 0.2, and the embedding model only strips t.co wrappers from post text. The real link risk is reputation. Scarecrow rules check every hop in a redirect chain, so a clean first domain does not help if a later hop is low quality. A link that resolves as BAD, LOW_QUALITY or UNSAFE can put SPAM, SPAM_HIGH_RECALL or MALICIOUS_URL labels on the post, and pinning a post with a low-quality link can label the whole account. Post links you would be comfortable having audited, avoid shorteners that chain through unknown redirects, and check your pinned post.

Key Takeaways

  • Production weights (home-mixer/params/param.rs, synced October 26, 2026): like 0.66, repost 1.0, share 2.0, reply 5.0, quote 5.0, share via DM 5.0, follow author 4.0, share via copy link 20.0, click 0.3, open link 0.2, dwell 0.05.
  • Negative weights: report -234, mute author -58.8, not interested -52.272, block author -31.2, not dwelled -0.02. They multiply predicted probabilities for each viewer, not raw counts.
  • Video quality views and profile clicks are weighted at zero in production. Video counts mainly through dwell time and a small video-open weight of 0.02.
  • Original posts from mutual follows get a reply weight of 20 instead of 5. The boost was tested at 5 to 20 in July and settled at 15 on July 24, 2026.
  • Out-of-network posts are multiplied by 0.75, and so are replies and reposts from accounts you follow.
  • Author diversity multiplies an author’s second post by 0.625, the third by 0.4375, falling toward 0.25.
  • A diversity filter (DPP) keeps a varied subset of the top 150 posts and zeroes the rest.
  • One cold-start slot per feed goes to a post under two hours old from an author with 50,000 or fewer followers and under 200 impressions.
  • Posts older than 48 hours are filtered out of For You. Thunder keeps followed accounts’ posts for two days.
  • Most reach-limiting labels hide posts from non-followers only. SPAM, PDNA and BOUNCE hide them everywhere.
  • Link reputation is checked on every redirect hop, and a low-quality pinned link can label an account.
  • Grox, an LLM labeling system, scores posts for spam, adult content and violence, flags engagement baiting and farming as spam, and records a “slop score” whose criteria are not published.
  • Country rules are in the code: a Brazil election filter, an India NSFW tombstone, and age-verification gating in 30 countries, none of them the United States.
  • Some rules and all Grox prompts are withheld “to reduce gameability,” and several enforcement thresholds are published as placeholder values.

How to Use the New X Algorithm

For creators

  • Write posts people want to send to someone. Copy-link shares are worth about 30 likes, and DM shares and quotes about 7.5.
  • Ask questions that earn real replies, especially from mutuals. Mutual-follow replies on original posts carry the heaviest positive weight after copy-link shares.
  • Post fewer, better originals. The second and third post in a batch are discounted, and replies and reposts are discounted even for your followers.
  • Post when your audience is online. Cold-start help lasts two hours, For You drops anything older than 48 hours, and the popular-posts source scores views relative to age, so a 15-minute-old post with 100 views outranks a 12-hour-old post with 900.
  • Avoid anything that earns mutes, “not interested” or reports. Those weights are large, and they fall on the people most similar to the ones who react badly.
  • Check every link you post or pin, including where it redirects. Do not use engagement bait, copied text or reply spam under large accounts. Grox and Scarecrow label all three.
  • For video, post clips longer than 10 seconds. Shorter clips miss the long-video index used for the immersive feed.
  • Grow followers deliberately. Non-follower labels do not affect followers, so your followers are the reach you keep.
  • Check Under the Hood at x.com/i/jf/under_the_hood if your account qualifies, and match any label to its effect.

For readers who want a better feed

  • Use “not interested” and “see fewer.” They feed the negative heads, remove that item from your history signals in the training code, and stay in the SimClusters user embedding with a 14-day half-life, against 1 day for positive signals.
  • Mute keywords. Matching ignores case and works on whole words, hashtags and mentions, and it also checks quoted posts and parent posts.
  • Mute or block accounts you never want to see. Both remove their posts before scoring.
  • Like, reply and share what you actually want more of. Your recent engagement sequence is the main input to the model.
  • Follow back people you talk with. The mutual-follow boost then favors their original posts in your feed.

Detailed Summary

What Changed Since the May Release

The repository’s changelog lists three updates. On August 13, 2026, xAI added the production configuration parameters and scoring weights, the visibility filtering code, the labeling systems (Botmaker, Scarecrow, Agatha, BDSM, user credibility, the media models and the abuse enforcement service), the real Phoenix training code with synthetic data, and SimClusters as an extra out-of-network source. On August 14 it added comments explaining how weights work and a Brazil election filter required by Brazilian electoral law. On September 18 the Under the Hood report began showing when posts were withheld in a country because of a legal demand. A cron job copies production default values into the code, so the weights you read are the ones running.

How a Post Reaches Your Feed

The Home Mixer service builds each request in stages. It loads your engagement history, follows, blocks, mutes, muted keywords and seen posts. It gathers candidates from Thunder (recent posts from accounts you follow, kept in memory for two days), Phoenix retrieval (a two-tower model that finds posts near your interests), SimClusters (interest clusters built from who engages with what) and a list of popular recent posts. It removes duplicates, posts older than 48 hours, your own posts, blocked and muted authors, muted keywords and posts you have already seen. It then scores the rest, keeps the top 50, checks each against visibility filtering, collapses conversation branches, and blends in ads, Who to Follow and prompts.

The Scoring Formula

Phoenix, a transformer trained in JAX and served in Rust, reads your recent actions and predicts the probability of each action for each candidate: likes, replies, reposts, quotes, several kinds of shares, clicks, photo expands, video opens, dwell and dwell time, follows, and the negatives. The score is the sum of each probability times its weight, plus a small offset. During inference, candidates can only attend to your history, not to each other, so a post’s score does not depend on what else is in the batch. Model inputs include post age, engagement counts, follow relationships and the author’s NSFW flag, and the training config turns on viewer country, language, location, gender and age. The serving schema can also carry which apps a viewer has installed, with slots for ChatGPT, Gemini, Claude and Grok, though that feature is switched off in the home ranking config.

Dampeners and Diversity

The VM ranker service applies the post-score adjustments: the 0.75 out-of-network multiplier, the author diversity decay of 0.5 with a 0.25 floor, a 0.5 multiplier for out-of-network posts on topic requests, and the DPP diversity filter with theta 0.65 over the top 150. If the remote ranker fails, Home Mixer serves its local scores instead. Many experiments are wired but switched off by default, including a page-level reinforcement learning decoder, user debiasing and out-of-network replies.

Visibility Filtering and Labels

Visibility filtering answers, for each post and viewer, whether to allow it, add a notice, put it behind an interstitial, or drop it. The first rule that drops a post ends evaluation. A second set of rules applies only to recommendations from accounts you do not follow, which is why labels such as spam at high recall, malicious URL and the account-level labels for abuse, engagement spamming and “do not amplify” only hide posts from non-followers. Posts with hateful conduct, violent speech, abuse or civic integrity labels are limited to the author’s profile. When a required lookup fails, the service generally drops the post, and it removes a post whose parent, quoted or reposted post was dropped.

Grox, Spam and the Slop Score

Grox runs language models over posts as they are published. Its safety pipeline maps violent media to a gore label, sexual content to NSFW labels, and engagement baiting, farming and card manipulation to SPAM_HIGH_RECALL, with exemptions for high-credibility and government accounts on other spam types. Replies under accounts with more than 250,000 followers are rated from 0 to 3, and a 0 earns a RiskyHighVizReply label unless the replier’s credibility score is 66 or more. A screening model writes a “slop_score” for each post, but the prompts that define it are excluded from the repository.

Credibility, Bots and Enforcement

User credibility (user-cred-v2) runs PageRank over the follow graph, seeded only from premium and verified accounts and blended with seven days of likes and reposts, then maps the result to a 0 to 100 score. A behavioral model named BDSM reads long sequences of account actions to detect follow bots, like bots, engagement amplifiers and reply spam. The abuse enforcement service turns scores into labels, challenges and suspensions, skips accounts above follower and credibility thresholds, and will not re-apply an action that a human overturned on appeal. Many of its thresholds are published as placeholders such as 12.34 and 9.99, with comments saying production values differ.

Country Rules in the Code

The Brazil 2026 election filter cites Article 28 of Electoral Resolution 23.610 and removes posts from a hard-coded list of accounts reported to the Electoral Court unless you follow them. Its list was cut to runoff candidates on October 13. In India, high-precision NSFW posts are tombstoned under local regulations. Age verification and its tombstones cover 30 countries: the European Union members plus the United Kingdom, Australia and Brazil. A separate NSFW gating list covers 16 countries, including Canada. The United States appears on none of these lists.

What Is Not in the Repository

xAI withholds the Grox prompts and some Botmaker rules, saying it wants to reduce the risk of gaming. Production enforcement thresholds are replaced with placeholders, and the bot model’s operating points are redacted. The trained production model weights are not included. The Phoenix code ships with synthetic data so a small model can be trained end to end, and the reference data generator is explicitly not production. The repository is the most detailed look at a major feed so far, but some of the decisions that matter most for spam enforcement are still private.

Notable Quotes

“The weights are a multiple on your own predicted probability of Liking, Reporting, etc, which is substantially driven by your own behavior.”

The x-algorithm README, on how ranking weights work

“And the baseline probability of a Report is more than 1000x lower than a Like, so it’s weighted more to allow the prediction to affect the final ranking at all.”

Code comment in home-mixer/params/param.rs, explaining the -234 report weight

“Directly navigating to a post (i.e., coordinating via groupchat) has no ranking impact.”

Code comment in home-mixer/params/param.rs, on mass reporting campaigns

“In plain language, the bidirectional follow boost boosts original posts from people you mutually follow by increasing the weight on the predicted probability that you’ll reply to a post from one of those authors who you mutually follow.”

docs/BIDIRECTIONAL_BOOST_CHANGE.md, on the July 2026 change

“Ranking decides the order. Visibility filtering decides whether a post can be shown at all.”

The x-algorithm README, on its key design decisions

“To reduce the risk of gaming to circumvent these systems, some rules aren’t currently in this repository.”

The x-algorithm README, on the botmaker-rules folder

Read the full source and changelog here: xai-org/x-algorithm on GitHub.

Related Reading