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.
Download pre-built binaries:
Download pre-built binaries for your platform from GitHub Releases:
Available for:
- Linux: x86_64 (gnu/musl), aarch64 (gnu/musl)
- macOS: x86_64 (Intel), aarch64 (Apple Silicon)
- Windows: x86_64
- BSD: FreeBSD, NetBSD
Fast binary installation without compiling:
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
- Auto mode detects your terminal's capabilities
- Halfblocks works in all terminals (Unicode-based)
bbcli includes a powerful CLI mode for quick access to headlines and articles without launching the full TUI.
Use -f or --feed with any of these feeds:
- top (default) - Top Stories
- world - World News
- uk - UK News
- business / biz - Business
- politics / pol - Politics
- health - Health
- education / edu - Education & Family
- science / sci - Science & Environment
- technology / tech - Technology
- entertainment / ent - Entertainment & Arts
- Regional: england, scotland, wales, northern ireland
- International: africa, asia, europe, latin america, middle east, us & canada
| j / ↓ | Scroll down |
| k / ↑ | Scroll up |
| G | Scroll to bottom |
| l | Go to latest (top) |
| o | Open article in browser |
| O | Open article in new tab |
| Space | Jump to current ticker article |
| r | Refresh news |
| Tab | Toggle preview pane |
| a / Enter | Open full article view |
| f | Open feed selector |
| ? | Toggle help menu |
| 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) |
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.
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
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
- Press Tab, Enter, or Esc to return to list view
Press s to cycle through sort orders:
- Default: RSS feed order (as received)
- Newest First: Sort by publication date, newest at top
- Oldest First: Sort by publication date, oldest at top
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:
Custom keybindings can be defined in either:
$HOME/.bbcli
Or:
$HOME/.config/bbcli
See example-config.toml for all available options:
Copy the example config:
Or create your own custom configuration with preferred keybindings and theme.
Inspired and extended by the original bbcli python version.
MIT
.png)

