arxiv-search

Searches arXiv for preprints and academic papers, retrieves abstracts, and filters by topic. Use when the user asks to find research papers, search arXiv, look up preprints, find academic articles in physics, math, CS, biology, statistics, or related fields.

Install
npx skills add 'https://github.com/langchain-ai/deepagents/tree/main/libs/code/examples/skills/arxiv-search'
Download bundle ↓
main · 229ffefScanned 2026-09-17

Contributors

GitHub-linked commit authors for this SKILL.md at the saved revision. Co-authors and history before file renames are not included.

File history ↗

arxiv_search.py

arxiv_search.pyBrowse 2 files
View on GitHub
← Back to SKILL.md
#!/usr/bin/env python3"""arXiv Search. Searches the arXiv preprint repository for research papers.""" import argparse  def query_arxiv(query: str, max_papers: int = 10) -> str:    """Query arXiv for papers based on the provided search query.     Parameters    ----------    query : str        The search query string.    max_papers : int        The maximum number of papers to retrieve (default: 10).     Returns:        The formatted search results or an error message.    """    try:        import arxiv  # ty: ignore    except ImportError:        return "Error: arxiv package not installed. Install with: pip install arxiv"     try:        client = arxiv.Client()        search = arxiv.Search(            query=query, max_results=max_papers, sort_by=arxiv.SortCriterion.Relevance        )        results = "\n\n".join(            [                f"Title: {paper.title}\nSummary: {paper.summary}"                for paper in client.results(search)            ]        )        return results or "No papers found on arXiv."    except Exception as e:        return f"Error querying arXiv: {e}"  def main() -> None:    """Main entry point for the arXiv search CLI tool."""    parser = argparse.ArgumentParser(description="Search arXiv for research papers")    parser.add_argument("query", type=str, help="Search query string")    parser.add_argument(        "--max-papers",        type=int,        default=10,        help="Maximum number of papers to retrieve (default: 10)",    )     args = parser.parse_args()     query_arxiv(args.query, max_papers=args.max_papers)  if __name__ == "__main__":    main()