[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M74F2WA8JJR0XMCJSJB588FN":3,"skill-same:01M74F2WA8JJR0XMCJSJB588FN":62},{"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":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":13,"repositoryHtmlUrl":39,"repositoryHomepageUrl":6,"ownerHtmlUrl":40,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":41,"install":42,"resources":55},"01M74F2WA8JJR0XMCJSJB588FN","arxiv",null,"Search arXiv papers by keyword, author, category, or ID.","LyrikNilpferd71\u002FHermes-Backup","LyrikNilpferd71","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F187173780?v=4","01M727S8GPB77P0S9ECRRMZT58","01M727S8HF63B0MD53F496MK1V",0,"MIT","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-05-16T14-01-11+0200\u002Fskills\u002Fresearch\u002Farxiv\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: arxiv\ndescription: \"Search arXiv papers by keyword, author, category, or ID.\"\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":23,"license":14,"version":24,"metadata":25,"description":7},"Hermes Agent","1.0.0",{"hermes":26},{"tags":27,"related_skills":34},[28,29,30,31,32,33],"Research","Arxiv","Papers","Academic","Science","API",[35],"ocr-and-documents","main","404fd33aabef3b6bc1cc913117ba2160ade62625","snapshots\u002F2026-05-16T14-01-11+0200\u002Fskills\u002Fresearch\u002Farxiv","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71","2026-11-08 20:00:57",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add LyrikNilpferd71\u002FHermes-Backup --skill arxiv",{"tool":48,"command":49},"bunx","bunx skills add LyrikNilpferd71\u002FHermes-Backup --skill arxiv",{"tool":51,"command":52},"pnpm","pnpm dlx skills add LyrikNilpferd71\u002FHermes-Backup --skill arxiv","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-05-16T14-01-11+0200\u002Fskills\u002Fresearch\u002Farxiv\u002FSKILL.md",true,[56],{"path":57,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":60,"sourceHtmlUrl":61},"scripts\u002Fsearch_arxiv.py","SCRIPT","脚本",4272,"https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-05-16T14-01-11+0200\u002Fskills\u002Fresearch\u002Farxiv\u002Fscripts\u002Fsearch_arxiv.py",[63,71,78,85,92,99],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":70},"01M76BBCCNA7WQ82Q8QNZH8PBK","writing-plans","Write implementation plans: bite-sized tasks, paths, code.","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-11-08T13-00-51+0100\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[],[],"2026-11-12 13:55:43",{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":70},"01M76BB8YS41CA3NKW0YMSSB88","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-11-08T13-00-51+0100\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":70},"01M76BB680FPNT998E1GM2QW10","subagent-driven-development","Execute plans via delegate_task subagents (2-stage review).","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-11-08T13-00-51+0100\u002Fskills\u002Fsoftware-development\u002Fsubagent-driven-development\u002FSKILL.md",[],[],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":70},"01M76BB3C4ZB9S4RWPMM8MX0YB","plan","Write a markdown plan to .hermes\u002Fplans\u002F; no execution.","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-11-08T13-00-51+0100\u002Fskills\u002Fsoftware-development\u002Fplan\u002FSKILL.md",[],[],{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":70},"01M76BB0NK28KMP51YDB5R3EXA","hermes-agent-skill-authoring","Author in-repo SKILL.md files: frontmatter and structure.","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-11-08T13-00-51+0100\u002Fskills\u002Fsoftware-development\u002Fhermes-agent-skill-authoring\u002FSKILL.md",[],[],{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":70},"01M76BAYV58H0CKNSTZE3ZH4NY","debugging-hermes-tui-commands","Debug Hermes TUI slash commands: Python, gateway, Ink UI.","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-11-08T13-00-51+0100\u002Fskills\u002Fsoftware-development\u002Fdebugging-hermes-tui-commands\u002FSKILL.md",[],[]]