Release v2026.1.1
[2026.1.1] - 2026-01-01
📝 Changes since v2025.12.25
🚮 Removed
- remove: Completely removed
google-generativeaipackage dependency from pyproject.toml - package was not actually used in the codebase (geminiapi.py uses curl_cffi directly), removing it fixes Python 3.14 compatibility issues with pydantic-core - remove: Completely removed
openaipackage dependency from pyproject.toml - project now usescurl_cffiexclusively for HTTP requests, reducing dependencies and improving consistency - remove: Completely removed
orjsondependency from codebase (including imports,HAS_ORJSONflag, and pyproject.toml entry) for better compatibility and simpler dependencies - remove: Removed
webscout/Provider/VercelAI.pyprovider file and updated related imports and documentation - remove: Completely removed
nodriverpackage dependency from pyproject.toml - nodriver was not actively used in the codebase, only listed as a dependency - remove: Replaced aiofiles usage with Python's built-in asyncio.to_thread for async file operations in TTS streaming, removing aiofiles dependency from pyproject.toml
- remove: Replaced cloudscraper usage with curl_cffi Session in LLMChat and LLMChatCo providers, removing cloudscraper dependency from pyproject.toml
🔧 Improved
- refactor: Made
lxmldependency optional in pyproject.toml- Moved
lxmlto optionalparserdependency group in pyproject.toml - Updated
webscout/search/base.pyto support lxml for HTML parsing - Updated
webscout/search/engines/duckduckgo/base.pyto use lxml for HTML parsing
- Moved
- refactor: Migrated from
requeststocurl_cffifor HTTP requests in multiple files to improve browser fingerprinting and anti-detection capabilities - refactor: Migrated
webscout/Provider/AISEARCH/iask_search.pyfromaiohttptocurl_cffifor HTTP requests, while retainingaiohttpfor WebSocket connections to improve browser fingerprinting and anti-detection capabilities
🐛 Fixed
- fix: Fixed ModuleNotFoundError for huggingface_hub in webscout versions > 2025.12.19 by implementing lazy imports in gguf.py
- Replaced unconditional
from huggingface_hub import HfApiwith lazy import pattern - Added
_ensure_huggingface_hub()function that imports HfApi only when GGUF features are used - Updated all HfApi usage in ModelConverter class to use lazy imports
- This fixes import issues for users who only need chat/LLM provider features without GGUF conversion
- Provides clear error message when GGUF features are used without huggingface_hub installed
- Replaced unconditional
✨ Added
-
feat: Added new models to HadadXYZ providers:
"anthropic/claude-opus-4-5-20251101","anthropic/claude-sonnet-4-5-20250929","anthropic/claude-haiku-4-5-20251001/legacy", and"google/gemini-3-pro-preview"to bothwebscout/Provider/HadadXYZ.pyandwebscout/Provider/OPENAI/hadadxyz.py. -
feat: webscout/Provider/QwenLM.py - Added new models to this provider
-
feat: Added
gpt-5.2model to Toolbaz providers in bothwebscout/Provider/toolbaz.pyandwebscout/Provider/OPENAI/toolbaz.py -
refactor: Migrated
webscout/Provider/OPENAI/toolbaz.pyfromcloudscrapertocurl_cffifor consistent HTTP client implementation across providers -
refactor: Migrated
webscout/Provider/OPENAI/sonus.pyfromrequeststocurl_cffifor improved browser emulation and consistency; updated form data handling from multipartfilesto standarddataparameter -
feat: Added new OpenRouter provider in both
webscout/Provider/OpenRouter.pyandwebscout/Provider/OPENAI/openrouter.pywith dynamic model fetching and LitAgent browser fingerprinting
📦 Installation
pip install --upgrade webscout==2026.1.1