Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Here are some terms to mute on Twitter to clean your timeline up a bit.
Mute these words in your settings here: https://twitter.com/settings/muted_keywords
ActivityTweet
generic_activity_highlights
generic_activity_momentsbreaking
RankedOrganicTweet
suggest_activity
suggest_activity_feed
suggest_activity_highlights
suggest_activity_tweet
suggest_grouped_tweet_hashtag
suggest_pyle_tweet
suggest_ranked_organic_tweet
suggest_ranked_timeline_tweet
suggest_recap
suggest_recycled_tweet
suggest_recycled_tweet_inline
suggest_sc_tweet
suggest_timeline_tweet
suggest_who_to_follow
suggestactivitytweet
suggestpyletweet
suggestrecycledtweet_inline
@donwatkins

This comment has been minimized.

Copy link

@donwatkins donwatkins commented Jan 3, 2020

Thanks for sharing this. This is a great.

@00k00km3m0nk3y

This comment has been minimized.

Copy link

@00k00km3m0nk3y 00k00km3m0nk3y commented Jan 3, 2020

Thanks!

@i0bj

This comment has been minimized.

Copy link

@i0bj i0bj commented Jan 4, 2020

Bless you for this lol

@PolarYair

This comment has been minimized.

Copy link

@PolarYair PolarYair commented Jan 8, 2020

Thank you very much

@phunkren

This comment has been minimized.

Copy link

@phunkren phunkren commented Jan 24, 2020

๐Ÿ™

@tonycletus

This comment has been minimized.

Copy link

@tonycletus tonycletus commented Jan 24, 2020

๐Ÿ™Œ๐Ÿ™Œ๐Ÿ™Œ

@leanucci

This comment has been minimized.

Copy link

@leanucci leanucci commented Jan 24, 2020

Any way to automate muting these? Settings only allow adding one at a time

@dillionmegida

This comment has been minimized.

Copy link

@dillionmegida dillionmegida commented Jan 24, 2020

Can someone please explain how these aren't actual words used in tweets but are still muted?

@kamalhm

This comment has been minimized.

Copy link

@kamalhm kamalhm commented Jan 24, 2020

thanks!!!

@DominusKelvin

This comment has been minimized.

Copy link

@DominusKelvin DominusKelvin commented Jan 24, 2020

Awesome

@bluetidepro

This comment has been minimized.

Copy link

@bluetidepro bluetidepro commented Jan 24, 2020

Would love to see this updated with maybe example screenshots of what each one actually mutes! Either way, this is awesome.

@whalesalad

This comment has been minimized.

Copy link

@whalesalad whalesalad commented Jan 24, 2020

Can someone please explain how these aren't actual words used in tweets but are still muted?

Chances are the mute code is checking for a string in a bigger object where these properties exist.

@prayank23

This comment has been minimized.

Copy link

@prayank23 prayank23 commented Jan 24, 2020

Awesome! Added the words and will test how this works ๐Ÿ‘

@debpaul

This comment has been minimized.

Copy link

@debpaul debpaul commented Jan 24, 2020

Oooh. Thanks much!

@gr2m

This comment has been minimized.

Copy link

@gr2m gr2m commented Jan 24, 2020

This is really great! I wonder if you could maybe put it into a repository instead? People could submit new words more easily if new features are introduced, and users could watch "releases only". You could create releases notes with newly added words, it would be easier to keep track. Happy to collaborate on that repository if you like

@djuanit0x

This comment has been minimized.

Copy link

@djuanit0x djuanit0x commented Jan 24, 2020

Thanks

@alexpapworth

This comment has been minimized.

Copy link

@alexpapworth alexpapworth commented Jan 24, 2020

I wonder why twitter exposes these in the first place?

@AndrewReifel

This comment has been minimized.

Copy link

@AndrewReifel AndrewReifel commented Jan 24, 2020

Awesome!

@nosequeldeebee

This comment has been minimized.

Copy link

@nosequeldeebee nosequeldeebee commented Jan 24, 2020

not all heroes wear capes

@j6k4m8

This comment has been minimized.

Copy link

@j6k4m8 j6k4m8 commented Jan 24, 2020

Can verify that the following js hits the right elements, still needs some love but hopefully that gets us a bit closer to automated list-entry.

To go directly to the add-keyword page:

window.location = 'https://twitter.com/settings/add_muted_keyword';

To enter and save a new keyword:

let keyword = "ActivityTweet";
document.querySelectorAll("[name='keyword']")[0].value = keyword;
document.querySelectorAll("[data-testid='settingsDetailSave']")[0].click();
@evilmarty

This comment has been minimized.

Copy link

@evilmarty evilmarty commented Jan 24, 2020

suggest_who_to_follow ๐Ÿ™Œ๐ŸŽ‰๐Ÿค—

@stephenc

This comment has been minimized.

Copy link

@stephenc stephenc commented Jan 24, 2020

Awesome

@TylerBussell

This comment has been minimized.

Copy link

@TylerBussell TylerBussell commented Jan 24, 2020

Hi, muting these things doesn't actually do anything. I can't speak to the JS code or any plugins. You can switch to the Latest Tweets timeline and you shouldn't see them.

@mjy

This comment has been minimized.

Copy link

@mjy mjy commented Jan 24, 2020

@TylerBussel- force reload your page?

@orbitalflower

This comment has been minimized.

Copy link

@orbitalflower orbitalflower commented Jan 24, 2020

Has anyone scientifically tested whether muting keywords in this fashion actually works, particularly on the new Twitter?

How do we know everyone's not cargo-culting a technique that doesn't actually work, or which only worked on old Twitter?

@dweekly

This comment has been minimized.

Copy link

@dweekly dweekly commented Jan 24, 2020

Just as a heads-up, this is now on the front page of Hacker News; https://news.ycombinator.com/item?id=22141903

@TylerBussell

This comment has been minimized.

Copy link

@TylerBussell TylerBussell commented Jan 24, 2020

@TylerBussel- force reload your page?

I don't need to. This definitely does not work.

@iMerica

This comment has been minimized.

Copy link

@iMerica iMerica commented Jan 24, 2020

You're a life saver thank you @IanColdwater ๐Ÿ™Œ

@SlowHadoken

This comment has been minimized.

Copy link

@SlowHadoken SlowHadoken commented Jan 24, 2020

Thatโ€™s the stuff

@mjy

This comment has been minimized.

Copy link

@mjy mjy commented Jan 24, 2020

@TylerBussel if definitey did work for me.

@suyashjoshi

This comment has been minimized.

Copy link

@suyashjoshi suyashjoshi commented Jan 24, 2020

Which ones are the one that will hide the ads ?

@cardonamronald

This comment has been minimized.

Copy link

@cardonamronald cardonamronald commented Jan 24, 2020

Any term to block other people liked tweets ?

@TheRyanHickman

This comment has been minimized.

Copy link

@TheRyanHickman TheRyanHickman commented Jan 24, 2020

๐Ÿ™

@AndrewKemendo

This comment has been minimized.

Copy link

@AndrewKemendo AndrewKemendo commented Jan 24, 2020

Any way to automate muting these? Settings only allow adding one at a time

It took me all of 2 minutes to do all of them. You don't need to set up a jenkins pipeline for this task.

@kpennell

This comment has been minimized.

Copy link

@kpennell kpennell commented Jan 24, 2020

@TylerBussell

This comment has been minimized.

Copy link

@TylerBussell TylerBussell commented Jan 24, 2020

@TylerBussel if definitey did work for me.

I will venmo someone $100 if they can prove to me that muting these keywords works.

@jakebellacera

This comment has been minimized.

Copy link

@jakebellacera jakebellacera commented Jan 24, 2020

In case anyone wants to fully automate entering these in. I took @j6k4m8's snippet and expanded on it.

  1. Visit https://twitter.com/settings/muted_keywords
  2. Open your browser's dev tools (note: this does work in Chrome)
  3. Paste the following code in:
const delayMs = 500; // change this if you feel like its running too fast

const keywords = `ActivityTweet
generic_activity_highlights
generic_activity_momentsbreaking
RankedOrganicTweet
suggest_activity
suggest_activity_feed
suggest_activity_highlights
suggest_activity_tweet
suggest_grouped_tweet_hashtag
suggest_pyle_tweet
suggest_ranked_organic_tweet
suggest_ranked_timeline_tweet
suggest_recap
suggest_recycled_tweet
suggest_recycled_tweet_inline
suggest_sc_tweet
suggest_timeline_tweet
suggest_who_to_follow
suggestactivitytweet
suggestpyletweet
suggestrecycledtweet_inline`.split(/\W+/);

const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;

const addMutedKeyword = keyword => {
  const input = document.querySelector("[name='keyword']");
  nativeInputValueSetter.call(input, keyword);
  input.dispatchEvent(new Event('input', { bubbles: true }));
  document.querySelector("[data-testid='settingsDetailSave']").click();
}

const delay = () => {
  return new Promise(res => setTimeout(res, delayMs));
};

keywords.reduce(async (prev, keyword) => {
  await prev;
  document.querySelector("a[href='/settings/add_muted_keyword']").click();
  await delay();
  addMutedKeyword(keyword);
  return delay();
}, Promise.resolve());
@llacb47

This comment has been minimized.

Copy link

@llacb47 llacb47 commented Jan 24, 2020

In case anyone wants to fully automate entering these in. I took @j6k4m8's snippet and expanded on it.

Doesn't work on old twitter design, sadly

@shstkvch

This comment has been minimized.

Copy link

@shstkvch shstkvch commented Jan 25, 2020

@jakebellacera Thank you so much for doing this, so useful. What's the advantage of using Object.getOwnPropertyDescriptor over just setting the value of the field with document.querySelectorAll("[name='keyword']")[0].value = keyword; as in @j6k4m8's snippet ?

@freedmand

This comment has been minimized.

Copy link

@freedmand freedmand commented Jan 25, 2020

Expanded on @jakebellacera's script to make it work for my browser. Visit https://twitter.com/settings/add_muted_keyword, open your browser's javascript console, and paste the following script in:

const delayMs = 1000; // change this if you feel like its running too fast

const keywords = `ActivityTweet
generic_activity_highlights
generic_activity_momentsbreaking
RankedOrganicTweet
suggest_activity
suggest_activity_feed
suggest_activity_highlights
suggest_activity_tweet
suggest_grouped_tweet_hashtag
suggest_pyle_tweet
suggest_ranked_organic_tweet
suggest_ranked_timeline_tweet
suggest_recap
suggest_recycled_tweet
suggest_recycled_tweet_inline
suggest_sc_tweet
suggest_timeline_tweet
suggest_who_to_follow
suggestactivitytweet
suggestpyletweet
suggestrecycledtweet_inline`.split(/\W+/);

const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;

const addMutedKeyword = keyword => {
  const input = document.querySelector("[name='keyword']");
  nativeInputValueSetter.call(input, keyword);
  input.dispatchEvent(new Event('input', { bubbles: true }));
  document.querySelector("[data-testid='settingsDetailSave']").click();
}

const delay = () => {
  return new Promise(res => setTimeout(res, delayMs));
};

keywords.reduce(async (prev, keyword) => {
  await prev;
  addMutedKeyword(keyword);
  await delay();
  document.querySelector('[aria-label="Add muted word or phrase"]').click();
  return delay();
}, Promise.resolve());
@j6k4m8

This comment has been minimized.

Copy link

@j6k4m8 j6k4m8 commented Jan 25, 2020

You beautiful, wonderful people. Confirmed @jakebellacera's code works for me, latest firefox on 'vanilla' twitter.com. Glad my lines of code found a good home :)

@jakebellacera

This comment has been minimized.

Copy link

@jakebellacera jakebellacera commented Jan 25, 2020

@shstkvch glad it was useful to someone. ๐Ÿ™‚ The main reason why is because Twitter uses React, and the input is a controlled field, so merely mutating the value on the HTML field does nothing because the application state isnโ€™t aware that the input changed (and therefore you cannot submit the form on the page).

@ntbnnt

This comment has been minimized.

Copy link

@ntbnnt ntbnnt commented Jan 25, 2020

Thanks for sharing, awesome

@vabruce

This comment has been minimized.

Copy link

@vabruce vabruce commented Jan 25, 2020

Well done, thank you for sharing!

@catarino

This comment has been minimized.

Copy link

@catarino catarino commented Jan 25, 2020

In case anyone wants to fully automate entering these in. I took @j6k4m8's snippet and expanded on it.

  1. Visit https://twitter.com/settings/muted_keywords
  2. Open your browser's dev tools (note: this does work in Chrome)
  3. Paste the following code in:
const delayMs = 500; // change this if you feel like its running too fast

const keywords = `ActivityTweet
generic_activity_highlights
generic_activity_momentsbreaking
RankedOrganicTweet
suggest_activity
suggest_activity_feed
suggest_activity_highlights
suggest_activity_tweet
suggest_grouped_tweet_hashtag
suggest_pyle_tweet
suggest_ranked_organic_tweet
suggest_ranked_timeline_tweet
suggest_recap
suggest_recycled_tweet
suggest_recycled_tweet_inline
suggest_sc_tweet
suggest_timeline_tweet
suggest_who_to_follow
suggestactivitytweet
suggestpyletweet
suggestrecycledtweet_inline`.split(/\W+/);

const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;

const addMutedKeyword = keyword => {
  const input = document.querySelector("[name='keyword']");
  nativeInputValueSetter.call(input, keyword);
  input.dispatchEvent(new Event('input', { bubbles: true }));
  document.querySelector("[data-testid='settingsDetailSave']").click();
}

const delay = () => {
  return new Promise(res => setTimeout(res, delayMs));
};

keywords.reduce(async (prev, keyword) => {
  await prev;
  document.querySelector("a[href='/settings/add_muted_keyword']").click();
  await delay();
  addMutedKeyword(keyword);
  return delay();
}, Promise.resolve());

also works on Safari.

thx for this
@freedmand :)

@apervola

This comment has been minimized.

Copy link

@apervola apervola commented Jan 25, 2020

great work, much appreciated !

@superherointj

This comment has been minimized.

Copy link

@superherointj superherointj commented Jan 25, 2020

Thanks!

@vish0l

This comment has been minimized.

Copy link

@vish0l vish0l commented Jan 25, 2020

thanks

@digisavvy

This comment has been minimized.

Copy link

@digisavvy digisavvy commented Jan 25, 2020

@freedmand's code worked in my case. +1 would buy again! Where can I send a few bucks for you to get a beverage?

@doctoraw

This comment has been minimized.

Copy link

@doctoraw doctoraw commented Jan 25, 2020

Thanks ! ๐ŸŒˆ

@evandrix

This comment has been minimized.

Copy link

@evandrix evandrix commented Jan 25, 2020

๐Ÿ‘

@madaboutcode

This comment has been minimized.

Copy link

@madaboutcode madaboutcode commented Jan 25, 2020

The fixed delay in the code was not working all the time for me. So I added a wait until the add page returns before clicking on the add button again.

(function(){
  const delayMs = 500; 

  const keywords = `ActivityTweet
  generic_activity_highlights
  generic_activity_momentsbreaking
  RankedOrganicTweet
  suggest_activity
  suggest_activity_feed
  suggest_activity_highlights
  suggest_activity_tweet
  suggest_grouped_tweet_hashtag
  suggest_pyle_tweet
  suggest_ranked_organic_tweet
  suggest_ranked_timeline_tweet
  suggest_recap
  suggest_recycled_tweet
  suggest_recycled_tweet_inline
  suggest_sc_tweet
  suggest_timeline_tweet
  suggest_who_to_follow
  suggestactivitytweet
  suggestpyletweet
  suggestrecycledtweet_inline`.split(/\W+/);

  const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;

  const addMutedKeyword = keyword => {
    const input = document.querySelector("[name='keyword']");
    nativeInputValueSetter.call(input, keyword);
    input.dispatchEvent(new Event('input', { bubbles: true }));
    document.querySelector("[data-testid='settingsDetailSave']").click();
  }

  const delay = () => {
    return new Promise(res => setTimeout(res, delayMs));
  };

  keywords.reduce(async (prev, keyword) => {
    await prev;
    
    // wait till the browser returns to the initial screen before clicking the add button again. 
    while(window.location.href !== 'https://twitter.com/settings/muted_keywords'){
      await delay();
    }
    document.querySelector("a[href='/settings/add_muted_keyword']").click();
    await delay();
    addMutedKeyword(keyword);
    return delay();
  }, Promise.resolve());
            
})()
@julianwieg

This comment has been minimized.

Copy link

@julianwieg julianwieg commented Jan 25, 2020

thank you!

@paaandy

This comment has been minimized.

Copy link

@paaandy paaandy commented Jan 25, 2020

YES thank you so much, always thought it an assault to force my eyes to read that stuff

@mjy

This comment has been minimized.

Copy link

@mjy mjy commented Jan 25, 2020

@TylerBussel - I think you're right, this does nothing, maybe @IanColdwater can edit this gist so this is not burried.

I had been playing with uBlockOrigin settings at the same time as I was playing with these, and going back and replicating, even taking some time to see if things took a while to take effect- I can't see any effect/replicate what I initially saw. And there is this:

https://twitter.com/TwitterSupport/status/1220872428605317122

Though if you read carefully there is wiggle room- they may have some other effect, but that seems to be grasping at straws.

But, until we get proof (screenshots(?)), this is bogus.

@joshdance

This comment has been minimized.

Copy link

@joshdance joshdance commented Jan 25, 2020

I doubt this does anything.

Direct quote from Twitter "Hi Ian, muting these keywords won't actually change the number of suggested Tweets in your timeline. We are exploring ways to improve suggestions to allow you to further customize your timeline. More to come!" source - https://twitter.com/TwitterSupport/status/1220872428605317122

Reason is none of these words actually appear in the tweet body. It is not 'mute meta data about tweets' it is 'mute words' which presumably only are in the tweet body.

@Nerjuz

This comment has been minimized.

Copy link

@Nerjuz Nerjuz commented Jan 27, 2020

โค๏ธ

@GuillaumeRossolini

This comment has been minimized.

Copy link

@GuillaumeRossolini GuillaumeRossolini commented Jan 27, 2020

To the people for whom this didn't work: try switching your timeline back to chronological (instead of popular, or however it is called).
@TylerBussel @ronaldKM98 @mjy @joshdance

@heygambo

This comment has been minimized.

Copy link

@heygambo heygambo commented Jan 27, 2020

This seems interesting but I'm not 100% sure what it does ๐Ÿ˜…

@horvaro

This comment has been minimized.

Copy link

@horvaro horvaro commented Jan 27, 2020

โค๏ธ

The fixed delay in the code was not working all the time for me. So I added a wait until the add page returns before clicking on the add button again.

(function(){
  const delayMs = 500; 

  const keywords = `ActivityTweet
  generic_activity_highlights
  generic_activity_momentsbreaking
  RankedOrganicTweet
  suggest_activity
  suggest_activity_feed
  suggest_activity_highlights
  suggest_activity_tweet
  suggest_grouped_tweet_hashtag
  suggest_pyle_tweet
  suggest_ranked_organic_tweet
  suggest_ranked_timeline_tweet
  suggest_recap
  suggest_recycled_tweet
  suggest_recycled_tweet_inline
  suggest_sc_tweet
  suggest_timeline_tweet
  suggest_who_to_follow
  suggestactivitytweet
  suggestpyletweet
  suggestrecycledtweet_inline`.split(/\W+/);

  const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;

  const addMutedKeyword = keyword => {
    const input = document.querySelector("[name='keyword']");
    nativeInputValueSetter.call(input, keyword);
    input.dispatchEvent(new Event('input', { bubbles: true }));
    document.querySelector("[data-testid='settingsDetailSave']").click();
  }

  const delay = () => {
    return new Promise(res => setTimeout(res, delayMs));
  };

  keywords.reduce(async (prev, keyword) => {
    await prev;
    
    // wait till the browser returns to the initial screen before clicking the add button again. 
    while(window.location.href !== 'https://twitter.com/settings/muted_keywords'){
      await delay();
    }
    document.querySelector("a[href='/settings/add_muted_keyword']").click();
    await delay();
    addMutedKeyword(keyword);
    return delay();
  }, Promise.resolve());
            
})()
@jimaldon

This comment has been minimized.

Copy link

@jimaldon jimaldon commented Jan 27, 2020

Does this also work on the twitter android client?

@TylerBussell

This comment has been minimized.

Copy link

@TylerBussell TylerBussell commented Jan 27, 2020

@TylerBussel - I think you're right, this does nothing, maybe @IanColdwater can edit this gist so this is not burried.

I had been playing with uBlockOrigin settings at the same time as I was playing with these, and going back and replicating, even taking some time to see if things took a while to take effect- I can't see any effect/replicate what I initially saw. And there is this:

https://twitter.com/TwitterSupport/status/1220872428605317122

Though if you read carefully there is wiggle room- they may have some other effect, but that seems to be grasping at straws.

But, until we get proof (screenshots(?)), this is bogus.

This has come up several times in the past. We made some changes to the timeline settings + someone released a JS plugin that did some blocking, so it caused some confusion and people thought muting via keyword mute did something.

@am1983

This comment has been minimized.

Copy link

@am1983 am1983 commented Jan 27, 2020

Not all heroes where capes.

@stevetemp7

This comment has been minimized.

Copy link

@stevetemp7 stevetemp7 commented Jan 27, 2020

Worked for me. Made twitter usable. Thanks.

@davidawad

This comment has been minimized.

Copy link

@davidawad davidawad commented Jan 30, 2020

@madaboutcode's thing worked for me. Thanks!

@maxclark

This comment has been minimized.

Copy link

@maxclark maxclark commented Feb 1, 2020

๐Ÿ‘

@heygambo

This comment has been minimized.

Copy link

@heygambo heygambo commented Feb 11, 2020

What does this do exactly?

@Zuhayer

This comment has been minimized.

Copy link

@Zuhayer Zuhayer commented Feb 12, 2020

In case anyone wants to fully automate entering these in. I took @j6k4m8's snippet and expanded on it.

1. Visit https://twitter.com/settings/muted_keywords

2. Open your browser's dev tools (note: this does work in Chrome)

3. Paste the following code in:
const delayMs = 500; // change this if you feel like its running too fast

const keywords = `ActivityTweet
generic_activity_highlights
generic_activity_momentsbreaking
RankedOrganicTweet
suggest_activity
suggest_activity_feed
suggest_activity_highlights
suggest_activity_tweet
suggest_grouped_tweet_hashtag
suggest_pyle_tweet
suggest_ranked_organic_tweet
suggest_ranked_timeline_tweet
suggest_recap
suggest_recycled_tweet
suggest_recycled_tweet_inline
suggest_sc_tweet
suggest_timeline_tweet
suggest_who_to_follow
suggestactivitytweet
suggestpyletweet
suggestrecycledtweet_inline`.split(/\W+/);

const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;

const addMutedKeyword = keyword => {
  const input = document.querySelector("[name='keyword']");
  nativeInputValueSetter.call(input, keyword);
  input.dispatchEvent(new Event('input', { bubbles: true }));
  document.querySelector("[data-testid='settingsDetailSave']").click();
}

const delay = () => {
  return new Promise(res => setTimeout(res, delayMs));
};

keywords.reduce(async (prev, keyword) => {
  await prev;
  document.querySelector("a[href='/settings/add_muted_keyword']").click();
  await delay();
  addMutedKeyword(keyword);
  return delay();
}, Promise.resolve());

Worked for me #firefox

@orbitalflower

This comment has been minimized.

Copy link

@orbitalflower orbitalflower commented Feb 26, 2020

Muting these keywords appears to have no effect, at least in new web Twitter. Promoted tweets and follow suggestions still appear, and at the same rate as without the keywords muted.

I'm going to chalk this one up to the placebo effect. Adding these mutes and refreshing the feed will remove promoted tweets, but only because refreshing removes promoted tweets anyway. This reminds me of when D&D Online players believed that using the Diplomacy skill on a chest gave you better loot, so nobody could get a raid together without a high-ranking Diplomacy guy. Community moderators insisted that it had no effect, but nobody believed them. When the devs fixed the bug that let you talk to chests, players complained that their chest-ambassador characters had been nerfed and demanded the feature return.

Now, what was true is that in old Twitter, these "keywords" used to be used as CSS class names on Twitter, so you could write a custom CSS or adblock rule or something to hide these classes, and it would block promoted and suggested tweets very effectively. I suspect that at some point, someone got confused and thought these were keyword mutes, and the superstition spread because nobody tried to apply the scientific method to test whether keyword mutes actually worked.

@kaisdavis

This comment has been minimized.

Copy link

@kaisdavis kaisdavis commented Apr 4, 2020

Muting these keywords appears to have no effect, at least in new web Twitter. Promoted tweets and follow suggestions still appear, and at the same rate as without the keywords muted.

Thanks for the confirmation.

@MatthiasSaihttam

This comment has been minimized.

Copy link

@MatthiasSaihttam MatthiasSaihttam commented Apr 20, 2020

I can confirm that this โ€œworksโ€ when you first reload the page, but has no actual long term effect.

@mandaputtra

This comment has been minimized.

Copy link

@mandaputtra mandaputtra commented May 18, 2020

~ still I see retweets, like, and follow

@Technetium1

This comment has been minimized.

Copy link

@Technetium1 Technetium1 commented May 18, 2020

~ still I see retweets, like, and follow

@kaisdavis Yes you will see the expected user content, it just removes garbage

@rammahamazing

This comment has been minimized.

Copy link

@rammahamazing rammahamazing commented Jun 8, 2020

Which code work for hide likes !?

@AdryDev92

This comment has been minimized.

Copy link

@AdryDev92 AdryDev92 commented Jun 17, 2020

Thanks, this was very necessary.

@Technetium1

This comment has been minimized.

Copy link

@Technetium1 Technetium1 commented Jun 18, 2020

Which code work for hide likes !?

@rammahamazing this is the point of Twitter.

@kaiserkiwi

This comment has been minimized.

Copy link

@kaiserkiwi kaiserkiwi commented Jun 18, 2020

Any new term to mute these voice tweets?

@TheAshwanik

This comment has been minimized.

Copy link

@TheAshwanik TheAshwanik commented Jun 24, 2020

In case anyone wants to fully automate entering these in. I took @j6k4m8's snippet and expanded on it.

  1. Visit https://twitter.com/settings/muted_keywords
  2. Open your browser's dev tools (note: this does work in Chrome)
  3. Paste the following code in:
const delayMs = 500; // change this if you feel like its running too fast

const keywords = `ActivityTweet
generic_activity_highlights
generic_activity_momentsbreaking
RankedOrganicTweet
suggest_activity
suggest_activity_feed
suggest_activity_highlights
suggest_activity_tweet
suggest_grouped_tweet_hashtag
suggest_pyle_tweet
suggest_ranked_organic_tweet
suggest_ranked_timeline_tweet
suggest_recap
suggest_recycled_tweet
suggest_recycled_tweet_inline
suggest_sc_tweet
suggest_timeline_tweet
suggest_who_to_follow
suggestactivitytweet
suggestpyletweet
suggestrecycledtweet_inline`.split(/\W+/);

const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;

const addMutedKeyword = keyword => {
  const input = document.querySelector("[name='keyword']");
  nativeInputValueSetter.call(input, keyword);
  input.dispatchEvent(new Event('input', { bubbles: true }));
  document.querySelector("[data-testid='settingsDetailSave']").click();
}

const delay = () => {
  return new Promise(res => setTimeout(res, delayMs));
};

keywords.reduce(async (prev, keyword) => {
  await prev;
  document.querySelector("a[href='/settings/add_muted_keyword']").click();
  await delay();
  addMutedKeyword(keyword);
  return delay();
}, Promise.resolve());

Awesome.. Thank you.

@s7tya

This comment has been minimized.

Copy link

@s7tya s7tya commented Jul 19, 2020

awesome!
i recommend to add who_to_follow_entry

@heygambo

This comment has been minimized.

Copy link

@heygambo heygambo commented Jul 21, 2020

Would be great to have an explanation about what this is doing.

@mandaputtra

This comment has been minimized.

Copy link

@mandaputtra mandaputtra commented Jul 22, 2020

@heygambo, to simplify... that code add to your twitter muted list. That's it nothing more. You can read it BTW. It's there

@shashemi-m

This comment has been minimized.

Copy link

@shashemi-m shashemi-m commented Sep 14, 2020

I couldn't get this code to work on chrome, so I go to dev tools and paste it? But where, edit html and just paste?

@BenBE

This comment has been minimized.

Copy link

@BenBE BenBE commented Sep 14, 2020

Use by pasting in the Console tab of the debug tools, while on the appropriate site in your Twitter settings.

@shashemi-m

This comment has been minimized.

Copy link

@shashemi-m shashemi-m commented Sep 14, 2020

@BenBE Thank you! Is this still working? Seems like some people are saying it doesn't work anymore.

@BenBE

This comment has been minimized.

Copy link

@BenBE BenBE commented Sep 14, 2020

Not tested recently.

@Ruuubickk

This comment has been minimized.

Copy link

@Ruuubickk Ruuubickk commented Oct 8, 2020

Can confirm this still works, but i'd love to know which to add to get rid of those newly added topic following recommendations on the timeline.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You canโ€™t perform that action at this time.