On August 13, 2026, X significantly expanded the GitHub repository that publishes the recommendation system behind its "For You" feed. Newly added components include not only the weights and model configurations that determine post ranking, but also mechanisms that detect and restrict the display of spam and adult content, as well as code that determines actions taken against accounts. At the same time, X began a trial rollout of "Under the Hood," which lets users check via JSON whether their own posts or accounts have been assigned visibility labels. While this isn't a binary yes-or-no feature for determining so-called "shadow bans," it does allow users to trace some of the reasons their content may not have reached others.
Coverage Expanded to 2,512 Entries
In January 2026, X published Thunder, which gathers posts from accounts a user follows; Phoenix, which searches for candidates outside of follows; and Home Mixer, which assembles the entire feed. In May, X added the end-to-end inference pipeline that runs Phoenix, the content-understanding system Grox, and the process for mixing in ads. Even so, the core focus remained on the flow from gathering candidates to ranking them.
The August release marked a complete shift in scope. Counting files and directories in the repository consistently at each point in time using GitHub API's recursive tree, the number grew from 93 entries in January and 244 entries in May to 2,512 entries in August—roughly a 10.3x increase compared to the May version. The main commit on August 13 alone added 363,246 lines.
The added code broadly covers pathways that affect visibility. Grox, media-model-proxy, and CLIP, which classify posts and images, were added. Agatha evaluates accounts based on patterns of blocks and reports. BDSM detects unnatural behavior, while Scarecrow and Botmaker apply labels based on rules. abuse-enforcement-service carries out actions. X has expanded the scope of what can be audited—publishing not just the calculations behind "what gets ranked higher," but also the upstream processes that generate "why something gets dropped from candidacy."
The license is Apache License 2.0, allowing developers to inspect, modify, and redistribute the code. According to TechCrunch's reporting, external researchers who saw the code before publication trained and ran Phoenix's scoring system. However, the researchers did not obtain production scores for individual posts on X.
Two Separate Circuits: Ranking Calculation and Visibility Determination
The For You process separates ranking and visibility determination into distinct circuits. First, Thunder gathers posts from followed accounts, while Phoenix retrieval and SimClusters search for candidates outside of follows. Phoenix predicts, for each post, the probability that a viewer will take actions such as liking, replying, reposting, or sharing a link. RankingScorer multiplies these probabilities by action-specific weights and sums them to create the base score for ranking.
In the main defaults of the published code, the weight for "like" is set at 0.5, reply at 5.0, repost at 1.0, the action of copying and sharing a link at 20.0, and following the poster at 4.0. There's also a setting that adds 15.0 to the reply weight for regular posts between mutual followers. However, these numeric values cannot be directly interpreted as "reach multipliers." X explains that each value combines the value of the action with its frequency of occurrence across the entire network, and the final score is also multiplied by the predicted probability.
After ranking is established, visibility-filtering returns one of three outcomes—"display normally," "display with a warning screen," or "hide"—for each combination of post and viewer. Posts judged as "hide" are removed from the feed after ranking. For example, posts suspected of being spam are excluded from recommendations to non-followers, while posts with high-confidence spam classification are not displayed on X at all. For adult or violent media, warnings or hiding are applied depending on the viewer's age and login status.
This separation is why a drop in reach can't be explained by a single factor. A post might rank lower due to a low score, get caught by a read-status or freshness filter, or be excluded only from recommendations to non-followers due to a visibility label. What Under the Hood reveals is specifically the portion where labels were involved.
How Far Can Users Verify "Shadow Bans"?
Under the Hood returns aggregated data for the previous month to verified users. Per the published code, eligibility requires that the account be older than 365 days and have at least 10 posts eligible for aggregation during the target month. The system selects a month where at least 10 days have passed since month-end, ensuring observation is complete. If data is incomplete, it falls back one additional month.
The downloadable JSON includes the target period, generation timestamp, and post count, followed by post labels and account labels. Post labels come with the number of affected posts and their percentage of total posts; account labels include the number of days the label was active and its percentage of the period. Each label also includes a description of its content and effect, allowing users to cross-reference it with the rules in the repository.
Looking at specific examples: SPAM_HIGH_RECALL is an automated detection method that prioritizes recall, excluding posts suspected of being spam from recommendations to non-followers. FOSNR_ABUSE_INSULTS similarly halts recommendations to non-followers and adds a notice indicating that visibility has been restricted. On the other hand, SPAM prevents the post itself from being displayed on X at all. X's official help documentation also lists multiple types of actions, including exclusion from search and trends, exclusion from For You and Following, display limited to the profile only, and lowered ranking in reply threads.
Therefore, the JSON is not a simple pass/fail inspection report. It's a monthly report showing which types of labels were applied to how many posts, or for how many days, during the target month. Even if no labels are found, this doesn't reveal whether a post ranked low or was affected by experiments. Conversely, if labels are found, users can trace specifically how and through which pathway their post became less visible to others.
Distance from Production That Remains Even After Code Publication
X has set boundaries on what it publishes. The specific LLM prompts used by Grox, along with some Botmaker rules, are excluded from the repository to prevent circumvention and abuse. Portions dependent on internal deployment infrastructure are also omitted, meaning not all published services can be fully reproduced externally as-is. For Phoenix, a configuration is provided for training and running a small-scale model using synthetic data.
There's also a time lag in configuration values. X has stated a policy of periodically syncing key production defaults to the code and making notable experiments—those accounting for 10% or more of timeline traffic—visible in the repository. Conversely, this doesn't guarantee that smaller-scale experiments or configuration overrides will always match. The published weights serve as a strong clue for reading production behavior, but they aren't a fixed cheat sheet applicable to all users.
Pressure for transparency continues as well. In January 2026, the European Commission expanded its existing investigation into whether X's recommendation system meets the risk assessment and mitigation obligations under the Digital Services Act. While there's no stated explanation that this release is a response to that investigation, the material available for external audit has grown substantially.
What remains to be seen is how far Under the Hood will expand beyond its current trial for select accounts, and whether users who discover mislabeled content can translate their verification findings into formal appeals. Whether X can move beyond simply returning results to users and actually correct mislabeling will determine how effective this transparency truly is.
