| Crates.io | bbc-news-cli |
| lib.rs | bbc-news-cli |
| version | 1.0.3 |
| created_at | 2025-10-19 00:31:51.133489+00 |
| updated_at | 2025-10-19 02:15:11.688565+00 |
| description | Browse BBC News like a hacker. |
| homepage | https://github.com/hako/bbcli |
| repository | https://github.com/hako/bbcli |
| max_upload_size | |
| id | 1889791 |
| size | 197,892 |

Browse BBC News like a hacker.
A terminal-based BBC News reader built with Rust and ratatui, featuring a compact, numbered list interface with vim-like navigation.
Note: This is a complete rewrite of bbcli in Rust.
# Install from crates.io
cargo install bbc-news-cli
Fast binary installation without compiling:
# Install cargo-binstall first if needed
# See: https://github.com/cargo-bins/cargo-binstall
cargo binstall bbc-news-cli
Download pre-built binaries:
eget hako/bbcli
git clone https://github.com/hako/bbcli
cd bbcli
cargo build --release
cargo install --path .
# Launch interactive TUI
bbcli
# Or use CLI mode (see below)
bbcli list
bbcli includes a powerful CLI mode for quick access to headlines and articles without launching the full TUI.
# List top stories
bbcli list
# List from specific feed
bbcli --feed world list
bbcli --feed technology list
bbcli --feed business list
# Open article #3 in browser
bbcli open 3
# Open from specific feed
bbcli --feed technology open 1
# Read article #2 in terminal (reader mode)
bbcli show 2
# Show article from specific feed
bbcli --feed world show 5
Use -f or --feed with any of these feeds:
top (default) - Top Storiesworld - World Newsuk - UK Newsbusiness / biz - Businesspolitics / pol - Politicshealth - Healtheducation / edu - Education & Familyscience / sci - Science & Environmenttechnology / tech - Technologyentertainment / ent - Entertainment & Artsengland, scotland, wales, northern irelandafrica, asia, europe, latin america, middle east, us & canada| Key | Action |
|---|---|
j / ↓ |
Scroll down |
k / ↑ |
Scroll up |
G |
Scroll to bottom |
l |
Go to latest (top) |
| Key | Action |
|---|---|
o |
Open article in browser |
O |
Open article in new tab |
Space |
Jump to current ticker article |
r |
Refresh news |
| Key | Action |
|---|---|
Tab |
Toggle preview pane |
a / Enter |
Open full article view |
f |
Open feed selector |
? |
Toggle help menu |
| Key | Action |
|---|---|
s |
Cycle sort order (Default / Newest First / Oldest First) |
t |
Toggle date format (humanized / absolute) |
T |
Cycle theme (light / dark) |
p |
Cycle image protocol (Auto / Halfblocks / Sixel / Kitty) |
| Key | Action |
|---|---|
q / Esc |
Quit |
Press f to open the feed menu and switch between different BBC News feeds:
Navigate with j/k or arrow keys, press Enter to select, f or Esc to close.
Press Tab to toggle the preview pane, which displays a 80/20 split showing:
Press Enter or a to open the full article view with reader mode:
j/k or arrow keysTab, Enter, or Esc to return to list viewPress s to cycle through sort orders:
Sort order persists across manual and automatic refreshes.
The footer displays breaking news headlines from Top Stories feed, rotating every ~10 seconds. Press Space to instantly jump to the current ticker article in the feed.
The app automatically refreshes news every 5 minutes, keeping stories visible during refresh (no loading placeholder).
Press T to cycle between light and dark themes. The default theme can be set in your config file.
bbcli automatically caches feeds and articles to disk for offline reading:
To clear the cache:
rm -rf ~/.bbcli/cache/
Custom keybindings can be defined in either:
$HOME/.bbcli
Or:
$HOME/.config/bbcli
See example-config.toml for all available options:
# Theme: "light" or "dark" (default: "dark")
theme = "dark"
[keybindings]
quit = 'q'
open = 'o'
open_new_tab = 'O'
refresh = 'r'
latest = 'l'
scroll_up = 'k'
scroll_down = 'j'
scroll_bottom = 'G'
Copy the example config:
cp example-config.toml ~/.bbcli
Or create your own custom configuration with preferred keybindings and theme.
Inspired and extended by the original bbcli python version.
MIT