unrager

Keep x.com. Lose the rage.

unrager is a browser extension that removes rage-bait from your Home timeline. A model on your own computer reads each post first, against rules you write, and nothing is sent anywhere else.

Free and open source. Runs on Ollama, LM Studio, vLLM, llama.cpp or SGLang, in Chrome, Brave, Edge, Vivaldi or Arc on macOS and Linux.

How it works

  1. X sends your timeline

    You open x.com as usual. The extension reads the posts X already sent your browser. It asks X for nothing extra.

  2. Your model reads each post

    unrager, running quietly on your computer, asks your model whether each post is one of the topics you'd rather not see.

  3. The rage-bait never shows

    New posts wait out of view for the moment it takes your model to read them, so the ones it hides never appear. Everything else stays exactly as X made it.

Install

About five minutes, most of it downloading a model.

  1. Run a model

    Install Ollama, then pull the default model:

    ollama pull qwen3:4b-instruct

    That's all: unrager finds Ollama on its usual port.

  2. Install unrager

    curl -fsSL https://unrager.com/install.sh | bash

    It installs one program, then runs unrager setup: that checks your model answers, starts unrager in the background so it comes back after a restart, and unpacks the extension. Prefer Rust? cargo install unrager, then unrager setup.

  3. Add the extension

    1. Open chrome://extensions. It works in every Chromium browser.
    2. Turn on Developer mode.
    3. Click Load unpacked, press Ctrl L (⌘ ⇧ G on a Mac) and paste the folder setup printed.

    Then open x.com. Posts that match your rules disappear as they load, and the unrager icon counts them.

Later, unrager update updates everything; the extension's popup then asks you to reload it. unrager doctor tells you what's wrong if anything is.

You write the rules

unrager starts with a list of the usual suspects: electoral politics, culture-war fights, doom, engagement farming, crypto shilling. Change any of it from the extension's popup, in plain words.

A post is hidden when a topic is the point of it, not when it mentions one in passing, so a physicist's joke about the election stays. The model also drops what you'd mute on sight: ratio bait, subtweets, "RT if you agree". A post it isn't sure about stays, unless you set it to strict.

Curious what it caught? Show hidden posts brings them back, dimmed and labelled with the rule that caught each one. Show this post keeps one for good, and right-clicking any post hides it by hand.

Questions

Does anything leave my computer?

No. The extension hands posts to unrager on localhost, and unrager hands them to your model. There's no account and no telemetry. The background server setup installs never reads your X login and never talks to X, and it refuses requests from web pages, so a site you visit can't use it.

What if my model is off, or slow?

X works as usual. unrager fails open: a new post waits a couple of seconds for its verdict and then shows anyway, a failed check is never remembered, and unrager asks again shortly. The toolbar badge shows ! while posts can't be checked, and the popup says what to run.

Which models work?

The default is Qwen3 4B on Ollama, 2.5 GB: small models judge posts well, answer fast and stay loaded. Any instruction-tuned model that can answer HIDE or KEEP will do, served by Ollama or by anything that speaks the OpenAI chat API: LM Studio, vLLM, llama.cpp's llama-server, SGLang, llama-swap. unrager eval tells you how well yours filters.

Can the model run on a different computer?

Yes. Run unrager setup --bind 0.0.0.0:7777 on the machine with the GPU, then enter its address under Settings in the extension's popup. Keep that to a private network such as Tailscale: unrager has no login of its own.

Which browsers and systems?

Chromium browsers (Chrome, Brave, Edge, Vivaldi, Arc) on macOS and Linux. Firefox, Safari and Windows aren't supported yet.

Why load it unpacked instead of from the Chrome Web Store?

It isn't listed yet. Loading it unpacked takes three clicks once; after that, unrager update keeps it current.

Does it filter replies, search and profiles too?

No, only your Home timeline, For you and Following. When you open a profile, a thread or a search, you went looking, so you see all of it.

Also in the box

A terminal client

unrager began as an X client for the terminal, and it's still here: run unrager for your timeline with the same filter, threads in a split pane, inline images in Ghostty, Kitty and WezTerm, and a local model that translates posts and explains threads. Every text box is a small Vim editor.

An iPhone app and a CLI

The extension can't reach X's own iPhone app, so there's a native one you build from source, served by unrager setup --apps. And a command line for reading and posting. The README has the details.