
Bbc News
- 80 installs
- 638 repo stars
- Updated March 7, 2026
- sundial-org/awesome-openclaw-skills
Helps with ai & agent building tasks during AI-assisted development.
About
bbc-news is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- bbc-news
- AI & Agent Building
- AI-coding skill
Bbc News by the numbers
- 80 all-time installs (skills.sh)
- +1 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #5,222 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/sundial-org/awesome-openclaw-skills --skill bbc-newsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 80 |
|---|---|
| repo stars | ★ 638 |
| Last updated | March 7, 2026 |
| Repository | sundial-org/awesome-openclaw-skills ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
BBC News
Fetch top stories from BBC News across different sections and regions.
Quick Start
Fetch top stories:
python3 scripts/bbc_news.pyFetch from specific section:
python3 scripts/bbc_news.py uk
python3 scripts/bbc_news.py world
python3 scripts/bbc_news.py technologyList all available sections:
python3 scripts/bbc_news.py --listAvailable Sections
Main Sections
top- Top stories (default)uk- UK newsworld- World newsbusiness- Business newspolitics- Politicshealth- Health newseducation- Educationscience- Science & Environmenttechnology- Technology newsentertainment- Entertainment & Arts
UK Regional
england- England newsscotland- Scotland newswales- Wales newsnorthern-ireland- Northern Ireland news
World Regions
africa- Africa newsasia- Asia newsaustralia- Australia newseurope- Europe newslatin-america- Latin America newsmiddle-east- Middle East newsus-canada- US & Canada news
Options
Limit number of stories:
python3 scripts/bbc_news.py world --limit 5JSON output:
python3 scripts/bbc_news.py technology --jsonExamples
Get top 5 UK stories:
python3 scripts/bbc_news.py uk --limit 5Get Scotland news in JSON:
python3 scripts/bbc_news.py scotland --jsonGet latest technology headlines:
python3 scripts/bbc_news.py technology --limit 3Dependencies
Requires feedparser:
pip3 install feedparserResources
scripts/bbc_news.py
Python CLI that fetches and displays BBC News stories from RSS feeds. Supports all major BBC sections and regions, with text and JSON output formats.
references/feeds.md
Complete list of BBC News RSS feed URLs organized by section and region.
BBC News Skill
A Clawdbot skill for fetching BBC News stories from various sections and regions via RSS feeds.
Features
- 📰 Multiple Sections: Top stories, UK, World, Business, Politics, Health, Education, Science, Technology, Entertainment
- 🌍 UK Regional News: England, Scotland, Wales, Northern Ireland
- 🗺️ World Regions: Africa, Asia, Australia, Europe, Latin America, Middle East, US & Canada
- 📊 Flexible Output: Text or JSON format
- ⚙️ Customizable: Limit number of stories
Installation
Via ClawdHub
clawdhub install bbc-newsManual Installation
# Clone the repo
git clone https://github.com/ddrayne/bbc-news-skill.git ~/.clawdbot/skills/bbc-news
# Install dependencies
pip3 install feedparserUsage
With Clawdbot
Ask your agent:
- "What's the latest BBC news?"
- "Show me UK technology news from BBC"
- "Get top 5 Scotland stories"
Direct Script Usage
# Top stories (default)
python3 ~/.clawdbot/skills/bbc-news/scripts/bbc_news.py
# Specific section
python3 ~/.clawdbot/skills/bbc-news/scripts/bbc_news.py technology
# Limit results
python3 ~/.clawdbot/skills/bbc-news/scripts/bbc_news.py uk --limit 5
# JSON output
python3 ~/.clawdbot/skills/bbc-news/scripts/bbc_news.py world --json
# List all sections
python3 ~/.clawdbot/skills/bbc-news/scripts/bbc_news.py --listAvailable Sections
Main Sections
top, uk, world, business, politics, health, education, science, technology, entertainment
UK Regional
england, scotland, wales, northern-ireland
World Regions
africa, asia, australia, europe, latin-america, middle-east, us-canada
Dependencies
- Python 3
- feedparser (
pip3 install feedparser)
License
MIT
BBC News RSS Feeds
BBC News provides RSS feeds for different sections and regions.
Main Feeds
| Section | Feed URL |
|---|---|
| UK | https://feeds.bbci.co.uk/news/uk/rss.xml |
| World | https://feeds.bbci.co.uk/news/world/rss.xml |
| Business | https://feeds.bbci.co.uk/news/business/rss.xml |
| Politics | https://feeds.bbci.co.uk/news/politics/rss.xml |
| Health | https://feeds.bbci.co.uk/news/health/rss.xml |
| Education | https://feeds.bbci.co.uk/news/education/rss.xml |
| Science & Environment | https://feeds.bbci.co.uk/news/science_and_environment/rss.xml |
| Technology | https://feeds.bbci.co.uk/news/technology/rss.xml |
| Entertainment & Arts | https://feeds.bbci.co.uk/news/entertainment_and_arts/rss.xml |
Regional Feeds
| Region | Feed URL |
|---|---|
| England | https://feeds.bbci.co.uk/news/england/rss.xml |
| Scotland | https://feeds.bbci.co.uk/news/scotland/rss.xml |
| Wales | https://feeds.bbci.co.uk/news/wales/rss.xml |
| Northern Ireland | https://feeds.bbci.co.uk/news/northern_ireland/rss.xml |
World Regions
| Region | Feed URL |
|---|---|
| Africa | https://feeds.bbci.co.uk/news/world/africa/rss.xml |
| Asia | https://feeds.bbci.co.uk/news/world/asia/rss.xml |
| Australia | https://feeds.bbci.co.uk/news/world/australia/rss.xml |
| Europe | https://feeds.bbci.co.uk/news/world/europe/rss.xml |
| Latin America | https://feeds.bbci.co.uk/news/world/latin_america/rss.xml |
| Middle East | https://feeds.bbci.co.uk/news/world/middle_east/rss.xml |
| US & Canada | https://feeds.bbci.co.uk/news/world/us_and_canada/rss.xml |
Top Stories
| Feed | URL |
|---|---|
| Top Stories | https://feeds.bbci.co.uk/news/rss.xml |
#!/usr/bin/env python3
"""
BBC News CLI - Fetch and display BBC News stories from RSS feeds
"""
import argparse
import sys
from datetime import datetime
try:
import feedparser
except ImportError:
print("Error: feedparser library not found. Install with: pip install feedparser", file=sys.stderr)
sys.exit(1)
# BBC News RSS feeds
FEEDS = {
"top": "https://feeds.bbci.co.uk/news/rss.xml",
"uk": "https://feeds.bbci.co.uk/news/uk/rss.xml",
"world": "https://feeds.bbci.co.uk/news/world/rss.xml",
"business": "https://feeds.bbci.co.uk/news/business/rss.xml",
"politics": "https://feeds.bbci.co.uk/news/politics/rss.xml",
"health": "https://feeds.bbci.co.uk/news/health/rss.xml",
"education": "https://feeds.bbci.co.uk/news/education/rss.xml",
"science": "https://feeds.bbci.co.uk/news/science_and_environment/rss.xml",
"technology": "https://feeds.bbci.co.uk/news/technology/rss.xml",
"entertainment": "https://feeds.bbci.co.uk/news/entertainment_and_arts/rss.xml",
"england": "https://feeds.bbci.co.uk/news/england/rss.xml",
"scotland": "https://feeds.bbci.co.uk/news/scotland/rss.xml",
"wales": "https://feeds.bbci.co.uk/news/wales/rss.xml",
"northern-ireland": "https://feeds.bbci.co.uk/news/northern_ireland/rss.xml",
"africa": "https://feeds.bbci.co.uk/news/world/africa/rss.xml",
"asia": "https://feeds.bbci.co.uk/news/world/asia/rss.xml",
"australia": "https://feeds.bbci.co.uk/news/world/australia/rss.xml",
"europe": "https://feeds.bbci.co.uk/news/world/europe/rss.xml",
"latin-america": "https://feeds.bbci.co.uk/news/world/latin_america/rss.xml",
"middle-east": "https://feeds.bbci.co.uk/news/world/middle_east/rss.xml",
"us-canada": "https://feeds.bbci.co.uk/news/world/us_and_canada/rss.xml",
}
def fetch_news(section="top", limit=10, format="text"):
"""Fetch BBC News stories from RSS feed"""
if section not in FEEDS:
print(f"Error: Unknown section '{section}'", file=sys.stderr)
print(f"Available sections: {', '.join(sorted(FEEDS.keys()))}", file=sys.stderr)
return 1
feed_url = FEEDS[section]
feed = feedparser.parse(feed_url)
if feed.bozo:
print(f"Error: Failed to parse feed from {feed_url}", file=sys.stderr)
return 1
entries = feed.entries[:limit]
if format == "json":
import json
stories = []
for entry in entries:
stories.append({
"title": entry.title,
"link": entry.link,
"description": entry.get("description", ""),
"published": entry.get("published", ""),
})
print(json.dumps(stories, indent=2))
else:
# Text format
section_title = feed.feed.get("title", f"BBC News - {section.title()}")
print(f"\n{section_title}")
print("=" * len(section_title))
print()
for i, entry in enumerate(entries, 1):
print(f"{i}. {entry.title}")
if hasattr(entry, "description") and entry.description:
# Strip HTML tags from description
import re
desc = re.sub(r'<[^>]+>', '', entry.description)
print(f" {desc}")
print(f" 🔗 {entry.link}")
if hasattr(entry, "published"):
print(f" 📅 {entry.published}")
print()
return 0
def list_sections():
"""List all available sections"""
print("\nAvailable BBC News sections:")
print("=" * 40)
print("\nMain Sections:")
main = ["top", "uk", "world", "business", "politics", "health",
"education", "science", "technology", "entertainment"]
for section in main:
if section in FEEDS:
print(f" • {section}")
print("\nUK Regional:")
regional = ["england", "scotland", "wales", "northern-ireland"]
for section in regional:
if section in FEEDS:
print(f" • {section}")
print("\nWorld Regions:")
world = ["africa", "asia", "australia", "europe",
"latin-america", "middle-east", "us-canada"]
for section in world:
if section in FEEDS:
print(f" • {section}")
print()
def main():
parser = argparse.ArgumentParser(
description="Fetch BBC News stories from RSS feeds",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
Examples:
%(prog)s # Top stories (default)
%(prog)s uk # UK news
%(prog)s world --limit 5 # Top 5 world stories
%(prog)s technology --json # Technology news in JSON format
%(prog)s --list # List all available sections
"""
)
parser.add_argument(
"section",
nargs="?",
default="top",
help="News section (default: top)"
)
parser.add_argument(
"-l", "--limit",
type=int,
default=10,
help="Number of stories to fetch (default: 10)"
)
parser.add_argument(
"-f", "--format",
choices=["text", "json"],
default="text",
help="Output format (default: text)"
)
parser.add_argument(
"--list",
action="store_true",
help="List all available sections"
)
args = parser.parse_args()
if args.list:
list_sections()
return 0
return fetch_news(args.section, args.limit, args.format)
if __name__ == "__main__":
sys.exit(main())