bbcli
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.
installation
Using eget (Recommended)
Download pre-built binaries:
eget hako/bbcli
GitHub Releases
Download pre-built binaries for your platform from GitHub Releases:
Available for:
Linux : x86_64 (gnu/musl), aarch64 (gnu/musl)
: x86_64 (gnu/musl), aarch64 (gnu/musl) macOS : x86_64 (Intel), aarch64 (Apple Silicon)
: x86_64 (Intel), aarch64 (Apple Silicon) Windows : x86_64
: x86_64 BSD: FreeBSD, NetBSD
Using cargo-binstall (Also Recommended)
Fast binary installation without compiling:
# Install cargo-binstall first if needed # See: https://github.com/cargo-bins/cargo-binstall cargo binstall bbc-news-cli
From crates.io
# Install from crates.io cargo install bbc-news-cli
From source
git clone https://github.com/hako/bbcli cd bbcli cargo build --release cargo install --path .
terminal compatibility
bbcli works best in modern terminals with full Unicode and image protocol support:
Recommended terminals:
WezTerm - Excellent image support (Sixel, Kitty, iTerm2)
Ghostty - Fast, GPU-accelerated with Kitty protocol
Rio - Modern, hardware-accelerated
Alacritty - Fast, minimal (Halfblocks mode for images)
Kitty - Full Kitty graphics protocol support
iTerm2 (macOS) - Inline images protocol
Image protocols:
Press p to cycle through: Auto / Halfblocks / Sixel / Kitty
to cycle through: Auto / Halfblocks / Sixel / Kitty Auto mode detects your terminal's capabilities
Halfblocks works in all terminals (Unicode-based)
usage
# Launch interactive TUI bbcli # Or use CLI mode (see below) bbcli list
cli mode:
bbcli includes a powerful CLI mode for quick access to headlines and articles without launching the full TUI.
List Headlines
# List top stories bbcli list # List from specific feed bbcli --feed world list bbcli --feed technology list bbcli --feed business list
Open Article in Browser
# Open article #3 in browser bbcli open 3 # Open from specific feed bbcli --feed technology open 1
Show Article in Terminal
# Read article #2 in terminal (reader mode) bbcli show 2 # Show article from specific feed bbcli --feed world show 5
Available Feeds
Use -f or --feed with any of these feeds:
top (default) - Top Stories
(default) - Top Stories world - World News
- World News uk - UK News
- UK News business / biz - Business
/ - Business politics / pol - Politics
/ - Politics health - Health
- Health education / edu - Education & Family
/ - Education & Family science / sci - Science & Environment
/ - Science & Environment technology / tech - Technology
/ - Technology entertainment / ent - Entertainment & Arts
/ - Entertainment & Arts Regional: england , scotland , wales , northern ireland
, , , International: africa , asia , europe , latin america , middle east , us & canada
tui keyboard shortcuts:
Navigation
Key Action j / ↓ Scroll down k / ↑ Scroll up G Scroll to bottom l Go to latest (top)
Actions
Key Action o Open article in browser O Open article in new tab Space Jump to current ticker article r Refresh news
Views
Key Action Tab Toggle preview pane a / Enter Open full article view f Open feed selector ? Toggle help menu
Settings
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)
Other
Key Action q / Esc Quit
Feed Menu
Press f to open the feed menu and switch between different BBC News feeds:
Top Stories (default)
World
UK
Business
Politics
Health
Education & Family
Science & Environment
Technology
Entertainment & Arts
Regional feeds (England, Northern Ireland, Scotland, Wales)
International regions (Africa, Asia, Europe, Latin America, Middle East, US & Canada)
Navigate with j / k or arrow keys, press Enter to select, f or Esc to close.
Features
Preview Pane
Press Tab to toggle the preview pane, which displays a 80/20 split showing:
Article image (with configurable image protocol support)
Title and description
Publication date and feed name
Full Article View
Press Enter or a to open the full article view with reader mode:
Clean, distraction-free article text
Scrollable with j / k or arrow keys
/ or arrow keys Press Tab , Enter , or Esc to return to list view
Story Sorting
Press s to cycle through sort orders:
Default : RSS feed order (as received)
: RSS feed order (as received) Newest First : Sort by publication date, newest at top
: Sort by publication date, newest at top Oldest First: Sort by publication date, oldest at top
Sort order persists across manual and automatic refreshes.
Ticker Navigation
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).
Themes
Press T to cycle between light and dark themes. The default theme can be set in your config file.
Offline Mode
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.
credits
Inspired and extended by the original bbcli python version.
license
MIT