Skip to main content

Full-screen Textual TUI news reader with RSS, themes, AI summarize, and TTS

Project description

World News CLI

Website PyPI Python License: MIT

Full-screen terminal news reader built with Textual. Sidebar, headlines, article pane, themes, AI summarize/explain, and text-to-speech that can highlight the sentence being read.

Website: nishal21.github.io/News-CLI · Author: nishal.dev · PyPI: worldnews-cli

Requires Python 3.9+.

Install

Fastest path for most people:

pip install worldnews-cli

Isolated tool install (recommended on shared machines):

pipx install worldnews-cli
# or
uv tool install worldnews-cli

Python / pip not on PATH (Windows)

If you see python is not recognized or pip is not recognized:

py -m pip install worldnews-cli
py -m worldnews

Or reinstall Python from python.org and enable Add python.exe to PATH.

Optional extras for offline/gTTS playback helpers:

pip install "worldnews-cli[voice]"

From a local clone (developers):

pip install -e .
# or
pip install -r requirements.txt

Run

worldnews
# short alias:
news

If the console script is not on your PATH:

python -m worldnews
# Windows launcher often works as:
py -m worldnews

Useful flags:

worldnews --category tech
worldnews --chat
worldnews --summary
worldnews --offline
worldnews --add-feed "My Blog" "https://example.com/feed.xml"
worldnews --version

Keys

Key Action
j / k or arrows Move in the list
Enter Open article (on a phone-width terminal: full-screen reader)
Esc / q Back to list, or quit
a / e AI summarize / explain
t Speak article (press again to stop)
/ Filter headlines
Ctrl+P Command palette
s Settings (App, AI, Voice)
[ / ] Previous / next feed
19 Jump to a numbered category
b Bookmark
o Open in browser
? Help

On narrow terminals (about under 84 columns), the app switches to a phone layout: Enter opens the reader full width, Esc/Back returns to the list, and a Back button appears in the action row.

What you get

  • Categories such as General, Tech, Hacker News, AI, Sports, Anime, plus All, Bookmarks, Offline, and My Feeds
  • Custom sites via palette add-feed (website or RSS; feed discovery when possible)
  • Infinite scroll on headline lists (50 at a time)
  • Animated ASCII boot / fetch splash (WORLD NEWS figlet + gradient)
  • Themes: Newsroom (default), Phosphor, Broadsheet, Nord, GitHub Dark, High Contrast
  • AI summarize / explain / chat (default free provider needs no key; many others supported)
  • Speak (t) with free Edge TTS by default; optional Fish Audio, Gemini, Groq, and paid live providers
  • Paste a voice id or library URL in Settings → Voice when you use a provider API key

Config lives under ~/.config/worldnews/ (older ~/.news-cli-*.json files are still read).

AI

Default free path: OpenCode Zen (big-pickle), no API key.

Also wired: Hack Club AI, Ollama, LM Studio, Groq, Gemini, OpenRouter, and others.

In the app: s → AI tab (or palette → ai-provider). Pick a provider/model, paste a key if required, Save key, Apply AI.

Hack Club keys: ai.hackclub.com

Voice / TTS

Provider Cost Key
Edge TTS Free None (default)
Fish Audio Free tier fish.audio (s2.1-pro-free, news/narrator voices)
Gemini TTS / Live Free tier Google AI Studio
Groq Orpheus Free tier Groq
Deepgram Aura-2 / Live Free credit Deepgram
OpenAI / Realtime Paid OpenAI
ElevenLabs / Live Free/paid ElevenLabs
Cartesia / Live Paid Cartesia
gTTS Free None

Flow: s → Voice → provider → model → voice (or paste id/URL) → API key if needed → Apply voice → t.

You can also set FISH_API_KEY, GEMINI_API_KEY, OPENAI_API_KEY, and similar env vars.

Provider docs: Fish · Gemini speech · Groq TTS

Complex scripts (Malayalam, Hindi, Arabic, …)

Cell-grid terminals (including Windows Terminal) often cannot shape Indic scripts the way a browser does. World News keeps the TUI usable with a safe default:

Mode How to enable Behavior
safe (default) Settings → App → Scripts, or no flag No Indic/Arabic glyphs in the TUI (list + reader); press o for browser
plain --plain / --ascii Same as safe for hostile scripts
native --native-titles Show native script in list/reader (may still overlap on Windows Terminal)

Fonts / hosts

  • Windows: use Windows Terminal, not legacy cmd.exe. Set the profile font to Nirmala UI or Noto Sans Malayalam.
  • Termux: install a Malayalam-capable font (e.g. Noto) via your font packages.
  • Linux / macOS: UTF-8 locale (LANG=*.UTF-8) + Noto / Meera / Rachana.

Startup forces UTF-8 I/O and enables Windows virtual terminal processing when possible. Full OpenType shaping still requires a capable terminal + font — for clearest reading press o (open in browser).

Phone and small terminals

This is a terminal UI. On Android, Termux is the usual host:

pkg update && pkg install python libxml2 libxslt libjpeg-turbo
pip install worldnews-cli
# optional
pip install "worldnews-cli[voice]"
pkg install termux-api ffmpeg
python -m worldnews

Other options: JuiceSSH/ConnectBot into a machine that already has worldnews, or a-Shell/iSH on iOS with Python + pip.

Width behavior (approximate):

Columns Layout
100+ Sidebar + list + reader
84–99 List first; Enter opens reader
under 84 Single column; Enter = reader, Esc = list
under 56 Compact rows and short keyhints

Links open with termux-open-url when Termux API is installed.

Development

git clone <your-repo-url>
cd news-cli
pip install -e ".[dev,voice]"
python -m worldnews

Website (Astro)

cd docs
npm install
npm run dev
npm run build

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

worldnews_cli-0.4.4.tar.gz (109.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

worldnews_cli-0.4.4-py3-none-any.whl (114.5 kB view details)

Uploaded Python 3

File details

Details for the file worldnews_cli-0.4.4.tar.gz.

File metadata

  • Download URL: worldnews_cli-0.4.4.tar.gz
  • Upload date:
  • Size: 109.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.9

File hashes

Hashes for worldnews_cli-0.4.4.tar.gz
Algorithm Hash digest
SHA256 85cb28b52a062f1f567bb0827eaecf0144dd61a24ecddf5194228202a807b759
MD5 dc41066dbe39bd8ddbb87564b817c510
BLAKE2b-256 d6d11814e0f1994f2656b10ee33335dda57c4308560c08356f4bcaa174c49607

See more details on using hashes here.

File details

Details for the file worldnews_cli-0.4.4-py3-none-any.whl.

File metadata

  • Download URL: worldnews_cli-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 114.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.9

File hashes

Hashes for worldnews_cli-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6a7fc577d75d4409724fff1c178766ce9d9fca01cc49f28dad0f24b9a8abf26a
MD5 644e0a73a89b55040da365d987218340
BLAKE2b-256 ae8807d19a5202b3d440cda82c8a995832e0425fd4a31ecc0b7a92f1df433cc0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page