Onion Newsreader

Usenet  Web-based Usenet client that operates entirely within Tor. Read threads, post replies, browse newsgroups — no clearnet exposure.


What it is

The Onion Newsreader is a web-based NNTP client designed to run exclusively as a Tor hidden service. It connects to the Usenet server via SOCKS5 through the local Tor daemon — no clearnet connection is made at any point in the chain. Your IP never touches a news server.

It is written as a single Go binary with no external runtime dependencies. The interface provides threaded message views, group browsing, favourites, and integrated posting via M2Usenet for anonymous submissions.

Source: github.com/Virebent-do-ART/onion-newsreader.


Network path

Every connection in the chain goes through Tor. There is no fallback to clearnet at any layer.

Tor Browser (client)
  ↓  Tor v3 onion circuit
Onion Newsreader (Go binary, onion hidden service)
  ↓  SOCKS5 → Tor daemon (127.0.0.1:9050)
  ↓  Tor exit / onion circuit
news.tcpreset.net (NNTP server)
  ↓
Usenet feed

The news server sees a Tor circuit endpoint, not your IP. The Go binary acts as a proxy between your browser and the NNTP server — it handles the NNTP protocol so you don't have to configure a newsreader client.


Features

  • Threaded view — articles are displayed as nested reply trees, not flat chronological lists. Follow conversations without losing context.
  • Group browser — browse and search available newsgroups. Subscribe to groups to track new articles across sessions via favourites.
  • Favourites — bookmark groups and threads. The binary persists favourites in a local file; nothing is stored server-side.
  • Thread notifications — mark threads to watch for new replies without re-reading the full group.
  • M2Usenet integration — the posting interface routes through M2Usenet for anonymous submissions with Hashcash proof-of-work and Ed25519 signing. Reading and posting are two separate anonymity layers.
  • No JavaScript — the interface is server-rendered HTML. It works in Tor Browser with the strictest security level (NoScript on).

Reading vs posting

Reading and posting use separate anonymity paths by design.

Reading goes directly from the Onion Newsreader to the NNTP server via SOCKS5/Tor. The news server sees a Tor circuit but no identity information. Reading is passive — no article, no trace.

Posting routes through M2Usenet, which applies additional anonymisation before the article reaches the NNTP server: header sanitization, Hashcash proof-of-work (24-bit SHA-1), optional Ed25519 pseudonymous identity, and submission via a separate Tor hidden service. The result is that the poster's identity is not recoverable even from the article headers.


Access

The Onion Newsreader is accessible only via its Tor v3 onion address. Use Tor Browser.

Onion address:
qgaswy4ebtrhaargqvoboutky7xoyyx5rq5nhydixemkniresdze5dyd.onion:8043

There is no clearnet interface. The service is not reachable without Tor.


Self-hosting

Build requirements: Go 1.19+. Single binary, no CGO.

git clone https://github.com/Virebent-do-ART/onion-newsreader
cd onion-newsreader
go mod tidy
CGO_ENABLED=0 go build -ldflags="-s -w" -o onion-newsreader .

The binary reads its configuration from environment variables or a config file. Point it at your local Tor SOCKS5 proxy and your NNTP server, then expose it as a Tor hidden service.

# example: run with Tor SOCKS5 on default port
NNTP_SERVER=news.tcpreset.net:119 \
TOR_SOCKS=127.0.0.1:9050 \
LISTEN=127.0.0.1:8043 \
./onion-newsreader

In your Tor configuration (/etc/tor/torrc):

HiddenServiceDir /var/lib/tor/onion-newsreader/
HiddenServicePort 8043 127.0.0.1:8043

Run as a dedicated non-privileged user. The binary binds to 127.0.0.1 only — the onion service is the sole access path.


Open Tor Browser, paste the onion address, and browse Usenet without installing a newsreader, configuring NNTP, or touching clearnet.

Source on GitHub →    M2Usenet (anonymous posting) →