A command-line tool for downloading and managing arXiv papers, including both PDF and LaTeX source files.
- Download papers from arXiv by URL
- Download associated GitHub repositories
- Organize papers with tags
- List and search your paper collection
- Export BibTeX citations
- Web interface for managing papers and BibTeX export
npm install -g arxiv-downloaderadown https://arxiv.org/abs/2101.12345With a tag:
adown https://arxiv.org/abs/2101.12345 -t machine-learningWith a GitHub repository:
adown https://arxiv.org/abs/2101.12345 --github https://github.com/username/repositoryadown listFilter by tag:
adown list -t machine-learningSearch by terms:
adown list neural networksOpen the parent directory containing all files for a paper:
adown open 2101.12345Open the LaTeX source directory:
adown open 2101.12345 --sourceOpen the GitHub repository directory:
adown open 2101.12345 --githubOpen the entire knowledge base:
adown open-kbCommand line export:
adown bibtex -a # Export all papers
adown bibtex -t machine-learning # Export papers with a specific tag
adown bibtex neural networks # Export papers matching search termsStart the web interface for managing all your arXiv papers:
adown webThis will start a local web server and open your browser. The web interface provides a complete management system for your papers:
-
List Management:
- View all your papers in a clean, organized interface
- Search papers by title, author, or abstract
- Filter papers by tag
- Delete papers individually or in bulk
- Open PDF files directly from the interface
- Extract and view LaTeX source files
- Open GitHub repositories associated with papers
- Edit paper details, including GitHub repository URLs
- Export BibTeX citations directly from the list view
- Preview, copy, or download BibTeX entries for selected papers
- Open the entire knowledge base directory
-
Paper Download:
- Download new papers from arXiv URLs
- Add GitHub repository URLs during download
- Add tags during download for better organization
You can specify a custom port:
adown web -p 8080adown --help # Show help
adown pdf 2101.12345 # Open PDF for a paper
adown source 2101.12345 # Extract LaTeX source
adown delete 2101.12345 # Delete a paper
adown clean # Clean up temporary files
adown migrate # Migrate database schema to support GitHub repositoriesIf you encounter errors related to GitHub repositories, such as:
table papers has no column named githubUrl- Issues with paths containing spaces when cloning repositories
Run the database migration command to update your schema:
adown migrateThis will add the necessary columns to your database to support GitHub repository functionality.
MIT
The project uses Jest for unit testing. To run the tests:
# Run all tests
npm test
# Run tests in watch mode (for development)
npm run test:watch
# Run tests with coverage report
npm run test:coverageTo build the project:
npm run buildThis will compile TypeScript files and copy template files to the dist directory.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Write tests for your changes
- Ensure all tests pass (
npm test) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request