Repository navigation
Releases
v1.0.6
🎉 Open News v1.0.6
Version 1.0.6 brings story grouping, structured exports, async support, and an initial Model Context Protocol (MCP) integration.
✨ Highlights
- 📰 Grouped discovery results include a representative article, related stories, source names, and cluster metadata.
- 🤖 MCP server exposes news search and fetch, article extraction, discovery, summarization, filtering, ranking, and clustering as tools.
- 📊 Structured exports add
to_text(),to_jsonld(), andto_csv()for LLM-ready text, Schema.org NewsArticle data, and tabular workflows. - ⚡ Async support is available through
async_=Trueonfetch(),search(),get_article(),batch_summarize(), andsearch_and_summarize(). Synchronous behavior remains the default. - 🧰 Custom feed caching is supported through the new
FeedCacheprotocol. - 📦 Packaging and release tooling now includes the
src/open_newslayout and improved dependency-wheel planning and verification.
🔄 Compatibility
The former package-level async functions remain available as deprecated compatibility wrappers and emit DeprecationWarning. New code should use async_=True.
ℹ️ MCP note
MCP is an initial integration and does not expose every Python API option. Use the Python API for functionality not yet available through MCP.
Full Changelog: v1.0.5...v1.0.6
v1.0.6b2
v1.0.6b1
Open-News [1.0.6b1] — 2026-11-11
Added
- Introduced an optional FastMCP stdio server with tools for news search, fetching, extraction, discovery, summarization, filtering, ranking, and clustering.
- Added
to_text(),to_jsonld(), andto_csv()exporters, CLI support, documentation, and examples.
Changed
- Added
async_=Truesupport to the main fetch, search, article, and summarization APIs; synchronous behavior remains the default.
Known gaps
- MCP support is an early integration and is not feature-complete. More capabilities are planned; use the Python API for options not yet exposed through MCP.
Full Changelog: v1.0.6a2...v1.0.6b1
v1.0.6a2
Highlights
- Story grouping is now the default for fetch, search, site search, and discovery. Results include source names and related articles; exact normalized URL copies merge, while similar articles at distinct URLs are retained.
- Moved
FeedEngineintoopen_news.processingand exposed it through the package API, while preserving the previous import path for compatibility. - Migrated the package to the
src/layout and updated project tooling and documentation. - Improved dependency-wheel workflows and Android/Termux build support.
- Updated CLI and exports to make grouped stories and their sources easier to use.
v1.0.6a1
v1.0.5
What's new
This release finalizes the work started in v1.0.5a1, with improvements to release automation, documentation, and developer onboarding. There are no changes to the public Python API in this release.
Release and CI
- Added Python 3.14 to the CI test matrix while continuing to support Python 3.10 and newer.
- Simplified the release workflow so packaging no longer waits for a separate test job. Tests continue to run in CI.
- Set the package and project metadata to version
1.0.5.
Documentation and examples
- Refreshed the README and guides for installation, the Python API, CLI, parameters, and architecture.
- Added architecture and processing-pipeline diagrams.
- Added a Google Colab notebook demonstrating installation, fetching and searching news, ranking and clustering results, and exporting Markdown and JSON.
- Added standalone fetch, search, and export scripts for local testing and adaptation.
Upgrade
Install or upgrade from PyPI:
python -m pip install --upgrade open-news-apiSee the documentation for installation details and API references. To try the notebook, use the Open in Colab badge or open examples/colab/open_news_colab_demo.ipynb in the repository.
v1.0.5a1
Open News v1.0.5a1 — Initial Pre-release
The first pre-release of Open News v1.0.5 introduces improvements and refinements to the library's news fetching, RSS discovery, Google News search, and article extraction capabilities.
This release is intended for early testing and feedback before the stable v1.0.5 release.
What's included
- News article fetching and extraction.
- RSS feed parsing and discovery.
- Google News search integration.
- Improved reliability and error handling.
- API refinements and maintenance updates.
Note: This is an early pre-release. APIs and behavior may change before the final stable release. Feedback and bug reports are welcome.
v1.0.4
📰 Open News v1.0.4 — Stable
🎉 v1.0.4 is now stable!
This release adds clustering, topic filtering, relevance ranking, and
structured export on top of the v1.0.3 acquisition baseline. Acquisition,
extraction, and URL resolution are unchanged.
✨ Highlights
- 🧩 Story clustering — cluster_articles() groups related stories by title similarity; size reflects outlet coverage
- 🏷️ Topic filtering — filter_articles(topic=...) scans title, description, text, category, and keywords
- 📊 Relevance ranking — rank_articles() with BM25 (via bm25s), TF-IDF, or basic scoring; auto falls back transparently
- 📤 Structured export — to_markdown() and to_json(); writes to a path and returns the string, auto-detects clusters
- 🖥️ CLI — new cluster and export subcommands; --topic, --rank-query, --export-md, --export-json on existing commands
- 📺 TUI — arrow-key navigation; menus 11 (Cluster) and 12 (Export); settings for topic, rank method, cluster threshold
- 📦 New nlp extra — sumy + bm25s for optional NLP ranking
- 🧪 Expanded test suite — cluster, rank, export, and integration tests
🐛 Fixed
- TUI no longer prompts for rank query on every fetch/search Google News "any" mode uses an explicit OR; end_date is inclusive Bing News day/week qft intervals corrected pyproject.toml accepted by uv / pip
⚠️ Known issues
- location= is a query hint, not a filter — use whitelist for region Liveblog / aggregator / quote-page dates are approximate Extracted description is passed through verbatim
🔄 From v1.0.3 → v1.0.4
- v1.0.3 froze the acquisition architecture. v1.0.4 makes the results of that acquisition more useful out of the box: group related stories, filter by topic rather than keyword alone, rank by relevance with an optional BM25 backend, and export clean Markdown or JSON.
📦 Install
pip install open-news-api==1.0.4
# or with the optional NLP ranking backend:
pip install "open-news-api[nlp]"