Skip to content

antonvice/SLBrowser

Repository files navigation

SLBrowser πŸ”πŸ§ 

AI-Powered Terminal Web Browser for Content Analysis and Research

PyPI version Python 3.11+ License: MIT

SLBrowser is a modern, intelligent terminal-based web browser that combines web scraping, AI-powered content analysis, and beautiful terminal formatting to provide an efficient research and content exploration experience directly from your command line.

✨ Features

πŸ” Smart Web Search & Analysis

  • Unified Search & Analysis: /find command searches and analyzes multiple results automatically
  • Step-by-step Analysis: Traditional /search + /open workflow for detailed control
  • DuckDuckGo Integration: Privacy-focused web search
  • Configurable Depth: Analyze 1-10 search results at once

🧠 AI-Powered Content Analysis

  • Google Gemini Integration: State-of-the-art AI analysis using Pydantic AI
  • Structured Output: WebCards with summaries, key facts, dates, and links
  • Confidence Scoring: AI provides confidence ratings for each analysis
  • Streaming Support: Real-time analysis progress updates

🎨 Beautiful Terminal Interface

  • Rich Formatting: Colorful, responsive terminal UI using Rich library
  • ASCII Art Branding: Eye-catching SLBrowser logo
  • Progress Indicators: Visual feedback for all operations
  • Error Handling: Graceful error display and recovery

⚑ Performance & Usability

  • Async Operations: Non-blocking web requests and AI processing
  • Smart Caching: Search result and analysis caching
  • Command Aliases: Short commands (/f, /s, /k, etc.) for power users
  • Persistent Config: API keys saved locally for seamless usage

πŸš€ Installation

From PyPI (Recommended)

pip install slbrowser

From Source

git clone https://github.com/antonvice/slbrowser.git
cd slbrowser
pip install -e .

πŸ”§ Setup

  1. Get a Google Gemini API Key

  2. Configure SLBrowser

    slbrowser
    # On first run, set your API key:
    /key YOUR_API_KEY_HERE

Your API key will be securely saved to ~/.slbrowser/api_key.txt for future sessions.

πŸ“– Usage

SLBrowser provides two interfaces:

  • slbrowser: Interactive Terminal User Interface (TUI) with commands like /find, /search, /key
  • slb: Command Line Interface (CLI) for direct command execution with arguments

Launch SLBrowser

Interactive TUI (Recommended)

slbrowser

Command Line Interface

# For direct command execution
slb search "your query" --max-results 3
slb analyze https://example.com

Basic Commands

πŸ” Find & Analyze (Recommended)

# Search and analyze top 5 results automatically
/find python machine learning tutorials

# Analyze specific number of results (1-10)
/find quantum computing 3

# Short alias
/f artificial intelligence trends 2024

πŸ”Ž Traditional Search

# Search only (no analysis)
/search web scraping python
/s data science tools

# Then analyze specific results
/open 1    # Analyze first result
/o 3       # Analyze third result

🌐 Direct URL Analysis

# Analyze any webpage directly
/url https://docs.python.org/3/tutorial/
/u https://github.com/trending

βš™οΈ Configuration

# Set API key
/key YOUR_NEW_API_KEY
/k YOUR_NEW_API_KEY

# Clear API key
/key clear

# Check status
/status

# Clear screen
/clear
/c

# Get help
/help
/h

# Quit
/quit
/q

Command Aliases

Full Command Alias Description
/find /f Search and analyze multiple results
/search /s Search only (no analysis)
/open /o Analyze search result by number
/url /u Analyze URL directly
/key /k Set/clear API key
/clear /c Clear screen
/help /h Show help
/quit /q Exit SLBrowser

🎯 Use Cases

πŸ“š Research & Learning

  • Quickly analyze multiple sources on a topic
  • Get structured summaries of complex articles
  • Extract key facts and dates from content
  • Discover related links and resources

πŸ’Ό Professional Analysis

  • Market research and trend analysis
  • Competitive intelligence gathering
  • Technical documentation review
  • News and industry monitoring

πŸ”¬ Academic Work

  • Literature review and source analysis
  • Fact-checking and verification
  • Research paper preparation
  • Educational content exploration

πŸ—οΈ Architecture

SLBrowser is built with modern Python practices:

  • Pydantic AI: Structured AI outputs with Google Gemini
  • Rich: Beautiful terminal formatting and progress indicators
  • httpx: Modern async HTTP client for web requests
  • BeautifulSoup: HTML parsing and content extraction
  • ddgs: Privacy-focused DuckDuckGo search

Project Structure

slbrowser/
β”œβ”€β”€ __init__.py          # Package initialization and exceptions
β”œβ”€β”€ __main__.py          # Entry point and logging setup
β”œβ”€β”€ ai.py               # Pydantic AI integration with Gemini
β”œβ”€β”€ config.py           # Configuration management
β”œβ”€β”€ models.py           # Pydantic data models
β”œβ”€β”€ search.py           # DuckDuckGo search functionality
β”œβ”€β”€ tui.py             # Rich-powered terminal interface
└── web.py             # Web scraping and content extraction

🀝 Contributing

We welcome contributions! Here's how to get started:

  1. Fork the Repository

    git clone https://github.com/antonvice/slbrowser.git
    cd slbrowser
  2. Set Up Development Environment

    pip install -e ".[dev]"
  3. Run Tests

    pytest
    mypy slbrowser/
    ruff check slbrowser/
  4. Submit Pull Request

Development Tools

  • Testing: pytest, pytest-asyncio, pytest-cov
  • Type Checking: mypy
  • Linting: ruff
  • Formatting: ruff format

πŸ“„ License

MIT License - see LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Anton Vice - CTO, SelfLayer πŸ“§ [email protected] πŸ™ GitHub πŸ”— LinkedIn

πŸ™ Acknowledgments

πŸ“Š Changelog

v0.1.0 (2024-09-14)

  • πŸŽ‰ Initial release
  • ✨ Unified /find command for search + analysis
  • 🧠 Google Gemini AI integration
  • 🎨 Rich terminal interface
  • ⚑ Async operations and caching
  • πŸ”§ Command aliases and persistent config

Made with ❀️ for researchers, developers, and curious minds everywhere.

SLBrowser - Because the web deserves intelligent exploration.

About

SLBrowser - AI-powered terminal web browser for intelligent content analysis and research

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages