🐍 Python Hover β The Missing Manual for Your Code
Never Leave VS Code for Documentation Again
Hover-based, context-aware documentation for 300+ Python constructs, 19+ pre-configured libraries, and literally ANY library with Sphinx docs. Offline. Cached. Blazingly fast.
Stop alt-tabbing to Stack Overflow. Stop searching ReadTheDocs. Stop losing focus. Hover and learnβinstantly.

οΏ½ Install Now β’ β Rate & Review β’ 🐛 Report Issue β’ 🎯 Why Python Hover? β’ 💬 Discuss
🎯 The Problem
Every Python developer faces this:
import pandas as pd
df = pd.read_csv('data.csv')
result = df.groupby('category').agg(???) # What parameters does agg() take?
Your choices:
- β Stop coding, open browser, search "pandas agg", lose focus
- β Try to remember from memory (hint: you won't)
- β Spend 30 seconds guessing with autocomplete
- β
Hover over
agg() in Python Hover β documentation appears instantly
Context matters. You're not hovering over a generic functionβyou're hovering over a specific method on a Pandas DataFrame. Python Hover understands that and shows you exactly what you need.
β¨ The Solution: Python Hover
A documentation engine that works like your brain. Intelligent, contextual, offline-first.
β‘ Save Hours Every Week
If this extension boosts your productivity, consider supporting its development!

Every contribution helps maintain this free tool and add powerful new features! 🚀
💛 Love Python Hover?
β Leave a 5-star review β Takes 30 seconds, helps thousands of developers discover this tool!

β¨ What Makes Python Hover Special
🎯 Universal Python Support
- 300+ Built-in Constructs β Complete coverage of Python's standard library
- 19+ Pre-Configured Libraries β NumPy, Pandas, FastAPI, Django, PyTorch, Flask, Matplotlib, and more
- 🚀 Auto-Discovery for ANY Library β Works with scikit-learn, TensorFlow, requests, beautifulsoup4, and thousands more!
- Smart Context Detection β Automatically determines if you're working with strings, lists, dicts, DataFrames, or custom objects
- Dynamic Type Resolution β Intelligently identifies which library a class belongs to without hardcoding
- Practical, Copyable Examples β Real code you can use immediately
- Rich Sphinx Documentation β Beautiful formatting with parameters, return types, and examples
- Offline Support β Aggressive caching for blazing-fast offline access
- Zero Configuration β Works instantly after installation
🎨 Beautiful & Customizable
- Clean, Modern Interface β Easy to read, aesthetically pleasing
- Fully Themeable β Customize colors, fonts, and styles to match your setup
- Version-Aware β Shows the exact documentation for your installed library versions
οΏ½ Quick Start
Installation
Install from Marketplace
Open VS Code β Extensions (Ctrl+Shift+X) β Search "Python Hover" β Install
Or click here to install
Open any Python file
Hover over any code β That's it! 🎉
No configuration, no setup, no hassle. It just works.
📚 Coverage
Built-in Python
300+ Language Constructs & Standard Library
- Keywords:
def, class, if, for, while, try, with, lambda, yield, async, await, and all others
- Built-in Functions:
print, len, range, zip, map, filter, sorted, enumerate, and 60+ more
- String Methods:
.split(), .join(), .format(), .replace(), .strip(), and 40+ more
- List Methods:
.append(), .extend(), .sort(), .pop(), .remove(), and all others
- Dict Methods:
.get(), .keys(), .values(), .items(), .pop(), and more
- Set Operations:
.add(), .union(), .intersection(), .difference(), and all set methods
- File Operations:
open(), .read(), .write(), .readline(), context managers
- Type Hints:
List, Dict, Optional, Union, Tuple, Callable, TypeVar, and all typing constructs
- Special Methods:
__init__, __str__, __repr__, __len__, __getitem__, and 50+ dunder methods
- Standard Library Modules:
os, sys, datetime, json, re, math, random, and more
19+ Popular Third-Party Libraries
Data Science & ML
- NumPy β Array operations, linear algebra, mathematical functions
- Pandas β DataFrames, Series, data manipulation and analysis
- Matplotlib β Plotting and visualization
- SciPy β Scientific computing and optimization
- scikit-learn β Machine learning algorithms (auto-discovered)
- PyTorch β Deep learning framework
- TensorFlow β Machine learning platform (auto-discovered)
- Seaborn β Statistical data visualization (auto-discovered)
Web Development
- Django β Full-featured web framework
- Flask β Lightweight web framework
- FastAPI β Modern, fast API framework
- Requests β HTTP library for humans
- aiohttp β Async HTTP client/server (auto-discovered)
Utilities
- Click β Command-line interface creation
- Pytest β Testing framework
- SQLAlchemy β SQL toolkit and ORM
- Beautiful Soup β Web scraping library (auto-discovered)
- Pillow β Image processing library
- Pydantic β Data validation using type hints
+ Thousands more through auto-discovery!
🔍 Auto-Discovery Magic
Python Hover automatically discovers documentation for ANY library with Sphinx/ReadTheDocs documentation:
import plotly # Auto-discovered!
import dask # Auto-discovered!
import spacy # Auto-discovered!
import httpx # Auto-discovered!
# Hover over any of their methods β instant documentation!
How it works:
- Detects your imports automatically
- Checks PyPI for documentation URLs
- Fetches Sphinx inventory files
- Caches everything for offline use
- Shows rich documentation on hover
No configuration needed β it's completely automatic! 🪄
🎯 Key Features
🧠 Smart Context Detection
Python Hover understands your code context:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3]})
df.head() # Shows DataFrame.head() documentation, NOT generic object
result = "hello world"
result.upper() # Shows str.upper() documentation
my_list = [1, 2, 3]
my_list.append(4) # Shows list.append() documentation
Before v0.5.1: Might show "object.head()"
Now: Correctly shows "DataFrame.head()" with full pandas documentation! β¨
🎨 Rich Documentation Display
- 📦 Summary boxes with clear descriptions
- 📝 Parameter details with type annotations
- β©οΈ Return types clearly highlighted
- β οΈ Exceptions that might be raised
- 📊 Examples with expected outputs
- 🏷οΈ Version info (added/changed/deprecated)
- 🔗 Links to full documentation
- < 10ms for cached lookups
- < 100ms for first-time fetches
- Offline-first architecture
- Intelligent caching (24 hours for libraries)
- Early exit optimization in dynamic resolution
🛠οΈ Developer Experience
- Zero configuration β works immediately
- No API keys required
- No external dependencies β everything bundled
- Works offline after initial cache
- Lightweight β minimal impact on VS Code performance
- Highly customizable β extensive settings for power users
🎨 Customization
Settings
Access settings via: Preferences > Settings > Extensions > Python Hover
{
// Display settings
"python-hover.fontSize": 14,
"python-hover.fontFamily": "Consolas, 'Courier New', monospace",
"python-hover.maxSnippetLines": 20,
// Feature toggles
"python-hover.enableExamples": true,
"python-hover.enableVersionInfo": true,
"python-hover.enableLinks": true,
// Library configuration
"python-hover.customLibraries": {
"mylib": {
"inventoryUrl": "https://mylib.readthedocs.io/en/latest/objects.inv",
"docBaseUrl": "https://mylib.readthedocs.io/en/latest"
}
}
}
Custom Libraries
Add your own libraries with Sphinx documentation:
- Find your library's
objects.inv URL (usually on ReadTheDocs)
- Add to settings:
{
"python-hover.customLibraries": {
"your-library": {
"inventoryUrl": "https://your-library.readthedocs.io/en/stable/objects.inv",
"docBaseUrl": "https://your-library.readthedocs.io/en/stable"
}
}
}
- Done! Hover over your library's code to see documentation.
📖 Full custom library guide
💼 Perfect For
🆕 Python Beginners
Learn by example with comprehensive, easy-to-understand documentation right where you code.
👨β💻 Professional Developers
Save time by eliminating constant tab-switching to documentation websites.
👨β🏫 Educators & Students
Teach and learn Python with instant access to documentation and examples.
🔬 Data Scientists
Quick reference for NumPy, Pandas, scikit-learn, and other data science libraries.
🌐 Web Developers
Instant docs for Django, Flask, FastAPI, and all web development tools.
🤖 ML Engineers
Rapid access to PyTorch, TensorFlow, and machine learning library documentation.
🔥 What's New in v0.5.1
οΏ½ Dynamic Library Resolution
- Works with ANY library automatically β no more hardcoded mappings!
- Intelligently determines which library a class belongs to
- Scales infinitely with your project's dependencies
- Handles pandas, numpy, sklearn, tensorflow, and custom libraries seamlessly
οΏ½οΈ Robust Error Handling
- Gracefully handles libraries with missing or invalid documentation
- No more crashes from malformed inventory files
- Silently skips problematic libraries and continues working
- Better logging for troubleshooting
οΏ½ Enhanced Context Detection
- Fixed "object.method" issue β now shows correct qualified names
- Better type detection from code assignments
- Improved handling of inline comments
- More accurate method-to-type resolution
β¨ Visual Improvements
- Enhanced Sphinx documentation parsing
- Better formatting for parameters and return types
- Version metadata display (added/changed/deprecated)
- Cleaner, more readable hover content
See full changelog
🤝 Contributing
Contributions are welcome! Whether it's bug reports, feature requests, or code contributions.
📝 Troubleshooting
Hover not showing?
- Ensure Python extension is installed β Python Hover requires the official Python extension
- Check file is saved β Hover works best on saved files
- Verify Python environment β Make sure a Python interpreter is selected
Library documentation not appearing?
- Check library is imported β Python Hover detects imported libraries
- Try reloading VS Code β
Ctrl+Shift+P β "Developer: Reload Window"
- Check Output panel β View β Output β Select "Python Hover" for debug logs
- Ensure library has Sphinx docs β Most popular libraries do
Custom library not working?
- Verify inventory URL β Try opening the URL in a browser
- Check JSON syntax β Ensure settings JSON is valid
- See custom library guide β Detailed instructions here
Still having issues? Open an issue with:
- VS Code version
- Python version
- Extension version
- Output panel logs
📊 Stats
- 🐍 300+ Python constructs covered
- 📚 19+ pre-configured libraries
- 🔍 1000s of libraries via auto-discovery
- β‘ < 10ms cached lookup time
- 📦 1.07 MB bundle size
- β Loved by thousands of developers
οΏ½ License
MIT License - see LICENSE file for details.
🌟 Show Your Support
If Python Hover saves you time and makes you more productive:
- β Star the repository on GitHub
- β Rate it 5-stars on the marketplace
- β Buy me a coffee to support development
- οΏ½ Share it with your team and the Python community!
Every bit of support helps keep this extension free and actively maintained! β€οΈ
🧪 Testing
Run fast unit tests (no VS Code needed):
npm run test:unit
Watch mode for rapid iteration:
npm run test:unit:watch
Full integration tests (spins up VS Code test host):
npm test
Notes:
- Unit tests stub the VS Code API and run in Node for speed.
- Integration tests validate activation, hover performance, and inventory resolution end-to-end.
Snapshot hover tests (real content)
Want to see the exact Markdown users see in the hover? Run the snapshot suite to generate reviewable artifacts:
npm run test:snapshots
What this does:
- Spins up the full VS Code test host and forces the real hover pipeline (no test shortcuts)
- Captures the actual Markdown from dozens of representative hovers
- Writes files to
artifacts/hover-snapshots/*.md for hands-on review
Tips:
- Open a few files like
artifacts/hover-snapshots/builtin-range.md or artifacts/hover-snapshots/keyword-for.md to inspect content
- Add new cases in
src/test/suite/hoverSnapshots.test.ts to expand coverage
- Snapshot mode skips strict perf checks to keep runs stable and focused on content