Skip to content

A powerful Unix-inspired command-line tool for searching scientific literature, built for terminal enthusiasts who prefer speed, automation, and minimal interfaces.

License

Notifications You must be signed in to change notification settings

pryndor/Lixplore_cli

Repository files navigation

Lixplore-cli

Academic Literature Search & Export CLI Tool

Python Version License: MIT Documentation GitHub PyPI version Downloads Issues Buy Me A Coffee

Search across multiple academic databases (PubMed, arXiv, Crossref, DOAJ, EuropePMC) with Boolean operators, smart selection, and export to 8 formats including EndNote, Excel, and BibTeX.

πŸ“š Complete Documentation | πŸ› Report Issues


✨ Features

Core Features

  • πŸ” Multi-Source Search - Search 5 academic databases simultaneously (PubMed, arXiv, Crossref, DOAJ, EuropePMC)
  • πŸ”€ Boolean Operators - Advanced queries with AND, OR, NOT, parentheses
  • πŸ“Š Smart Sorting - Sort by relevance, newest, oldest, journal, or author
  • πŸ”’ Smart Selection - Export odd/even, ranges, first/last N articles
  • πŸ’Ύ 8 Export Formats - CSV, Excel, JSON, BibTeX, RIS, EndNote, XML
  • πŸ“– Review Mode - View articles in separate terminal windows
  • 🎯 Deduplication - Advanced duplicate removal with multiple strategies
  • πŸ“ Organized Exports - Auto-organized folders by format type

Advanced Features

  • πŸ“₯ PDF Downloads - Automatic PDF downloads from PMC, arXiv, Unpaywall, and SciHub (optional)
  • πŸ”— PDF Link Display - Show clickable PDF links for open access articles in terminal (NEW!)
  • πŸ“š Reference Manager Integration - Direct Zotero API integration and Mendeley RIS export
  • πŸ“Š Statistics Dashboard - Comprehensive analytics with visualizations (publication trends, top journals, top authors)
  • 🎨 Interactive TUI Mode - Browse, select, and export with an interactive terminal UI
  • πŸ“ Citation Export - Format citations in APA, MLA, Chicago, IEEE styles
  • πŸ”§ Custom API Integration - Plugin architecture for any REST API (Springer, BASE, etc.)
  • πŸ’‘ Metadata Enrichment - Auto-enrich results from multiple APIs (Crossref, PubMed, arXiv)
  • πŸ’Ύ Smart Caching - 7-day cache with automatic expiration
  • πŸ“„ Pagination - Browse large result sets with automatic pagination
  • 🎯 Export Profiles - Save and reuse export configurations
  • πŸ“‹ Export Templates - Predefined templates (Nature, Science, IEEE)
  • πŸ—œοΈ Export Compression - ZIP compression for batch exports

Documentation

  • πŸ“š Complete Documentation Site - Comprehensive online documentation
  • πŸ“– 32+ Documentation Pages - Getting started, user guides, command reference, examples
  • πŸ” All 95 Flags Documented - Detailed examples for every command-line flag
  • πŸŽ“ Step-by-Step Tutorials - From installation to advanced workflows
  • πŸ’‘ Quick Examples - Built-in examples with --examples flag
  • πŸ“„ Man Page - Traditional Unix man page included

πŸš€ Interactive Interface

  • 🎨 Enhanced TUI Mode - Beautiful text-based interface with search, browse, annotate, and export
  • πŸ“ Annotation System - Rate, tag, comment, and organize your research library
  • πŸ“Š Statistics Dashboard - Visualize publication trends and analytics
  • πŸ’Ύ Smart Export - Export to 8 formats with intelligent deduplication

🎯 Two Ways to Use Lixplore

πŸ“’ IMPORTANT: TUI mode is currently under active development. While functional, some advanced features are still being refined. All 95 command-line flags are fully compatible and production-ready in CLI mode. Future updates will focus on bringing TUI mode to feature parity with CLI mode.

1️⃣ Interactive TUI Mode - Visual Interface ⚠️ (Under Development)

Perfect for exploration, learning, and complex workflows

# Launch interactive TUI
lixplore --tui

# Or simply run without arguments
lixplore

# Navigate with arrow keys, search visually, annotate results, view stats

Features (Currently Available):

  • βœ… Visual search interface with source selection
  • βœ… Browse and select articles interactively
  • βœ… Annotation management with ratings and tags
  • βœ… Statistics dashboard with visualizations
  • βœ… Export functionality with format selection
  • βœ… Beautiful terminal UI with keyboard shortcuts
  • ⚠️ Note: Some advanced CLI features are being integrated into TUI mode

2️⃣ Command Line Mode - Direct Commands βœ… (Fully Production-Ready)

Perfect for scripting, automation, and quick searches

All 95 flags fully functional and tested!

# Quick search and export
lixplore -P -q "machine learning" -m 20 -X xlsx

# Advanced workflow with deduplication
lixplore -A -q "COVID-19" -m 50 -D --sort newest -X csv

# Citation export with enrichment
lixplore -P -q "CRISPR" -m 30 --enrich crossref -C apa

# Batch export to multiple formats
lixplore -x -q "quantum computing" -m 25 -X csv,bibtex,ris --zip

All Features Available:

  • βœ… 95 command-line flags fully compatible
  • βœ… Multi-source search (PubMed, arXiv, Crossref, DOAJ, EuropePMC)
  • βœ… Boolean operators and advanced queries
  • βœ… 8 export formats (CSV, Excel, JSON, BibTeX, RIS, EndNote, XML)
  • βœ… Citation formatting (APA, MLA, Chicago, IEEE)
  • βœ… Metadata enrichment and PDF downloads
  • βœ… Deduplication with multiple strategies
  • βœ… Export profiles and templates
  • βœ… Complete annotation system

Note: Legacy shell (--shell) and wizard (--wizard) modes are still available but deprecated in favor of the enhanced TUI mode.


πŸ†• What's New in Version 2.0

Lixplore has been massively upgraded with powerful new features:

πŸ“₯ PDF Download & Link Display

Download PDFs automatically with smart fallback chain:

  • PubMed Central (open access)
  • arXiv (preprints)
  • DOI Resolution via Unpaywall
  • SciHub fallback (optional, user-configured)
lixplore -P -q "open access" -m 10 --download-pdf

Show PDF Links directly in search results (NEW!):

  • Display clickable PDF links for open access articles
  • Works in modern terminals (iTerm2, GNOME Terminal, Windows Terminal)
  • No download required - click to open in browser
lixplore -x -q "machine learning" -m 10 --show-pdf-links

πŸ“š Reference Manager Integration

Direct integration with your favorite reference managers:

  • Zotero: API integration with collection support
  • Mendeley: RIS export for easy import

Setup Zotero (one-time):

  1. Get API key: https://www.zotero.org/settings/keys
  2. Configure: lixplore --configure-zotero YOUR_API_KEY YOUR_USER_ID

Usage:

# Add to Zotero library
lixplore -P -q "research" -m 10 --add-to-zotero

# Add to specific collection
lixplore -P -q "AI" -m 20 --add-to-zotero --zotero-collection 4FCVPNAP

πŸ“Š Statistics Dashboard

Comprehensive analytics with beautiful ASCII visualizations:

  • Publication trends by year
  • Top journals and authors
  • Source distribution
  • Metadata completeness
lixplore -P -q "AI" -m 100 --stat

🎨 Interactive TUI Mode

Browse results with a rich interactive terminal interface:

  • Navigate pages with keyboard
  • Select articles visually
  • Export selected items
  • View detailed information
lixplore -P -q "machine learning" -m 50 -i

πŸ”§ Custom API Integration

Add ANY API source via simple JSON configuration:

  • No code modification needed
  • Supports Springer, BASE, and more
  • Plugin architecture for extensibility
lixplore --custom-api springer -q "quantum physics" -m 20

πŸ’‘ Smart Enhancements

  • Metadata Enrichment: Auto-fill missing data from multiple APIs
  • Export Profiles: Save and reuse export configurations
  • Citation Formatting: Export as APA, MLA, Chicago, IEEE
  • Batch Export: Export to multiple formats simultaneously
  • Deduplication Strategies: Multiple algorithms with customization

πŸš€ Quick Start

⚠️ Prerequisites

Before installing Lixplore, ensure you have:

1. Python Installed:

# Check Python version (requires 3.8 or higher)
python --version
# or
python3 --version

2. pip Installed:

# Check pip version
pip --version
# or
pip3 --version

3. (Windows Only) Microsoft C++ Build Tools:

If you're on Windows and encounter build errors during installation, you need Microsoft C++ Build Tools:

Option A: Quick Install (Recommended)

Option B: Full Visual Studio

Why? The gensim package (a dependency) requires C++ compilation on Windows. This is a one-time setup.


Installation

# From PyPI (recommended)
pip install lixplore-cli

# Upgrade to latest version
pip install --upgrade lixplore-cli

# From source
git clone https://github.com/pryndor/Lixplore_cli.git
cd Lixplore_cli
pip install -e .

πŸ› Troubleshooting Installation

❌ Error: "Failed to build gensim" (Windows)

Error Message:

Failed to build gensim
error: Microsoft Visual C++ 14.0 or greater is required

Solution:

  1. Install Microsoft C++ Build Tools (see Prerequisites above)
  2. Restart your terminal/PowerShell
  3. Try installing again: pip install lixplore-cli

Alternative Solution (if build tools don't work):

# Install pre-built binary wheels first
pip install --upgrade pip setuptools wheel
pip install gensim --no-cache-dir
pip install lixplore-cli

❌ Error: "command 'pip' not found"

Solution:

# Try using pip3
pip3 install lixplore-cli

# Or use Python module syntax
python -m pip install lixplore-cli

❌ Error: Permission denied

Solution (Linux/Mac):

# Install for current user only
pip install --user lixplore-cli

Solution (Windows - Run as Administrator):

  • Right-click Command Prompt β†’ "Run as administrator"
  • Then: pip install lixplore-cli

βœ… Verify Installation

# Check if installed correctly
lixplore --version

# Run quick test
lixplore --help

Basic Usage

# Search PubMed
lixplore -P -q "cancer treatment" -m 10

# Search all sources with deduplication
lixplore -A -q "COVID-19" -m 50 -D

# Export to Excel
lixplore -P -q "diabetes" -m 20 -X xlsx -o results.xlsx

πŸ“š Documentation

Visit our comprehensive documentation site for:

  • Getting Started Guides - Installation and first search tutorial
  • User Guides - Search, filtering, export, annotations, PDF management
  • Command Reference - All 95 flags with detailed examples
  • Advanced Features - Automation, AI integration, Zotero, custom APIs
  • Examples - Common workflows, use cases, tool integrations

Quick Help

# Show quick examples
lixplore --examples

# Show complete help
lixplore --help

# View man page (after installing)
man lixplore

# Browse online documentation
# https://pryndor.github.io/Lixplore_cli/

Key Commands

Search Sources

-P, --pubmed       # Search PubMed
-C, --crossref     # Search Crossref
-J, --doaj         # Search DOAJ
-E, --europepmc    # Search EuropePMC
-x, --arxiv        # Search arXiv
-A, --all          # Search all sources
-s PX              # Combined (PubMed + arXiv)

Boolean Operators

# AND - both terms required
lixplore -P -q "cancer AND treatment" -m 10

# OR - either term
lixplore -P -q "cancer OR tumor" -m 10

# NOT - exclude term
lixplore -P -q "diabetes NOT type1" -m 10

# Complex queries
lixplore -P -q "(cancer OR tumor) AND treatment" -m 20

Export Formats

-X csv      # CSV format
-X xlsx     # Excel with formatting
-X json     # JSON structured data
-X bibtex   # BibTeX for LaTeX
-X ris      # RIS for reference managers
-X enw      # EndNote Tagged (recommended)
-X endnote  # EndNote XML
-X xml      # Generic XML

Smart Selection

# Export odd-numbered articles
lixplore -P -q "research" -m 50 -S odd -X csv

# Export first 10 articles
lixplore -P -q "cancer" -m 50 -S first:10 -X xlsx

# Export range
lixplore -P -q "study" -m 50 -S 10-20 -X enw

# Mixed patterns
lixplore -P -q "science" -m 50 -S 1 3 5-10 odd -X csv

Sorting

--sort newest   # Latest publications first
--sort oldest   # Earliest publications first
--sort journal  # Alphabetical by journal
--sort author   # Alphabetical by author

Review Mode

# Step 1: Search
lixplore -P -q "aspirin" -m 10

# Step 2: Review in separate terminal
lixplore -R 2

# Close review window: Press 'q' or Ctrl+C

PDF Links

# Show clickable PDF links in results
lixplore -x -q "neural networks" -m 10 --show-pdf-links

# Combine with abstracts
lixplore -P -q "cancer" -m 20 -a --show-pdf-links

# Multi-source with PDF links
lixplore -A -q "COVID-19" -m 50 -D --show-pdf-links

🎯 Use Cases

1. Literature Review

# Search all sources, deduplicate, sort newest, export top 20
lixplore -A -q "machine learning healthcare" -m 100 -D \
  --sort newest -S first:20 -X xlsx -o ml_healthcare.xlsx

2. Boolean Search with Export

# Advanced query with multiple conditions
lixplore -P -q "(COVID-19 OR coronavirus) AND (vaccine OR treatment)" \
  -m 50 --sort newest -X enw -o covid_papers.enw

3. Quick Sample Review

# Search 50, export odd-numbered (25 articles)
lixplore -A -q "cancer immunotherapy" -m 50 -D \
  -S odd -X csv -o cancer_sample.csv

4. Historical Research

# Sort by oldest to study evolution
lixplore -P -q "diabetes" -m 100 --sort oldest \
  -X xlsx -o diabetes_history.xlsx

5. Multi-Step Workflow

# 1. Search
lixplore -P -q "neuroscience" -m 20

# 2. Review specific articles
lixplore -R 2 5 8

# 3. Export selected
lixplore -P -q "neuroscience" -m 20 -S 2 5 8 -X enw

πŸ“Š Export Formats

All exports are automatically organized into folders:

exports/
β”œβ”€β”€ csv/              # CSV files
β”œβ”€β”€ excel/            # Excel files (.xlsx)
β”œβ”€β”€ json/             # JSON files
β”œβ”€β”€ bibtex/           # BibTeX files
β”œβ”€β”€ ris/              # RIS files
β”œβ”€β”€ endnote_tagged/   # EndNote Tagged (.enw)
β”œβ”€β”€ endnote_xml/      # EndNote XML files
└── xml/              # Generic XML files

πŸ”§ Advanced Features

Smart Selection Patterns

Pattern Syntax Example Result
Specific 1 3 5 -S 1 3 5 Articles #1, #3, #5
Range 1-10 -S 1-10 Articles #1 through #10
Odd odd -S odd Odd-numbered articles
Even even -S even Even-numbered articles
First N first:10 -S first:10 First 10 articles
Last N last:5 -S last:5 Last 5 articles
Mixed 1 3 5-10 -S 1 3 5-10 Combined patterns

Sort Options

  • relevant - Default API order (most relevant first)
  • newest - Latest publications (2025 β†’ 2020)
  • oldest - Earliest publications (1990 β†’ 2000)
  • journal - Alphabetical by journal name
  • author - Alphabetical by first author

πŸ–₯️ Platform Support

Lixplore works on all major platforms:

  • βœ… Linux (all distributions)
  • βœ… macOS (10.14+)
  • βœ… Windows (10+)

Platform-Specific Notes

Linux

Review feature works with: xfce4-terminal, gnome-terminal, konsole, xterm, alacritty, kitty

macOS

Review feature uses Terminal.app

Windows

Review feature uses cmd.exe


πŸ“¦ Installation Methods

Method 1: PyPI (Recommended)

pip install lixplore-cli

Method 2: From Source

git clone https://github.com/pryndor/Lixplore_cli.git
cd Lixplore_cli
pip install -e .

Method 3: Using pipx (Isolated)

pipx install lixplore-cli

πŸ” Requirements

  • Python 3.7 or higher
  • Internet connection for API access
  • Terminal emulator (for review feature)

Dependencies

  • biopython - PubMed/NCBI API access
  • requests - HTTP requests
  • litstudy - Literature study support
  • openpyxl - Excel export support

All dependencies are automatically installed.


πŸ“– Man Page

After installation, install the man page:

sudo cp docs/lixplore.1 /usr/local/share/man/man1/
sudo mandb -q
man lixplore

β˜• Support the Project

If you find Lixplore useful for your research, consider supporting its development!

Buy Me A Coffee

Why support?

  • ✨ Keeps the project actively maintained and updated
  • πŸš€ Helps add new features and integrations
  • πŸ“š Supports free, open-source academic tools
  • 🌍 Makes research more accessible to everyone

"If you value independent research tools and open access to literature, consider buying me a coffee β˜•β€”it helps keep development and research going!"

Your support enables:

  • Regular updates and bug fixes
  • New API integrations (IEEE Xplore, Scopus, Web of Science)
  • Advanced features (LLM integration, citation networks, collaboration tools)
  • Better documentation and tutorials
  • Faster response to issues and feature requests

Other ways to support:

  • ⭐ Star the repository on GitHub
  • πŸ› Report bugs and issues
  • πŸ’‘ Suggest new features
  • πŸ“– Improve documentation
  • πŸ”€ Contribute code via pull requests
  • πŸ“’ Share Lixplore with your research community

πŸš€ Development Roadmap

TUI Mode Enhancement (Active Development)

We're actively working to bring all CLI features into the TUI mode. Upcoming updates will include:

  • πŸ”„ All 95 Flags in TUI - Full integration of all command-line features
  • πŸ“Š Advanced Filtering - Date ranges, author search, DOI lookup in TUI
  • 🎨 Enhanced UI - Improved navigation and visual design
  • πŸ“₯ PDF Integration - Direct PDF download and viewing from TUI
  • πŸ”§ Custom API Support - GUI for adding custom data sources
  • πŸ“‹ Profile Management - Visual interface for export profiles
  • 🎯 Citation Formatting - Interactive citation style selection
  • πŸ“ˆ Advanced Statistics - More visualization options

Current Status: Core TUI features working (search, browse, annotate, export). CLI mode has 100% feature parity with all flags.


🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • PubMed/NCBI for providing free API access
  • arXiv for open preprint access
  • Crossref for DOI metadata
  • DOAJ for open access journal data
  • EuropePMC for European literature access

πŸ“§ Support & Community


πŸ”— Quick Links


Made with ❀️ for the research community