browsetext
A Modern, Cross-Platform Text-Focused Web Browser
🌟 Project Overview
browsetext is a novel, cross-platform web browser application built on Python and PyQt that re-envisions the text-based browsing experience for the modern web.
While traditional graphical browsers consume significant resources and often overwhelm users with visual clutter, browsetext strips away the complexity—focusing solely on delivering the core content of the web page with speed, privacy, and minimal system overhead. This makes it an ideal tool for users on low-bandwidth connections, older hardware, or those who simply prefer a distraction-free reading experience.
Motivation
The goal of this project is to create an accessible, universally compatible tool that embodies the spirit of open-source collaboration, ensuring everyone, everywhere, can access information efficiently and privately.
Key Features
Intelligent Text Extraction: Smart parsing of HTML to remove ads, sidebars, and navigation elements, presenting only the primary content in a clean, readable format (similar to "Reader View").
Modern Navigation: Supports tabbed browsing for managing multiple sessions in one window.
Keyboard-Centric Interface: Full navigation control via customizable keyboard shortcuts for speed and efficiency.
Cross-Platform GUI: Built with PyQt to ensure a native look and feel on Windows, macOS, and Linux.
Low Resource Footprint: Minimal RAM and CPU consumption, making it fast on any device.
Hyperlink Mapping: Automatically numbers all visible links on a page, allowing users to jump to a link by typing its associated number.
Search and History: Integrated search functionality and a persistent browsing history manager.
💻 Installation
Prerequisites
You must have Python 3.8+ installed on your system.
- Clone the Repository
git clone https://github.com/quantizedai/browsetext.git cd browsetext
- Setup Virtual Environment (Recommended)
python3 -m venv .venv source .venv/bin/activate # On Linux/macOS .venv\Scripts\activate # On Windows
- Install Dependencies
browsetext relies on PyQt6 for the GUI and likely requires a library like requests for fetching web content and BeautifulSoup or similar for HTML parsing.
pip install -r requirements.txt
Running the Application
Once dependencies are installed, you can launch the application:
python browsetext/main.py
Basic Commands
Command
Action
Shortcut
https://www.merriam-webster.com/dictionary/input
Enter URL and press Enter to navigate
Ctrl+L
[Tab]
Switch to the next tab
Ctrl+Tab
[Number]
Jump to the corresponding link number (e.g., 5 + Enter)
N/A
[Q]
Quit application
Ctrl+Q
[G]
Go Back
Alt+Left
[F]
Search/Find in page
Ctrl+F
🤝 Contributing
We welcome contributions from developers, designers, and accessibility experts worldwide! By contributing, you help advance the mission of making the web accessible to everyone.
Getting Started
Fork the repository on GitHub.
Clone your forked repository.
Create a new branch for your feature or fix: git checkout -b feature/awesome-new-feature.
Implement your changes (ensure code adheres to PEP 8 standards).
Test your changes thoroughly.
Commit your changes with a clear, descriptive message.
Push your branch to your Fork: git push origin feature/awesome-new-feature.
Open a Pull Request against the main branch of the original repository.
Please refer to the CONTRIBUTING.md file for more detailed guidelines, including code style, testing procedures, and the Code of Conduct.
📝 Roadmap
Future plans for browsetext include:
v1.0.0: Stable release with full CSS text styling support and basic link-following.
v1.1.0: Implementation of a simple "Bookmark" manager.
v1.2.0: Support for basic form interaction (input fields and buttons).
Future: Integration of a simple, optional JavaScript execution engine for progressive enhancement of essential web applications.
⚖️ License
This project is licensed under the MIT License - see the LICENSE file for details.
📞 Contact
If you have any questions, suggestions, or want to collaborate, feel free to reach out:
GitHub Issues: https://github.com/quantizedai/browsetext/issues (Best for bug reports and feature requests)
Project Maintainer: [https://github.com/AnisTaluqdar]
Email: [anis@quantizedai.com]