PaperProbe
Automatically analyze and generate usage examples for scientific code from research papers
Beautiful terminal user interface for analyzing scientific repositories
What is PaperProbe?
PaperProbe bridges the gap between scientific papers and their associated code repositories. It automatically:
- Scans research papers (arXiv URLs or local PDFs) for GitHub repository links
- Analyzes repositories to understand structure, dependencies, and usage patterns
- Generates usage examples using AI-powered code analysis
- Provides insights on repository statistics, code quality, and documentation
Perfect for researchers, developers, and students who want to quickly understand and utilize code from scientific publications.
Features
Interactive TUI
- Beautiful terminal interface built with Textual
- Real-time progress updates and visual feedback
- Keyboard shortcuts for efficient navigation
Multi-Source Support
- arXiv papers: Direct URL scanning
- Local PDFs: Parse papers from your filesystem
- GitHub URLs: Direct repository analysis
AI-Powered Analysis
- Intelligent code structure analysis
- Automated usage example generation
- Context-aware documentation extraction
Repository Insights
- GitHub statistics (stars, forks, contributors)
- Dependency analysis
- Code quality metrics
- File structure visualization
Installation
Using pipx (Recommended)
pipx install paperprobe
Using pip
pip install paperprobe
From Source
git clone https://github.com/Brook-B-Nigatu/PaperProbe.git
cd PaperProbe
pip install -e .
[!TIP] Package version may need to be specified. pipx install paperprobe==0.2.0
Prerequisites
- Python: 3.12 or higher (some dependencies don't work on Python v3.13)
- API Keys: AI API key for AI-powered analysis
- GitHub Token (optional): For enhanced GitHub API access
Configuration
Environment Variables
PaperProbe requires API keys to function.
Environment Variables (Recommended)
Add to your shell configuration file (~/.zshrc, ~/.bashrc, etc.):
export CONSTRUCTOR_KM_ID=""
export CONSTRUCTOR_API_KEY=""
export CONSTRUCTOR_API_URL=""
export GITHUB_TOKEN="" #optional
Then reload your shell:
source ~/.zshrc
Usage
Launch the TUI
paperprobe
Basic Workflow
-
Enter a source:
- arXiv URL:
https://arxiv.org/abs/2301.12345 - Local PDF:
/path/to/paper.pdf - GitHub URL:
https://github.com/username/repo
- arXiv URL:
-
Scan for repositories: PaperProbe extracts GitHub links from papers
-
Select a repository: Choose from the discovered repos
-
Choose analysis mode:
- Basic: Quick repository overview
- Deep: Comprehensive analysis with usage examples
-
View results: Interactive markdown display with insights
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+S |
Use sample URL |
Ctrl+Q |
Quit application |
Enter |
Submit input / Select item |
↑/↓ |
Navigate lists |
Sample Usage
Try the built-in sample by pressing Ctrl+S on the intro screen, or paste this URL:
https://github.com/Brook-B-Nigatu/PaperProbe
Project Structure
PaperProbe/
├── src/
│ ├── core/ # Core analysis logic
│ │ ├── llm_service.py # AI service integration
│ │ └── task_manager.py # Async task orchestration
│ ├── github_repo/ # GitHub repository handling
│ ├── preprocessing_utilities/
│ │ └── pdf_parser.py # PDF text extraction
│ ├── tool_providers/ # Analysis tool providers
│ └── ui/ # Terminal UI components
│ ├── app.py # Main TUI application
│ ├── controller.py # Business logic
│ └── style.tcss # TUI styling
├── pyproject.toml # Project configuration
└── README.md
Development
Setup Development Environment
# Clone the repository
git clone https://github.com/Brook-B-Nigatu/PaperProbe.git
cd PaperProbe
# Install in editable mode
pip install -e .
# Or use uv for faster installs
uv pip install -e .
Running Tests
# Run linter
ruff check .
# Format code
ruff format .
License
This project is licensed under the MIT License - see the LICENSE.txt file for details.
Acknowledgments
- Built with Textual for the beautiful TUI
- Powered by LangChain and OpenAI for intelligent analysis
- PDF parsing with pdfminer.six
Metadata
Release files for paperprobe 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| paperprobe-0.2.0.tar.gz | 136.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| paperprobe-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 166.5 kB
Release files / paperprobe-0.2.0.tar.gz
| Download URL | paperprobe-0.2.0.tar.gz |
|---|---|
| Size | 136.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
01922a5e370be3031bdf08f96ae3e2a9aac272cda9c020c625b95711410be0fa
|
|
BLAKE2b-256 checksum How to use checksums |
22cdef12b53d348b9985e37a31630d9b622e6d241a8bc9b9227c85731684bee5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.28.1
|
Release files / paperprobe-0.2.0-py3-none-any.whl
| Download URL | paperprobe-0.2.0-py3-none-any.whl |
|---|---|
| Size | 30.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
78a427cfca151cd9dd975c2341b4a43c37d22358f1bbb61c28865cf9c5296a7a
|
|
BLAKE2b-256 checksum How to use checksums |
dcca27062e0e3c43245c395dcac8d9d3d31ff35cd8531c348c5d599886fb58b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.28.1
|