arxiv-search

Natural language semantic search across arXiv's complete preprint archive in physics, math, and computer science. Accepts plain English queries without requiring complex search parameter syntax; powered by Valyu's semantic search API Returns full article text, abstracts, and embedded figures from matching papers with relevance scores Requires a free Valyu API key ($10 credits available) and Node.js 18+ Supports filtering by result count and integrates with jq for extracting titles, URLs, and content from JSON responses

INSTALLATION
npx skills add https://github.com/yorkeccak/scientific-skills --skill arxiv-search
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$2a

The scripts/search commands in this documentation are relative to this skill's installation directory.

Before running any command, locate the script using:

ARXIV_SCRIPT=$(find ~/.claude/plugins/cache -name "search" -path "*/arxiv-search/*/scripts/*" -type f 2>/dev/null | head -1)

Then use the full path for all commands:

$ARXIV_SCRIPT "quantum entanglement" 15

API Key Setup Flow

When you run a search and receive "setup_required": true, follow this flow:

-

Ask the user for their API key:

"To search arXiv, I need your Valyu API key. Get one free ($10 credits) at https://platform.valyu.ai"

-

Once the user provides the key, run:

scripts/search setup <api-key>

-

Retry the original search.

Example Flow:

User: Search arXiv for transformer architecture papers

→ Response: {"success": false, "setup_required": true, ...}

→ Claude asks: "Please provide your Valyu API key from https://platform.valyu.ai"

→ User: "val_abc123..."

→ Claude runs: scripts/search setup val_abc123...

→ Response: {"success": true, "type": "setup", ...}

→ Claude retries: scripts/search "transformer architecture papers" 10

→ Success!

When to Use This Skill

  • Searching preprints across physics, mathematics, and computer science
  • Finding research before peer review publication
  • Cross-disciplinary research combining fields
  • Staying current with rapid developments in AI and theoretical physics
  • Prior art searching for new ideas
  • Tracking emerging research trends

Output Format

{

  "success": true,

  "type": "arxiv_search",

  "query": "quantum entanglement",

  "result_count": 10,

  "results": [

    {

      "title": "Article Title",

      "url": "https://arxiv.org/abs/...",

      "content": "Full article text with figures...",

      "source": "arxiv",

      "relevance_score": 0.95,

      "images": ["https://example.com/figure1.jpg"]

    }

  ],

  "cost": 0.025

}

Processing Results

With jq

# Get article titles

scripts/search "query" 10 | jq -r '.results[].title'

# Get URLs

scripts/search "query" 10 | jq -r '.results[].url'

# Extract full content

scripts/search "query" 10 | jq -r '.results[].content'

Common Use Cases

AI/ML Research

# Find recent machine learning papers

scripts/search "large language model architectures" 50

Physics Research

# Search for quantum physics papers

scripts/search "topological quantum computation" 20

Mathematics

# Find math papers

scripts/search "representation theory and Lie algebras" 15

Computer Science

# Search for CS theory papers

scripts/search "distributed systems consensus algorithms" 25

Error Handling

All commands return JSON with success field:

{

  "success": false,

  "error": "Error message"

}

Exit codes:

  • 0 - Success
  • 1 - Error (check JSON for details)

API Endpoint

  • Base URL: https://api.valyu.ai/v1
  • Endpoint: /search
  • Authentication: X-API-Key header

Architecture

scripts/

├── search          # Bash wrapper

└── search.mjs      # Node.js CLI

Direct API calls using Node.js built-in fetch(), zero external dependencies.

Adding to Your Project

If you're building an AI project and want to integrate arXiv Search directly into your application, use the Valyu SDK:

Python Integration

from valyu import Valyu

client = Valyu(api_key="your-api-key")

response = client.search(

    query="your search query here",

    included_sources=["valyu/valyu-arxiv"],

    max_results=20

)

for result in response["results"]:

    print(f"Title: {result['title']}")

    print(f"URL: {result['url']}")

    print(f"Content: {result['content'][:500]}...")

TypeScript Integration

import { Valyu } from "valyu-js";

const client = new Valyu("your-api-key");

const response = await client.search({

  query: "your search query here",

  includedSources: ["valyu/valyu-arxiv"],

  maxResults: 20

});

response.results.forEach((result) => {

  console.log(`Title: ${result.title}`);

  console.log(`URL: ${result.url}`);

  console.log(`Content: ${result.content.substring(0, 500)}...`);

});

See the Valyu docs for full integration examples and SDK reference.

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card