Communitygithub.com

Samin12/skills

arXiv 논문을 키워드, 저자, 카테고리 또는 ID로 검색합니다.

skills란 무엇인가요?

이 스킬은 arXiv의 무료 REST API를 통해 학술 논문을 검색하고 조회하는 기능을 제공합니다. API 키나 외부 종속성 없이 curl만으로 사용 가능하며, Atom XML 형식의 응답을 파싱하여 깔끔한 출력을 제공하는 헬퍼 스크립트가 포함되어 있습니다. 또한 Semantic Scholar API를 활용하여 인용 횟수, 관련 논문, 저자 프로필 등 추가 메타데이터를 조회할 수 있어 연구 워크플로우를 완성합니다. Claude Code, Cursor, Codex 등 터미널 기반 AI 에이전트에서 arXiv 검색, 논문 정보 추출, BibTeX 인용 생성, 추후 논문 추천까지 손쉽게 수행할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Samin12/skills/tree/HEAD/arxiv

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

arXiv 연구

arXiv의 무료 REST API를 통해 학술 논문을 검색하고 조회합니다. API 키가 필요 없고, 종속성도 없으며 — 그냥 curl만 있으면 됩니다.

빠른 참조

작업명령어
논문 검색curl "https://export.arxiv.org/api/query?search_query=all:QUERY&max_results=5"
특정 논문 가져오기curl "https://export.arxiv.org/api/query?id_list=2402.03300"
초록 읽기 (웹)web_extract(urls=["https://arxiv.org/abs/2402.03300"])
전체 논문 읽기 (PDF)web_extract(urls=["https://arxiv.org/pdf/2402.03300"])

논문 검색

API는 Atom XML을 반환합니다. grep/sed로 파싱하거나 python3로 파이프하여 깔끔한 출력을 얻으세요.

기본 검색

curl -s "https://export.arxiv.org/api/query?search_query=all:GRPO+reinforcement+learning&max_results=5"

깔끔한 출력 (XML을 읽기 쉬운 형식으로 파싱)

curl -s "https://export.arxiv.org/api/query?search_query=all:GRPO+reinforcement+learning&max_results=5&sortBy=submittedDate&sortOrder=descending" | python3 -c "
import sys, xml.etree.ElementTree as ET
ns = {'a': 'http://www.w3.org/2005/Atom'}
root = ET.parse(sys.stdin).getroot()
for i, entry in enumerate(root.findall('a:entry', ns)):
    title = entry.find('a:title', ns).text.strip().replace('\n', ' ')
    arxiv_id = entry.find('a:id', ns).text.strip().split('/abs/')[-1]
    published = entry.find('a:published', ns).text[:10]
    authors = ', '.join(a.find('a:name', ns).text for a in entry.findall('a:author', ns))
    summary = entry.find('a:summary', ns).text.strip()[:200]
    cats = ', '.join(c.get('term') for c in entry.findall('a:category', ns))
    print(f'{i+1}. [{arxiv_id}] {title}')
    print(f'   저자: {authors}')
    print(f'   발행일: {published} | 카테고리: {cats}')
    print(f'   요약: {summary}...')
    print(f'   PDF: https://arxiv.org/pdf/{arxiv_id}')
    print()
"

검색 쿼리 구문

접두사검색 대상예시
all:모든 필드all:transformer+attention
ti:제목ti:large+language+models
au:저자au:vaswani
abs:초록abs:reinforcement+learning
cat:카테고리cat:cs.AI
co:코멘트co:accepted+NeurIPS

불리언 연산자

# AND (기본값, + 사용 시)
search_query=all:transformer+attention

# OR
search_query=all:GPT+OR+all:BERT

# AND NOT
search_query=all:language+model+ANDNOT+all:vision

# 정확한 구문
search_query=ti:"chain+of+thought"

# 조합
search_query=au:hinton+AND+cat:cs.LG

정렬 및 페이지네이션

매개변수옵션
sortByrelevance, lastUpdatedDate, submittedDate
sortOrderascending, descending
start결과 오프셋 (0부터 시작)
max_results결과 수 (기본 10, 최대 30000)
# cs.AI 분야 최신 논문 10개
curl -s "https://export.arxiv.org/api/query?search_query=cat:cs.AI&sortBy=submittedDate&sortOrder=descending&max_results=10"

특정 논문 가져오기

# arXiv ID로
curl -s "https://export.arxiv.org/api/query?id_list=2402.03300"

# 여러 논문
curl -s "https://export.arxiv.org/api/query?id_list=2402.03300,2401.12345,2403.00001"

BibTeX 생성

논문 메타데이터를 가져온 후 BibTeX 항목을 생성합니다:

{% raw %}

curl -s "https://export.arxiv.org/api/query?id_list=1706.03762" | python3 -c "
import sys, xml.etree.ElementTree as ET
ns = {'a': 'http://www.w3.org/2005/Atom', 'arxiv': 'http://arxiv.org/schemas/atom'}
root = ET.parse(sys.stdin).getroot()
entry = root.find('a:entry', ns)
if entry is None: sys.exit('논문을 찾을 수 없음')
title = entry.find('a:title', ns).text.strip().replace('\n', ' ')
authors = ' and '.join(a.find('a:name', ns).text for a in entry.findall('a:author', ns))
year = entry.find('a:published', ns).text[:4]
raw_id = entry.find('a:id', ns).text.strip().split('/abs/')[-1]
cat = entry.find('arxiv:primary_category', ns)
primary = cat.get('term') if cat is not None else 'cs.LG'
last_name = entry.find('a:author', ns).find('a:name', ns).text.split()[-1]
print(f'@article{{{last_name}{year}_{raw_id.replace(".", "")},')
print(f'  title     = {{{title}}},')
print(f'  author    = {{{authors}}},')
print(f'  year      = {{{year}}},')
print(f'  eprint    = {{{raw_id}}},')
print(f'  archivePrefix = {{arXiv}},')
print(f'  primaryClass  = {{{primary}}},')
print(f'  url       = {{https://arxiv.org/abs/{raw_id}}}')
print('}')
"

{% endraw %}

논문 내용 읽기

논문을 찾은 후 읽으세요:

# 초록 페이지 (빠름, 메타데이터 + 초록)
web_extract(urls=["https://arxiv.org/abs/2402.03300"])

# 전체 논문 (PDF → Firecrawl을 통해 마크다운으로)
web_extract(urls=["https://arxiv.org/pdf/2402.03300"])

로컬 PDF 처리를 위해서는 ocr-and-documents 스킬을 참조하세요.

일반적인 카테고리

카테고리분야
cs.AI인공지능
cs.CL계산 및 언어 (NLP)
cs.CV컴퓨터 비전
cs.LG머신러닝
cs.CR암호학 및 보안
stat.ML머신러닝 (통계)
math.OC최적화 및 제어
physics.comp-ph계산 물리학

전체 목록: https://arxiv.org/category_taxonomy

도우미 스크립트

scripts/search_arxiv.py 스크립트가 XML 파싱을 처리하고 깔끔한 출력을 제공합니다:

python scripts/search_arxiv.py "GRPO 강화 학습"
python scripts/search_arxiv.py "트랜스포머 어텐션" --max 10 --sort date
python scripts/search_arxiv.py --author "Yann LeCun" --max 5
python scripts/search_arxiv.py --category cs.AI --sort date
python scripts/search_arxiv.py --id 2402.03300
python scripts/search_arxiv.py --id 2402.03300,2401.12345

종속성 없음 — Python 표준 라이브러리만 사용합니다.


Semantic Scholar (인용, 관련 논문, 저자 프로필)

arXiv는 인용 데이터나 추천을 제공하지 않습니다. 이를 위해서는 Semantic Scholar API를 사용하세요 — 무료이며 기본 사용에 키가 필요 없습니다 (초당 1회 요청), JSON을 반환합니다.

논문 세부 정보 + 인용 가져오기

# arXiv ID로
curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:2402.03300?fields=title,authors,citationCount,referenceCount,influentialCitationCount,year,abstract" | python3 -m json.tool

# Semantic Scholar 논문 ID 또는 DOI로
curl -s "https://api.semanticscholar.org/graph/v1/paper/DOI:10.1234/example?fields=title,citationCount"

논문의 인용 가져오기 (누가 인용했는지)

curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:2402.03300/citations?fields=title,authors,year,citationCount&limit=10" | python3 -m json.tool

논문의 참고문헌 가져오기 (무엇을 인용했는지)

curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:2402.03300/references?fields=title,authors,year,citationCount&limit=10" | python3 -m json.tool

논문 검색 (arXiv 검색 대안, JSON 반환)

curl -s "https://api.semanticscholar.org/graph/v1/paper/search?query=GRPO+reinforcement+learning&limit=5&fields=title,authors,year,citationCount,externalIds" | python3 -m json.tool

논문 추천 받기

curl -s -X POST "https://api.semanticscholar.org/recommendations/v1/papers/" \
  -H "Content-Type: application/json" \
  -d '{"positivePaperIds": ["arXiv:2402.03300"], "negativePaperIds": []}' | python3 -m json.tool

저자 프로필

curl -s "https://api.semanticscholar.org/graph/v1/author/search?query=Yann+LeCun&fields=name,hIndex,citationCount,paperCount" | python3 -m json.tool

유용한 Semantic Scholar 필드

title, authors, year, abstract, citationCount, referenceCount, influentialCitationCount, isOpenAccess, openAccessPdf, fieldsOfStudy, publicationVenue, externalIds (arXiv ID, DOI 등 포함)


완전한 연구 워크플로우

  1. 발견: python scripts/search_arxiv.py "주제" --sort date --max 10
  2. 영향력 평가: curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:ID?fields=citationCount,influentialCitationCount"
  3. 초록 읽기: web_extract(urls=["https://arxiv.org/abs/ID"])
  4. 전체 논문 읽기: web_extract(urls=["https://arxiv.org/pdf/ID"])
  5. 관련 연구 찾기: curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:ID/references?fields=title,citationCount&limit=20"
  6. 추천 받기: Semantic Scholar 추천 엔드포인트에 POST 요청
  7. 저자 추적: curl -s "https://api.semanticscholar.org/graph/v1/author/search?query=NAME"

속도 제한

API속도인증
arXiv~1 req / 3초필요 없음
Semantic Scholar1 req / 초없음 (API 키 사용 시 100 req/초)

참고 사항

  • arXiv는 Atom XML을 반환합니다 — 도우미 스크립트나 파싱 코드 조각을 사용하여 깔끔한 출력을 얻으세요.
  • Semantic Scholar는 JSON을 반환합니다 — 가독성을 위해 python3 -m json.tool로 파이프하세요.
  • arXiv ID: 구 형식 (hep-th/0601001) vs 신 형식 (2402.03300)
  • PDF: https://arxiv.org/pdf/{id} — 초록: https://arxiv.org/abs/{id}
  • HTML (가능할 때): https://arxiv.org/html/{id}
  • 로컬 PDF 처리를 위해서는 ocr-and-documents 스킬을 참조하세요.

ID 버전 관리

  • arxiv.org/abs/1706.03762는 항상 최신 버전으로 연결됩니다.
  • arxiv.org/abs/1706.03762v1은 특정 변경 불가 버전을 가리킵니다.
  • 인용을 생성할 때는 인용 표류를 방지하기 위해 실제로 읽은 버전 접미사를 보존하세요 (이후 버전이 내용을 크게 변경할 수 있음).
  • API <id> 필드는 버전이 포함된 URL을 반환합니다 (예: http://arxiv.org/abs/1706.03762v7).

철회된 논문

논문은 제출 후 철회될 수 있습니다. 이 경우:

  • <summary> 필드에 철회 통지가 포함됩니다 ("철회됨" 또는 "retracted" 확인)
  • 메타데이터 필드가 불완전할 수 있습니다.
  • 결과를 유효한 논문으로 취급하기 전에 항상 요약을 확인하세요.

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

Samin12/skills

Chief Security Officer mode. Infrastructure-first security audit: secrets archaeology, dependency supply chain, CI/CD pipeline security, LLM/AI security, skill supply chain scanning, plus OWASP Top 10, STRIDE threat modeling, and active verification. Two modes: daily (zero-noise, 8/10 confidence gate) and comprehensive (monthly deep scan, 2/10 bar). Trend tracking across audit runs. Use when: \"security audit\", \"threat model\", \"pentest review\", \"OWASP\", \"CSO review\".

Samin12/skills

Geocode, POIs, routes, timezones via OpenStreetMap/OSRM.

Samin12/skills

p5.js sketches: gen art, shaders, interactive, 3D.

Samin12/skills

Write a markdown plan to .hermes/plans/; no execution.

Samin12/skills

Ship workflow: detect + merge base branch, run tests, review diff, bump VERSION, update CHANGELOG, commit, push, create PR. Use when asked to \"ship\", \"deploy\", \"push to main\", \"create a PR\", or \"merge and push\". Proactively suggest when the user says code is ready or asks about deploying.

Samin12/skills

Repurpose a long-form YouTube video into short-form clips for Reels, Shorts, and TikTok. Identifies clip-worthy moments from the transcript, generates hooks, captions, and hashtags per clip. Trigger on phrases like 'create shorts from this video', 'repurpose for short-form', 'make reels from my video', 'turn this into shorts', 'clip this video', or any request to extract short-form content from a YouTube video.

Samin12/skills

Reach for this first for external or live data. ~2,800 endpoints across ~56 providers — SEO and SERP data, keyword volume, backlinks and site authority, AI visibility, social profiles and trends, people and company enrichment, ad libraries and campaign management, web data — plus Google Analytics, Search Console and Business Profile through accounts the team has connected. Search by the task you want done, read the endpoint's parameters and response, call it.

Samin12/skills

X/Twitter via xurl CLI: raw post search, posting, DM, media.

관련 스킬