Skip to main content

PaperProbe

Automatically analyze and generate usage examples for scientific code from research papers

Python Version License Code style: ruff

PaperProbe TUI Screenshot

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

  1. Enter a source:

    • arXiv URL: https://arxiv.org/abs/2301.12345
    • Local PDF: /path/to/paper.pdf
    • GitHub URL: https://github.com/username/repo
  2. Scan for repositories: PaperProbe extracts GitHub links from papers

  3. Select a repository: Choose from the discovered repos

  4. Choose analysis mode:

    • Basic: Quick repository overview
    • Deep: Comprehensive analysis with usage examples
  5. 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


Made with ❤️ for the research community

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)

Source distribution for paperprobe 0.2.0
File Size Uploaded
paperprobe-0.2.0.tar.gz 136.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for paperprobe 0.2.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page