SelfLayer 🔍🧠
AI-Powered Terminal Web Browser for Content Analysis and Research
SelfLayer 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:
/findcommand searches and analyzes multiple results automatically - Step-by-step Analysis: Traditional
/search+/openworkflow 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 SelfLayer 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 selflayer
From Source
git clone https://github.com/antonvice/selflayer.git
cd selflayer
pip install -e .
🔧 Setup
-
Get a Google Gemini API Key
- Visit Google AI Studio
- Create a free API key
- Copy the key for the next step
-
Configure SelfLayer
selflayer # On first run, set your API key: /key YOUR_API_KEY_HERE
Your API key will be securely saved to ~/.selflayer/api_key.txt for future sessions.
📖 Usage
SelfLayer provides two interfaces:
selflayer: Interactive Terminal User Interface (TUI) with commands like/find,/search,/keysl: Command Line Interface (CLI) for direct command execution with arguments
Launch SelfLayer
Interactive TUI (Recommended)
selflayer
Command Line Interface
# For direct command execution
sl search "your query" --max-results 3
sl 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 SelfLayer |
🎯 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
SelfLayer 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
selflayer/
├── __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:
-
Fork the Repository
git clone https://github.com/antonvice/selflayer.git cd selflayer
-
Set Up Development Environment
pip install -e ".[dev]"
-
Run Tests
pytest mypy selflayer/ ruff check selflayer/
-
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 📧 anton@selflayer.com 🐙 GitHub 🔗 LinkedIn
🙏 Acknowledgments
- Pydantic AI for structured AI outputs
- Rich for beautiful terminal formatting
- DuckDuckGo for privacy-focused search
- Google Gemini for powerful AI analysis
📊 Changelog
v0.1.0 (2024-09-14)
- 🎉 Initial release
- ✨ Unified
/findcommand 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.
SelfLayer - Because the web deserves intelligent exploration.
Metadata
Release files for selflayer 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| selflayer-0.2.1.tar.gz | 38.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| selflayer-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 73.7 kB
Release files / selflayer-0.2.1.tar.gz
| Download URL | selflayer-0.2.1.tar.gz |
|---|---|
| Size | 38.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c896ee4d12343c52feed5ee1117de65f5ab7653dec7b33c0117bc082cf0c56bb
|
|
BLAKE2b-256 checksum How to use checksums |
4900e72a0ef436a009a3ab4062734a2a9b18b8277ece14b2164e38b7203aef11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.5
|
Release files / selflayer-0.2.1-py3-none-any.whl
| Download URL | selflayer-0.2.1-py3-none-any.whl |
|---|---|
| Size | 34.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
752e34d6df6a9b043f4b21f2cd391e2972f9bfc195122059dafc5d907d31fca4
|
|
BLAKE2b-256 checksum How to use checksums |
9930c1c8e1453f5310a6cf389683612ab423e1adc5c673bf8f03d039eeac52a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.5
|