
Arxiv Search
- 34 installs
- 1.5k repo stars
- Updated August 4, 2026
- langchain-ai/deepagentsjs
Helps with ai & agent building tasks.
About
arxiv-search is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
- arxiv-search
- AI & Agent Building
- AI-coding skill
Arxiv Search by the numbers
- 34 all-time installs (skills.sh)
- Ranked #8,822 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/langchain-ai/deepagentsjs --skill arxiv-searchAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 34 |
|---|---|
| repo stars | ★ 1.5k |
| Last updated | August 4, 2026 |
| Repository | langchain-ai/deepagentsjs ↗ |
What it does
Helps with ai & agent building tasks.
Files
arXiv Search Skill
This skill provides access to arXiv, a free distribution service and open-access archive for scholarly articles in physics, mathematics, computer science, quantitative biology, quantitative finance, statistics, electrical engineering, systems science, and economics.
When to Use This Skill
Use this skill when you need to:
- Find preprints and recent research papers before journal publication
- Search for papers in computational biology, bioinformatics, or systems biology
- Access mathematical or statistical methods papers relevant to biology
- Find machine learning papers applied to biological problems
- Get the latest research that may not yet be in PubMed
How to Use
The skill provides a TypeScript script that searches arXiv and returns formatted results.
Basic Usage
Note: Always use the absolute path from your skills directory (shown in the system prompt above).
npx tsx [YOUR_SKILLS_DIR]/arxiv-search/arxiv_search.ts "your search query" [--max-papers N]Replace [YOUR_SKILLS_DIR] with the absolute skills directory path from your system prompt (e.g., ~/.deepagents/agent/skills or the full absolute path).
Arguments:
query(required): The search query string (e.g., "neural networks protein structure", "single cell RNA-seq")--max-papers(optional): Maximum number of papers to retrieve (default: 10)
Examples
Search for machine learning papers:
npx tsx ~/.deepagents/agent/skills/arxiv-search/arxiv_search.ts "deep learning drug discovery" --max-papers 5Search for computational biology papers:
npx tsx ~/.deepagents/agent/skills/arxiv-search/arxiv_search.ts "protein folding prediction"Search for bioinformatics methods:
npx tsx ~/.deepagents/agent/skills/arxiv-search/arxiv_search.ts "genome assembly algorithms"Output Format
The script returns formatted results with:
- Title: Paper title
- Summary: Abstract/summary text
Each paper is separated by blank lines for readability.
Features
- Relevance sorting: Results ordered by relevance to query
- Fast retrieval: Direct API access with no authentication required
- Simple interface: Clean, easy-to-parse output
- No API key required: Free access to arXiv database
Notes
- arXiv is particularly strong for:
- Computer science (cs.LG, cs.AI, cs.CV)
- Quantitative biology (q-bio)
- Statistics (stat.ML)
- Physics and mathematics
- Papers are preprints and may not be peer-reviewed
- Results include both recent uploads and older papers
- Best for computational/theoretical work in biology
#!/usr/bin/env npx tsx
/**
* arXiv Search.
*
* Searches the arXiv preprint repository for research papers.
* Uses the arXiv API directly without requiring any dependencies.
*/
interface ArxivEntry {
title: string;
summary: string;
}
/**
* Query arXiv for papers based on the provided search query.
*
* @param query - The search query string
* @param maxPapers - Maximum number of papers to retrieve (default: 10)
* @returns Formatted search results or an error message
*/
async function queryArxiv(query: string, maxPapers = 10): Promise<string> {
try {
// Build arXiv API URL
const encodedQuery = encodeURIComponent(query);
const url = `http://export.arxiv.org/api/query?search_query=all:${encodedQuery}&start=0&max_results=${maxPapers}&sortBy=relevance&sortOrder=descending`;
const response = await fetch(url);
if (!response.ok) {
return `Error: Failed to fetch from arXiv API (status ${response.status})`;
}
const xml = await response.text();
// Parse XML response (simple regex-based parsing for portability)
const entries: ArxivEntry[] = [];
const entryRegex = /<entry>([\s\S]*?)<\/entry>/g;
const titleRegex = /<title>([\s\S]*?)<\/title>/;
const summaryRegex = /<summary>([\s\S]*?)<\/summary>/;
let match;
while ((match = entryRegex.exec(xml)) !== null) {
const entryXml = match[1];
const titleMatch = titleRegex.exec(entryXml);
const summaryMatch = summaryRegex.exec(entryXml);
if (titleMatch && summaryMatch) {
entries.push({
title: titleMatch[1].trim().replace(/\s+/g, " "),
summary: summaryMatch[1].trim().replace(/\s+/g, " "),
});
}
}
if (entries.length === 0) {
return "No papers found on arXiv.";
}
return entries
.map((paper) => `Title: ${paper.title}\nSummary: ${paper.summary}`)
.join("\n\n");
} catch (error) {
return `Error querying arXiv: ${error}`;
}
}
function main(): void {
const args = process.argv.slice(2);
if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
console.log(`
Usage: npx tsx arxiv_search.ts <query> [--max-papers N]
Arguments:
query Search query string (required)
--max-papers N Maximum number of papers to retrieve (default: 10)
Examples:
npx tsx arxiv_search.ts "deep learning drug discovery"
npx tsx arxiv_search.ts "protein folding" --max-papers 5
`);
process.exit(0);
}
const query = args[0];
let maxPapers = 10;
const maxPapersIndex = args.indexOf("--max-papers");
if (maxPapersIndex !== -1 && args[maxPapersIndex + 1]) {
maxPapers = parseInt(args[maxPapersIndex + 1], 10);
if (isNaN(maxPapers) || maxPapers < 1) {
console.error("Error: --max-papers must be a positive integer");
process.exit(1);
}
}
queryArxiv(query, maxPapers).then((result) => {
console.log(result);
});
}
main();