You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hide sponsored posts now covers the Sponsored box in Home's right column, the one above Friend requests. Facebook sends that box already drawn when Home first loads, so the script hides it before it shows. When Home is drawn again after a visit elsewhere, the script takes the box out of Facebook's data instead. Friend requests and the rest of the column stay where they were. Checked on facebook.com on 2026-10-21 with the userscript (page and content mode) and with the extension in Brave. The box never showed, on a fresh load or after going to Marketplace and back. Those runs also had 7 to 18 feed ads each in Facebook's data, and none of them got drawn.
Hide sponsored posts catches a feed ad that used to stay on screen. Facebook now draws a post's "Ad" label through a chain of six linked SVG pieces, and the check only followed the first link, so all it found was the ad's Sign up button. That button alone never hides a post. It follows the whole chain now. The check also starts reading posts while the page is still arriving, since Home's first posts come in already drawn. Checked on facebook.com on 2026-10-21. In content mode, where only the page check runs, all 4 feed ads Facebook drew were hidden. In page mode the 72 ads in Facebook's data were taken out before any got drawn.
Facebook loads past its splash screen again in Firefox with Tampermonkey. Tampermonkey there ran the script in a sandbox of its own, cut off from the page. The script didn't notice and hooked Facebook's page code anyway. That stopped Facebook's own scripts mid-load, and 14 features failed to start. The script now asks Tampermonkey for the page itself and checks where it really landed before it touches the page. If it still ends up in the sandbox, it turns its page-only features off and leaves Facebook alone. Checked on signed-out facebook.com on 2026-10-22 with Tampermonkey 5.5.0 on Firefox 156 and 5.5.1 on Chromium. Both ran the script in the page with no errors. A copy forced back into the sandbox started cleanly too, and Facebook loaded normally.
Hide suggested posts now also takes the People you may know row and the Your group suggestions row out of Home in page mode. Facebook sends each one as a feed item of its own, so the script drops it from the data before it's drawn and the feed keeps paging. It's checked against the rows Facebook sent on 2026-10-21 (none came on 2026-10-22).
Facebook now reads each feed answer a second time, wrapped in an extra layer of its own. Once wrapped, an answer the script had already filtered looked new to it, so it got filtered again by the page you were on instead of the request that fetched it. The script sees through the wrapper now. Right before each answer, Facebook also reads a small decoy that would show if a script edited it. The script leaves the decoy exactly as it is. Checked on facebook.com on 2026-10-22.
New switch, Hide the New message button. It takes the round button out of Facebook's bottom corner, where it got in the way of zoomed-in screenshots. The script finds it by its icon, so it works in any language, and chats you have open stay put. Checked on facebook.com on 2026-10-22 on Home and Marketplace in both page and content mode. That button was the only thing that went.
Translators have a file to start from. translations/template.json lists all 484 phrases the script can show, in English, and the README explains how to send a translation in. A test keeps it in step with the script, so a new phrase can't be left out.
Violentmonkey on Firefox didn't start the script at all when set to run it as a content script. It does now, with the page-only features off, the same as in Chrome.
A release can't go public anymore until the live check has walked that exact build on Facebook. Publishing used to go ahead without it. Now it stops and says to run the live stage first, and a new build needs a new walk.
The live check before a release is a fixed walk of 30 checks now, each ending PASS or FAIL. It loads Home, groups, Marketplace, Reels, Watch, Messenger and a profile with every switch on and again with every switch off. It also opens every section of the settings panel, counts the ads left on screen and opens chats to see whether read receipts go out. The walk takes about nine minutes, where the old check ran for over an hour. npm run release -- --stage live --full still runs every check there is.
Issue reports this release changes something for: #8 was Facebook stuck on its splash screen with Tampermonkey or Violentmonkey on Firefox, #5 asked for the Sponsored box and the People you may know and group suggestion rows to go, #7 asked for a way to hide the New message button, and #6 offered a translation, which now has a template to start from.