Crates.io | usenet_reborn |
lib.rs | usenet_reborn |
version | 0.2.2 |
created_at | 2025-04-27 18:29:01.583997+00 |
updated_at | 2025-09-20 14:01:10.347475+00 |
description | Terminal-based Usenet NNTP client written in Rust with ratatui/crossterm. |
homepage | https://sr.ht/~rek2/Usenet_Reborn |
repository | https://git.sr.ht/~rek2/usenet_reborn |
max_upload_size | |
id | 1651351 |
size | 4,253,668 |
The TUI client for Usenet enthusiasts
Author: Chris F.N. (aka ReK2)
License: GPLv3
Usenet Reborn is a terminal‑based NNTP client written in Rust, featuring:
$EDITOR
.$SIGNATURE_FILE
or ~/.signature
.xdg-open
.The application uses ratatui
+ crossterm
for the UI, and rek2_nntp
for NNTP interactions.
TODO
List Heregit clone https://git.sr.ht/~rek2/usenet_reborn
cd usenet_reborn
cargo build --release
config.toml
:[usenet.server]
username = "your_newsserver_username"
password = "" # leave blank to use `pass` or compatible like `gopass`
server = "news.example.com"
[headers]
from_header = "Your Name"
email_header = "you@example.com"
[display]
threaded_view = true
subscriptions
file listing one newsgroup per line:alt.comp.lang.rust
comp.sys.ibm.pc.hardware
$SIGNATURE_FILE
to point to your sig, or place ~/.signature
.~/.signature
:
Chris F.N. (ReK2)
https://rek2.hispagatos.org
gemini://rek2.hispagatos.org
You can also install via the Arch User Repository (AUR):
paru -S usenet_reborn-git
Before runing the client:
EDITOR
and SIGNATURE_FILE
you should add and export these variables on your .bashrc or equivalent.EDITOR=vim SIGNATURE_FILE="$HOME/.signature" ./target/release/usenet_reborn
you can copy the resulting binary to somewhere in your $PATH like ~/bin/usenet_reborn or /usr/local/bin/usenet_reborn
Usenet Reborn will look for its files in the standard OS locations first; if not found, it falls back to wherever you run the binary.
Config file (config.toml
):
~/.config/usenet_reborn/config.toml
~/Library/Application Support/ReK2/usenet_reborn/config.toml
./config.toml
)Subscriptions (subscriptions
):
~/.config/usenet_reborn/subscriptions
~/Library/Application Support/ReK2/usenet_reborn/subscriptions
./subscriptions
)Cache database (cache.sqlite3
):
~/.cache/usenet_reborn/cache.sqlite3
~/Library/Caches/ReK2/usenet_reborn/cache.sqlite3
If any required file is missing, Usenet Reborn will exit with an error telling you exactly where to place it.
View | Keys | Action |
---|---|---|
Global | Ctrl+h / Ctrl+l | Switch between Newsgroups ↔ Articles views |
Ctrl+u | Update articles from server | |
Groups | j / k | Move selection up/down |
Enter | Load unread articles for selected newsgroup | |
q | Quit | |
Articles | j / k | Move selection up/down |
Enter | Display article body | |
Space | Toggle read/unread flag | |
Ctrl+r | Mark all messages in selected newsgroup as read | |
n | Compose new post (popup for newsgroups & subject) | |
r | Reply to selected article | |
q | Clear status / remain in Articles view | |
Esc | Back to Newsgroups view | |
Article | j / k | Scroll body up/down |
o | Open links in external browser (xdg-open ) |
|
r | Reply to this article | |
q / Esc | Back to Articles view | |
Article Insert Mode | i | Enter Insert mode (move cursor freely) |
v | Enter Visual mode (start text selection) | |
h / j / k / l | Move cursor left / down / up / right | |
y | Yank (copy) selected text to clipboard | |
Esc (in Insert/Visual mode) | Exit mode |
When composing a new post (n
) or replying (r
) inside Articles view:
Action | Keys |
---|---|
Switch field | Tab |
Confirm | Enter |
Cancel | Esc |
You'll then be dropped into your configured $EDITOR
to write the body of the post.
config.toml
: Usenet server and headers settings.subscriptions
: One newsgroup per line.EDITOR
: Which editor to use (default: nano
).SIGNATURE_FILE
: Path to signature file (defaults to ~/.signature
).xdg-open
: to open links on default external programs.cache.sqlite3
) to store:
mailing
list for patches and discussion sending email to ~rek2/Usenet_Reborn+subscribe@lists.sr.ht
keep the case as Usenet_Reborn
.~rek2/Usenet_Reborn@lists.sr.ht
after you subscribe! keep the case as Usenet_Reborn
.This project is licensed under the GPLv3. See LICENSE for details.
Happy Usenet-ing!