HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
StevenBlack
hosts
Python2013–2026
StevenBlack / hosts

hosts

🔒 Consolidating and extending hosts files from several well-curated sources. Optionally pick extensions for porn, social media, and other categories.

168Distinct people
244Mentions
5Explicit recommenders
31.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

🔒 Consolidating and extending hosts files from several well-curated sources. Optionally pick extensions for porn, social media, and other categories.

GitHub

Where it is used

The last source check was inconclusive. This does not establish whether a product uses it.

What people are saying

I am in the exact same boat. And lately it's the same sort of shit... My dad will get a text message on Facebook from a "friend" (usually a dead friend) and it'll say something…

dbg31415 used a recommendation phrase. 6 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 10:01:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year244 dated mentions

Observed mentions: 2013-02-22 16:12:14 UTC to 2026-10-07 09:41:56 UTC.

0102030402013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20132014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 4 mentions; 2 submissions, 2 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 38 mentions; 2 submissions, 36 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 18 mentions; 2 submissions, 16 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 28 mentions; 1 submissions, 27 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 41 mentions; 2 submissions, 39 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 27 mentions; 2 submissions, 25 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 21 mentions; 2 submissions, 19 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 19 mentions; 4 submissions, 15 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 22 mentions; 3 submissions, 19 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 11 mentions; 0 submissions, 11 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC101
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC110
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC422
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC38236
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC18216
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC28127
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC41239
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC27225
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC21219
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC19415
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC22319
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC707
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC11011
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC606

What Hacker News says

27 sources
I been maintaining a little hosts project for blocking ads and trackers [0]. I've casually noticed over the years that a lot of the lists out there combine other people's lists - some are more upfront about it then others. That got me thinking, who was the first list to block domain X? That is where this website comes in. A lot of popular block lists are hosted on GitHub, so that made it really easy to clone the repo and do a full history import of the project. I made a little script that could walk the git history and generate a JSON file containing all the unique versions to import [1]. The oldest lists from Steven Black's popular hosts project: April 2012 [2]. Other lists are harder to find history on, so they just go back as far as this project does. As a test to watch domains from one list get consumed by other lists, I added a fake
Read the rest
domain to my list 'developer-dan-list.clksite.com'. This root domain is particularly useful since it is a wildcard and will have a valid DNS response to any subdomain. As expected, I saw it get added to multiple lists in the following days. [0] https://www.github.developerdan.com/hosts/ [1] https://github.com/blocklist-tools/github-history-generator [2] https://github.com/StevenBlack/hosts
In Show HN: Blocklist Tools – Search popular host or domain formatted block lists
If you want to replicate that kind of configuration that is as painless as possible you just have to go into the extension options/configuration. Head to the "My rules" tab and you will find a rule, towards the top of the rule list, that says: "* * * block" This rule acts as a default blacklist. If you switch it to: "* * * allow" it will allow everything by default (except the blacklisted domains, which overrule this). Then in the "Assets" tab you can configure your blacklists, I can recommend Steven Black's lists. He curates and consolidates several of the most famous ones: https://github.com/StevenBlack/hosts He maintains several variants according to themes you may want to ban (adware, malware, fakenews...). Choose the combination that suits you.
In uMatrix has been archived
I use uMatrix to block scripts on certain domains. I used to use NoScript for this, but switched to uMatrix when I found that it gave me much more fine-grained control over what to allow or block. For ad-blocking, I supplement uMatrix with uBlock Origin. It has its own block lists that it perodically On top of that, I use privoxy as an http proxy. Unfortunately, it can't filter https. Yet another part of my defense is DNS blocklists that I put in to /etc/hosts.[1] Using this combination, I virtually never see any ads. [1] - https://github.com/StevenBlack/hosts
In Brave Browser, wiping history still leaves trace of visited sites
> and I should disable FF's DoH support? yeah there is no reason (I can think of) why you need FF DoH with your setup. In fact if you were to enable DoH in FF it would bypass your pie-hole - so you most certainly want to avoid that. my setup looks pretty much like yours with some additional /etc/hosts blocking[1] on the client just to avoid the round-trip to the pie-hole. it's also a double insulation (but it's more of a performance reason than bc of paranoia). I found that switching off ipv6 dns resolution in FF (`network.dns.disableIPv6` in about:config) has tremendously sped up my DNS lookups in FF (though I haven't had time to analyze why). in case you're worried about homograph phishing attacks you could also add a regex to your pie-hole's dnsmasq (not sure what piehole uses but I know it has a fork of dnsmask that supports regex) so
Read the rest
that punicode domains (any domains matching "xn--") are sinkholed to 0.0.0.0 as well. [1] https://github.com/StevenBlack/hosts
In Comcast, Mozilla strike privacy deal to encrypt DNS lookups in Firefox
I can see how it might seem that way — I'm Steven Black. I can point to thousands of combined... * issues https://github.com/StevenBlack/hosts/issues?q=is%3Aissue+is%... * ...pull requests... https://github.com/StevenBlack/hosts/pulls?q=is%3Apr+is%3Acl... * ... and commits https://github.com/StevenBlack/hosts/commits/master ...that indicate, it's not so easy. The sources we use are all vetted. Some sources are remarkable in terms of activity, and responsiveness to problems as they occur. Overall I think this area is far more dynamic than many realize. Some good people curate the lists we carry.
In All-in-One DNS block list
I have been using NextDNS with a few block lists configured at the router level and device level. The internet experience has improved a lot since ads and trackers are blocked system wide. A few block lists that I would recommend: 1. Steven Hosts - https://github.com/StevenBlack/hosts 2. Adguard DNS - https://github.com/AdguardTeam/AdguardSDNSFilter 3. disconnect.me The amount of DNS requests made silently in the background is astonishing across all devices.
In All-in-One DNS block list
I actually have been doing some work with MaraDNS to have the ability to have a pi-hole sized blacklist. The main source of pi-hole’s blacklist is this Git repo: https://github.com/StevenBlack/hosts That is about 60,000 hosts, so I added MaraDNS support to have up to 500,000 blacklisted names. Since it’s a speed-optimized (not size-optimized) cache, each element takes about a kilobyte of memory, so a blacklist this size takes about 60 megabytes of memory for MaraDNS to store (on a modern Core i7 7600U processor, it only takes about two seconds to load all 60,000 elements in to memory), but it’s very rapid to use. The script to take that blacklist and convert it in to a MaraDNS compatible format is here: https://github.com/samboy/MaraDNS/blob/master/deadwood-githu... There are ways to make the memory footprint of the blacklist smaller, b
Read the rest
ut this was a quick and simple way to implement a medium sized blacklist. Finding ways to have, say, 10 million blacklist elements with a small memory footprint is left as an exercise for the reader. My current project is to make a proper Docker container for MaraDNS.
In Ad blocking with Raspberry Pi and Pi-hole

Showing the 15 most recent of 27 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.