[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71JDRQZFYVFHMA1SS3KXK08":3,"skill-same:01M71JDRQZFYVFHMA1SS3KXK08":93},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":28,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":66,"commitSha":67,"skillDirectory":68,"forksCount":69,"repositoryHtmlUrl":70,"repositoryHomepageUrl":6,"ownerHtmlUrl":71,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":72,"install":73,"resources":86},"01M71JDRQZFYVFHMA1SS3KXK08","arxiv",null,"Search and retrieve academic papers from arXiv using their free REST API. No API key needed. Search by keyword, author, category, or ID. Combine with web_extract or the ocr-and-documents skill to read full paper content.","xuanxuan1983\u002Fhermes-skills-backup","xuanxuan1983","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F151701653?v=4","01M71HCZNB5H19QJ6YBF98W2WH","01M71HCZP14T0921BD0TC9EPD3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Farxiv\u002FSKILL.md",[17,22,25],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":26,"categoryName":27,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[5,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"combine","hermes","rest api","paper","web","research","REST","id","with","author","science","full","read","api","documents","free","search","papers","ocr","2026-11-10 10:12:30",false,"---\nname: arxiv\ndescription: Search and retrieve academic papers from arXiv using their free REST API. No API key needed. Search by keyword, author, category, or ID. Combine with web_extract or the ocr-and-documents skill to read full paper content.\nversion: 1.0.0\nauthor: Hermes Agent\nlicense: MIT\nmetadata:\n  hermes:\n    tags: [Research, Arxiv, Papers, Academic, Science, API]\n    related_skills: [ocr-and-documents]\n---\n\n# arXiv Research\n\nSearch and retrieve academic papers from arXiv via their free REST API. No API key, no dependencies — just curl.\n\n## Quick Reference\n\n| Action | Command |\n|--------|---------|\n| Search papers | `curl \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?search_query=all:QUERY&max_results=5\"` |\n| Get specific paper | `curl \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?id_list=2402.03300\"` |\n| Read abstract (web) | `web_extract(urls=[\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.03300\"])` |\n| Read full paper (PDF) | `web_extract(urls=[\"https:\u002F\u002Farxiv.org\u002Fpdf\u002F2402.03300\"])` |\n\n## Searching Papers\n\nThe API returns Atom XML. Parse with `grep`\u002F`sed` or pipe through `python3` for clean output.\n\n### Basic search\n\n```bash\ncurl -s \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?search_query=all:GRPO+reinforcement+learning&max_results=5\"\n```\n\n### Clean output (parse XML to readable format)\n\n```bash\ncurl -s \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?search_query=all:GRPO+reinforcement+learning&max_results=5&sortBy=submittedDate&sortOrder=descending\" | python3 -c \"\nimport sys, xml.etree.ElementTree as ET\nns = {'a': 'http:\u002F\u002Fwww.w3.org\u002F2005\u002FAtom'}\nroot = ET.parse(sys.stdin).getroot()\nfor i, entry in enumerate(root.findall('a:entry', ns)):\n    title = entry.find('a:title', ns).text.strip().replace('\\n', ' ')\n    arxiv_id = entry.find('a:id', ns).text.strip().split('\u002Fabs\u002F')[-1]\n    published = entry.find('a:published', ns).text[:10]\n    authors = ', '.join(a.find('a:name', ns).text for a in entry.findall('a:author', ns))\n    summary = entry.find('a:summary', ns).text.strip()[:200]\n    cats = ', '.join(c.get('term') for c in entry.findall('a:category', ns))\n    print(f'{i+1}. [{arxiv_id}] {title}')\n    print(f'   Authors: {authors}')\n    print(f'   Published: {published} | Categories: {cats}')\n    print(f'   Abstract: {summary}...')\n    print(f'   PDF: https:\u002F\u002Farxiv.org\u002Fpdf\u002F{arxiv_id}')\n    print()\n\"\n```\n\n## Search Query Syntax\n\n| Prefix | Searches | Example |\n|--------|----------|---------|\n| `all:` | All fields | `all:transformer+attention` |\n| `ti:` | Title | `ti:large+language+models` |\n| `au:` | Author | `au:vaswani` |\n| `abs:` | Abstract | `abs:reinforcement+learning` |\n| `cat:` | Category | `cat:cs.AI` |\n| `co:` | Comment | `co:accepted+NeurIPS` |\n\n### Boolean operators\n\n```\n# AND (default when using +)\nsearch_query=all:transformer+attention\n\n# OR\nsearch_query=all:GPT+OR+all:BERT\n\n# AND NOT\nsearch_query=all:language+model+ANDNOT+all:vision\n\n# Exact phrase\nsearch_query=ti:\"chain+of+thought\"\n\n# Combined\nsearch_query=au:hinton+AND+cat:cs.LG\n```\n\n## Sort and Pagination\n\n| Parameter | Options |\n|-----------|---------|\n| `sortBy` | `relevance`, `lastUpdatedDate`, `submittedDate` |\n| `sortOrder` | `ascending`, `descending` |\n| `start` | Result offset (0-based) |\n| `max_results` | Number of results (default 10, max 30000) |\n\n```bash\n# Latest 10 papers in cs.AI\ncurl -s \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?search_query=cat:cs.AI&sortBy=submittedDate&sortOrder=descending&max_results=10\"\n```\n\n## Fetching Specific Papers\n\n```bash\n# By arXiv ID\ncurl -s \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?id_list=2402.03300\"\n\n# Multiple papers\ncurl -s \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?id_list=2402.03300,2401.12345,2403.00001\"\n```\n\n## BibTeX Generation\n\nAfter fetching metadata for a paper, generate a BibTeX entry:\n\n{% raw %}\n```bash\ncurl -s \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?id_list=1706.03762\" | python3 -c \"\nimport sys, xml.etree.ElementTree as ET\nns = {'a': 'http:\u002F\u002Fwww.w3.org\u002F2005\u002FAtom', 'arxiv': 'http:\u002F\u002Farxiv.org\u002Fschemas\u002Fatom'}\nroot = ET.parse(sys.stdin).getroot()\nentry = root.find('a:entry', ns)\nif entry is None: sys.exit('Paper not found')\ntitle = entry.find('a:title', ns).text.strip().replace('\\n', ' ')\nauthors = ' and '.join(a.find('a:name', ns).text for a in entry.findall('a:author', ns))\nyear = entry.find('a:published', ns).text[:4]\nraw_id = entry.find('a:id', ns).text.strip().split('\u002Fabs\u002F')[-1]\ncat = entry.find('arxiv:primary_category', ns)\nprimary = cat.get('term') if cat is not None else 'cs.LG'\nlast_name = entry.find('a:author', ns).find('a:name', ns).text.split()[-1]\nprint(f'@article{{{last_name}{year}_{raw_id.replace(\\\".\\\", \\\"\\\")},')\nprint(f'  title     = {{{title}}},')\nprint(f'  author    = {{{authors}}},')\nprint(f'  year      = {{{year}}},')\nprint(f'  eprint    = {{{raw_id}}},')\nprint(f'  archivePrefix = {{arXiv}},')\nprint(f'  primaryClass  = {{{primary}}},')\nprint(f'  url       = {{https:\u002F\u002Farxiv.org\u002Fabs\u002F{raw_id}}}')\nprint('}')\n\"\n```\n{% endraw %}\n\n## Reading Paper Content\n\nAfter finding a paper, read it:\n\n```\n# Abstract page (fast, metadata + abstract)\nweb_extract(urls=[\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.03300\"])\n\n# Full paper (PDF → markdown via Firecrawl)\nweb_extract(urls=[\"https:\u002F\u002Farxiv.org\u002Fpdf\u002F2402.03300\"])\n```\n\nFor local PDF processing, see the `ocr-and-documents` skill.\n\n## Common Categories\n\n| Category | Field |\n|----------|-------|\n| `cs.AI` | Artificial Intelligence |\n| `cs.CL` | Computation and Language (NLP) |\n| `cs.CV` | Computer Vision |\n| `cs.LG` | Machine Learning |\n| `cs.CR` | Cryptography and Security |\n| `stat.ML` | Machine Learning (Statistics) |\n| `math.OC` | Optimization and Control |\n| `physics.comp-ph` | Computational Physics |\n\nFull list: https:\u002F\u002Farxiv.org\u002Fcategory_taxonomy\n\n## Helper Script\n\nThe `scripts\u002Fsearch_arxiv.py` script handles XML parsing and provides clean output:\n\n```bash\npython scripts\u002Fsearch_arxiv.py \"GRPO reinforcement learning\"\npython scripts\u002Fsearch_arxiv.py \"transformer attention\" --max 10 --sort date\npython scripts\u002Fsearch_arxiv.py --author \"Yann LeCun\" --max 5\npython scripts\u002Fsearch_arxiv.py --category cs.AI --sort date\npython scripts\u002Fsearch_arxiv.py --id 2402.03300\npython scripts\u002Fsearch_arxiv.py --id 2402.03300,2401.12345\n```\n\nNo dependencies — uses only Python stdlib.\n\n---\n\n## Semantic Scholar (Citations, Related Papers, Author Profiles)\n\narXiv doesn't provide citation data or recommendations. Use the **Semantic Scholar API** for that — free, no key needed for basic use (1 req\u002Fsec), returns JSON.\n\n### Get paper details + citations\n\n```bash\n# By arXiv ID\ncurl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002FarXiv:2402.03300?fields=title,authors,citationCount,referenceCount,influentialCitationCount,year,abstract\" | python3 -m json.tool\n\n# By Semantic Scholar paper ID or DOI\ncurl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002FDOI:10.1234\u002Fexample?fields=title,citationCount\"\n```\n\n### Get citations OF a paper (who cited it)\n\n```bash\ncurl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002FarXiv:2402.03300\u002Fcitations?fields=title,authors,year,citationCount&limit=10\" | python3 -m json.tool\n```\n\n### Get references FROM a paper (what it cites)\n\n```bash\ncurl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002FarXiv:2402.03300\u002Freferences?fields=title,authors,year,citationCount&limit=10\" | python3 -m json.tool\n```\n\n### Search papers (alternative to arXiv search, returns JSON)\n\n```bash\ncurl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002Fsearch?query=GRPO+reinforcement+learning&limit=5&fields=title,authors,year,citationCount,externalIds\" | python3 -m json.tool\n```\n\n### Get paper recommendations\n\n```bash\ncurl -s -X POST \"https:\u002F\u002Fapi.semanticscholar.org\u002Frecommendations\u002Fv1\u002Fpapers\u002F\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"positivePaperIds\": [\"arXiv:2402.03300\"], \"negativePaperIds\": []}' | python3 -m json.tool\n```\n\n### Author profile\n\n```bash\ncurl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fauthor\u002Fsearch?query=Yann+LeCun&fields=name,hIndex,citationCount,paperCount\" | python3 -m json.tool\n```\n\n### Useful Semantic Scholar fields\n\n`title`, `authors`, `year`, `abstract`, `citationCount`, `referenceCount`, `influentialCitationCount`, `isOpenAccess`, `openAccessPdf`, `fieldsOfStudy`, `publicationVenue`, `externalIds` (contains arXiv ID, DOI, etc.)\n\n---\n\n## Complete Research Workflow\n\n1. **Discover**: `python scripts\u002Fsearch_arxiv.py \"your topic\" --sort date --max 10`\n2. **Assess impact**: `curl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002FarXiv:ID?fields=citationCount,influentialCitationCount\"`\n3. **Read abstract**: `web_extract(urls=[\"https:\u002F\u002Farxiv.org\u002Fabs\u002FID\"])`\n4. **Read full paper**: `web_extract(urls=[\"https:\u002F\u002Farxiv.org\u002Fpdf\u002FID\"])`\n5. **Find related work**: `curl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002FarXiv:ID\u002Freferences?fields=title,citationCount&limit=20\"`\n6. **Get recommendations**: POST to Semantic Scholar recommendations endpoint\n7. **Track authors**: `curl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fauthor\u002Fsearch?query=NAME\"`\n\n## Rate Limits\n\n| API | Rate | Auth |\n|-----|------|------|\n| arXiv | ~1 req \u002F 3 seconds | None needed |\n| Semantic Scholar | 1 req \u002F second | None (100\u002Fsec with API key) |\n\n## Notes\n\n- arXiv returns Atom XML — use the helper script or parsing snippet for clean output\n- Semantic Scholar returns JSON — pipe through `python3 -m json.tool` for readability\n- arXiv IDs: old format (`hep-th\u002F0601001`) vs new (`2402.03300`)\n- PDF: `https:\u002F\u002Farxiv.org\u002Fpdf\u002F{id}` — Abstract: `https:\u002F\u002Farxiv.org\u002Fabs\u002F{id}`\n- HTML (when available): `https:\u002F\u002Farxiv.org\u002Fhtml\u002F{id}`\n- For local PDF processing, see the `ocr-and-documents` skill\n\n## ID Versioning\n\n- `arxiv.org\u002Fabs\u002F1706.03762` always resolves to the **latest** version\n- `arxiv.org\u002Fabs\u002F1706.03762v1` points to a **specific** immutable version\n- When generating citations, preserve the version suffix you actually read to prevent citation drift (a later version may substantially change content)\n- The API `\u003Cid>` field returns the versioned URL (e.g., `http:\u002F\u002Farxiv.org\u002Fabs\u002F1706.03762v7`)\n\n## Withdrawn Papers\n\nPapers can be withdrawn after submission. When this happens:\n- The `\u003Csummary>` field contains a withdrawal notice (look for \"withdrawn\" or \"retracted\")\n- Metadata fields may be incomplete\n- Always check the summary before treating a result as a valid paper\n","# arXiv Research\n\nSearch and retrieve academic papers from arXiv via their free REST API. No API key, no dependencies — just curl.\n\n## Quick Reference\n\n| Action | Command |\n|--------|---------|\n| Search papers | `curl \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?search_query=all:QUERY&max_results=5\"` |\n| Get specific paper | `curl \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?id_list=2402.03300\"` |\n| Read abstract (web) | `web_extract(urls=[\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.03300\"])` |\n| Read full paper (PDF) | `web_extract(urls=[\"https:\u002F\u002Farxiv.org\u002Fpdf\u002F2402.03300\"])` |\n\n## Searching Papers\n\nThe API returns Atom XML. Parse with `grep`\u002F`sed` or pipe through `python3` for clean output.\n\n### Basic search\n\n```bash\ncurl -s \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?search_query=all:GRPO+reinforcement+learning&max_results=5\"\n```\n\n### Clean output (parse XML to readable format)\n\n```bash\ncurl -s \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?search_query=all:GRPO+reinforcement+learning&max_results=5&sortBy=submittedDate&sortOrder=descending\" | python3 -c \"\nimport sys, xml.etree.ElementTree as ET\nns = {'a': 'http:\u002F\u002Fwww.w3.org\u002F2005\u002FAtom'}\nroot = ET.parse(sys.stdin).getroot()\nfor i, entry in enumerate(root.findall('a:entry', ns)):\n    title = entry.find('a:title', ns).text.strip().replace('\\n', ' ')\n    arxiv_id = entry.find('a:id', ns).text.strip().split('\u002Fabs\u002F')[-1]\n    published = entry.find('a:published', ns).text[:10]\n    authors = ', '.join(a.find('a:name', ns).text for a in entry.findall('a:author', ns))\n    summary = entry.find('a:summary', ns).text.strip()[:200]\n    cats = ', '.join(c.get('term') for c in entry.findall('a:category', ns))\n    print(f'{i+1}. [{arxiv_id}] {title}')\n    print(f'   Authors: {authors}')\n    print(f'   Published: {published} | Categories: {cats}')\n    print(f'   Abstract: {summary}...')\n    print(f'   PDF: https:\u002F\u002Farxiv.org\u002Fpdf\u002F{arxiv_id}')\n    print()\n\"\n```\n\n## Search Query Syntax\n\n| Prefix | Searches | Example |\n|--------|----------|---------|\n| `all:` | All fields | `all:transformer+attention` |\n| `ti:` | Title | `ti:large+language+models` |\n| `au:` | Author | `au:vaswani` |\n| `abs:` | Abstract | `abs:reinforcement+learning` |\n| `cat:` | Category | `cat:cs.AI` |\n| `co:` | Comment | `co:accepted+NeurIPS` |\n\n### Boolean operators\n\n```\n# AND (default when using +)\nsearch_query=all:transformer+attention\n\n# OR\nsearch_query=all:GPT+OR+all:BERT\n\n# AND NOT\nsearch_query=all:language+model+ANDNOT+all:vision\n\n# Exact phrase\nsearch_query=ti:\"chain+of+thought\"\n\n# Combined\nsearch_query=au:hinton+AND+cat:cs.LG\n```\n\n## Sort and Pagination\n\n| Parameter | Options |\n|-----------|---------|\n| `sortBy` | `relevance`, `lastUpdatedDate`, `submittedDate` |\n| `sortOrder` | `ascending`, `descending` |\n| `start` | Result offset (0-based) |\n| `max_results` | Number of results (default 10, max 30000) |\n\n```bash\n# Latest 10 papers in cs.AI\ncurl -s \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?search_query=cat:cs.AI&sortBy=submittedDate&sortOrder=descending&max_results=10\"\n```\n\n## Fetching Specific Papers\n\n```bash\n# By arXiv ID\ncurl -s \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?id_list=2402.03300\"\n\n# Multiple papers\ncurl -s \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?id_list=2402.03300,2401.12345,2403.00001\"\n```\n\n## BibTeX Generation\n\nAfter fetching metadata for a paper, generate a BibTeX entry:\n\n{% raw %}\n```bash\ncurl -s \"https:\u002F\u002Fexport.arxiv.org\u002Fapi\u002Fquery?id_list=1706.03762\" | python3 -c \"\nimport sys, xml.etree.ElementTree as ET\nns = {'a': 'http:\u002F\u002Fwww.w3.org\u002F2005\u002FAtom', 'arxiv': 'http:\u002F\u002Farxiv.org\u002Fschemas\u002Fatom'}\nroot = ET.parse(sys.stdin).getroot()\nentry = root.find('a:entry', ns)\nif entry is None: sys.exit('Paper not found')\ntitle = entry.find('a:title', ns).text.strip().replace('\\n', ' ')\nauthors = ' and '.join(a.find('a:name', ns).text for a in entry.findall('a:author', ns))\nyear = entry.find('a:published', ns).text[:4]\nraw_id = entry.find('a:id', ns).text.strip().split('\u002Fabs\u002F')[-1]\ncat = entry.find('arxiv:primary_category', ns)\nprimary = cat.get('term') if cat is not None else 'cs.LG'\nlast_name = entry.find('a:author', ns).find('a:name', ns).text.split()[-1]\nprint(f'@article{{{last_name}{year}_{raw_id.replace(\\\".\\\", \\\"\\\")},')\nprint(f'  title     = {{{title}}},')\nprint(f'  author    = {{{authors}}},')\nprint(f'  year      = {{{year}}},')\nprint(f'  eprint    = {{{raw_id}}},')\nprint(f'  archivePrefix = {{arXiv}},')\nprint(f'  primaryClass  = {{{primary}}},')\nprint(f'  url       = {{https:\u002F\u002Farxiv.org\u002Fabs\u002F{raw_id}}}')\nprint('}')\n\"\n```\n{% endraw %}\n\n## Reading Paper Content\n\nAfter finding a paper, read it:\n\n```\n# Abstract page (fast, metadata + abstract)\nweb_extract(urls=[\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.03300\"])\n\n# Full paper (PDF → markdown via Firecrawl)\nweb_extract(urls=[\"https:\u002F\u002Farxiv.org\u002Fpdf\u002F2402.03300\"])\n```\n\nFor local PDF processing, see the `ocr-and-documents` skill.\n\n## Common Categories\n\n| Category | Field |\n|----------|-------|\n| `cs.AI` | Artificial Intelligence |\n| `cs.CL` | Computation and Language (NLP) |\n| `cs.CV` | Computer Vision |\n| `cs.LG` | Machine Learning |\n| `cs.CR` | Cryptography and Security |\n| `stat.ML` | Machine Learning (Statistics) |\n| `math.OC` | Optimization and Control |\n| `physics.comp-ph` | Computational Physics |\n\nFull list: https:\u002F\u002Farxiv.org\u002Fcategory_taxonomy\n\n## Helper Script\n\nThe `scripts\u002Fsearch_arxiv.py` script handles XML parsing and provides clean output:\n\n```bash\npython scripts\u002Fsearch_arxiv.py \"GRPO reinforcement learning\"\npython scripts\u002Fsearch_arxiv.py \"transformer attention\" --max 10 --sort date\npython scripts\u002Fsearch_arxiv.py --author \"Yann LeCun\" --max 5\npython scripts\u002Fsearch_arxiv.py --category cs.AI --sort date\npython scripts\u002Fsearch_arxiv.py --id 2402.03300\npython scripts\u002Fsearch_arxiv.py --id 2402.03300,2401.12345\n```\n\nNo dependencies — uses only Python stdlib.\n\n---\n\n## Semantic Scholar (Citations, Related Papers, Author Profiles)\n\narXiv doesn't provide citation data or recommendations. Use the **Semantic Scholar API** for that — free, no key needed for basic use (1 req\u002Fsec), returns JSON.\n\n### Get paper details + citations\n\n```bash\n# By arXiv ID\ncurl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002FarXiv:2402.03300?fields=title,authors,citationCount,referenceCount,influentialCitationCount,year,abstract\" | python3 -m json.tool\n\n# By Semantic Scholar paper ID or DOI\ncurl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002FDOI:10.1234\u002Fexample?fields=title,citationCount\"\n```\n\n### Get citations OF a paper (who cited it)\n\n```bash\ncurl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002FarXiv:2402.03300\u002Fcitations?fields=title,authors,year,citationCount&limit=10\" | python3 -m json.tool\n```\n\n### Get references FROM a paper (what it cites)\n\n```bash\ncurl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002FarXiv:2402.03300\u002Freferences?fields=title,authors,year,citationCount&limit=10\" | python3 -m json.tool\n```\n\n### Search papers (alternative to arXiv search, returns JSON)\n\n```bash\ncurl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002Fsearch?query=GRPO+reinforcement+learning&limit=5&fields=title,authors,year,citationCount,externalIds\" | python3 -m json.tool\n```\n\n### Get paper recommendations\n\n```bash\ncurl -s -X POST \"https:\u002F\u002Fapi.semanticscholar.org\u002Frecommendations\u002Fv1\u002Fpapers\u002F\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"positivePaperIds\": [\"arXiv:2402.03300\"], \"negativePaperIds\": []}' | python3 -m json.tool\n```\n\n### Author profile\n\n```bash\ncurl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fauthor\u002Fsearch?query=Yann+LeCun&fields=name,hIndex,citationCount,paperCount\" | python3 -m json.tool\n```\n\n### Useful Semantic Scholar fields\n\n`title`, `authors`, `year`, `abstract`, `citationCount`, `referenceCount`, `influentialCitationCount`, `isOpenAccess`, `openAccessPdf`, `fieldsOfStudy`, `publicationVenue`, `externalIds` (contains arXiv ID, DOI, etc.)\n\n---\n\n## Complete Research Workflow\n\n1. **Discover**: `python scripts\u002Fsearch_arxiv.py \"your topic\" --sort date --max 10`\n2. **Assess impact**: `curl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002FarXiv:ID?fields=citationCount,influentialCitationCount\"`\n3. **Read abstract**: `web_extract(urls=[\"https:\u002F\u002Farxiv.org\u002Fabs\u002FID\"])`\n4. **Read full paper**: `web_extract(urls=[\"https:\u002F\u002Farxiv.org\u002Fpdf\u002FID\"])`\n5. **Find related work**: `curl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fpaper\u002FarXiv:ID\u002Freferences?fields=title,citationCount&limit=20\"`\n6. **Get recommendations**: POST to Semantic Scholar recommendations endpoint\n7. **Track authors**: `curl -s \"https:\u002F\u002Fapi.semanticscholar.org\u002Fgraph\u002Fv1\u002Fauthor\u002Fsearch?query=NAME\"`\n\n## Rate Limits\n\n| API | Rate | Auth |\n|-----|------|------|\n| arXiv | ~1 req \u002F 3 seconds | None needed |\n| Semantic Scholar | 1 req \u002F second | None (100\u002Fsec with API key) |\n\n## Notes\n\n- arXiv returns Atom XML — use the helper script or parsing snippet for clean output\n- Semantic Scholar returns JSON — pipe through `python3 -m json.tool` for readability\n- arXiv IDs: old format (`hep-th\u002F0601001`) vs new (`2402.03300`)\n- PDF: `https:\u002F\u002Farxiv.org\u002Fpdf\u002F{id}` — Abstract: `https:\u002F\u002Farxiv.org\u002Fabs\u002F{id}`\n- HTML (when available): `https:\u002F\u002Farxiv.org\u002Fhtml\u002F{id}`\n- For local PDF processing, see the `ocr-and-documents` skill\n\n## ID Versioning\n\n- `arxiv.org\u002Fabs\u002F1706.03762` always resolves to the **latest** version\n- `arxiv.org\u002Fabs\u002F1706.03762v1` points to a **specific** immutable version\n- When generating citations, preserve the version suffix you actually read to prevent citation drift (a later version may substantially change content)\n- The API `\u003Cid>` field returns the versioned URL (e.g., `http:\u002F\u002Farxiv.org\u002Fabs\u002F1706.03762v7`)\n\n## Withdrawn Papers\n\nPapers can be withdrawn after submission. When this happens:\n- The `\u003Csummary>` field contains a withdrawal notice (look for \"withdrawn\" or \"retracted\")\n- Metadata fields may be incomplete\n- Always check the summary before treating a result as a valid paper\n",{"name":5,"author":53,"license":14,"version":54,"metadata":55,"description":7},"Hermes Agent","1.0.0",{"hermes":56},{"tags":57,"related_skills":64},[58,59,60,61,62,63],"Research","Arxiv","Papers","Academic","Science","API",[65],"ocr-and-documents","main","17ee50c38aefa9426a89d7e8ee167fdc4c184fb7","skills\u002Fresearch\u002Farxiv",0,"https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983","2026-05-24 00:14:48",{"source":8,"skillName":5,"commands":74,"prompt":84,"zipAvailable":85},[75,78,81],{"tool":76,"command":77},"npx","npx skills add xuanxuan1983\u002Fhermes-skills-backup --skill arxiv",{"tool":79,"command":80},"bunx","bunx skills add xuanxuan1983\u002Fhermes-skills-backup --skill arxiv",{"tool":82,"command":83},"pnpm","pnpm dlx skills add xuanxuan1983\u002Fhermes-skills-backup --skill arxiv","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Farxiv\u002FSKILL.md",true,[87],{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"scripts\u002Fsearch_arxiv.py","SCRIPT","脚本",4272,"https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Farxiv\u002Fscripts\u002Fsearch_arxiv.py",[94,135,163,179,199,220],{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":114,"publishedAt":48},"01M71JFHVW1W4XE013TY9ZYN9P","writing-plans","Use when you have a spec or requirements for a multi-step task. Creates comprehensive implementation plans with bite-sized tasks, exact file paths, and complete code examples.","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[100,103,106,111],{"categoryNo":101,"categoryName":102,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":104,"categoryName":105,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":112,"categoryName":113,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000036","内容创作者",[115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134],"writing","writing plans","plans","test-driven","test-driven-development","superpowers","design","when","workflow","you","code","tasks","subagent","code-review","review","documentation","paths","planning","development","for",{"skillNo":136,"name":119,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":148,"publishedAt":48},"01M71JFF859RV0XGWS206X1TMB","Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle with test-first approach.","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[140,143,146,147],{"categoryNo":141,"categoryName":142,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":144,"categoryName":145,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":104,"categoryName":105,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":112,"categoryName":113,"taxonomyType":109,"taxonomyTypeDesc":110},[149,133,150,151,152,153,154,155,156,157,120,115,158,122,125,127,159,160,161,162],"test driven development","test","driven","test-first","green","cycle","red-green-refactor","testing","implementing","debugging","systematic","bugfix","refactor","systematic-debugging",{"skillNo":164,"name":162,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":169,"publishedAt":48},"01M71JFCA5S48PZ5M7DG31R8K5","Use when encountering any bug, test failure, or unexpected behavior. 4-phase root cause investigation — NO fixes without understanding the problem first.","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[168],{"categoryNo":144,"categoryName":145,"taxonomyType":20,"taxonomyTypeDesc":21},[170,158,159,118,171,172,119,120,115,122,127,173,174,133,175,176,117,177,178,150],"systematic debugging","problem","problem-solving","phase","bug","fixes","root cause","use","root-cause",{"skillNo":180,"name":181,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":192,"publishedAt":48},"01M71JF9RQ092KM5ZXCBBT6FS1","subagent-driven-development","Use when executing implementation plans with independent tasks. Dispatches fresh delegate_task per task with two-stage review (spec compliance then code quality).","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fsoftware-development\u002Fsubagent-driven-development\u002FSKILL.md",[185,186,187,188,189],{"categoryNo":104,"categoryName":105,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":26,"categoryName":27,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},{"categoryNo":112,"categoryName":113,"taxonomyType":109,"taxonomyTypeDesc":110},{"categoryNo":190,"categoryName":191,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000037","律师与法务",[193,127,133,151,118,119,194,195,120,115,122,123,125,126,128,129,196,197,198,117],"subagent driven development","delegate","delegation","fresh","parallel","code quality",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":207,"publishedAt":48},"01M71JF76DA8ARZ4JRYR4VBRWM","requesting-code-review","Pre-commit verification pipeline — static security scan, baseline-aware quality gates, independent reviewer subagent, and auto-fix loop. Use after code changes and before committing, pushing, or opening a PR.","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fsoftware-development\u002Frequesting-code-review\u002FSKILL.md",[205,206],{"categoryNo":141,"categoryName":142,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},[208,209,125,129,118,210,211,119,212,213,120,214,115,215,216,217,127,128,218,219],"code review","requesting code review","pipeline","static","fix","auto-fix","auto","loop","security scan","commit","reviewer","verification",{"skillNo":221,"name":222,"nameZh":6,"description":223,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":224,"categories":225,"keywords":226,"publishedAt":48},"01M71JF52HZT5VQXFVF9K2H76K","plan","Plan mode for Hermes — inspect context, write a markdown plan into the active workspace's `.hermes\u002Fplans\u002F` directory, and do not execute the work.","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fsoftware-development\u002Fplan\u002FSKILL.md",[],[222,227,228,132,133,134,229,230,117,115,123,127,231,232,233,234,235,236,237,238],"plan-mode","do","inspect","mode","work","markdown","active","directory","workspace","plan mode","write","implementation"]