.claude/skills/arxiv-monitor/SKILL.md
Scheduled ArXiv paper monitor. Uses CronCreate to search configured keywords every 6 hours, deduplicates via MemoryRecord, and stores summaries in named memory for morning briefing integration.
npx skillsauth add oimiragieo/agent-studio arxiv-monitorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Polls the ArXiv API every 6 hours for papers matching configured keywords. Deduplicates against previously seen papers, stores new summaries in named memory, and integrates with the morning briefing loop.
Set ARXIV_KEYWORDS in .env:
ARXIV_KEYWORDS=multi-agent systems,LLM reasoning,autonomous agents,RAG,tool use
Start the monitor loop:
/loop 6h Skill({ skill: 'arxiv-monitor' })
Or via CronCreate for programmatic control:
CronCreate({
schedule: '0 */6 * * *',
task: "Invoke Skill({ skill: 'arxiv-monitor' }) to fetch new ArXiv papers",
});
const keywords = (process.env.ARXIV_KEYWORDS || 'multi-agent systems,autonomous agents')
.split(',')
.map(k => k.trim());
// Load previously seen paper IDs from memory
const seenRaw = await readMemory('arxiv-seen-ids');
const seenIds = new Set(seenRaw ? JSON.parse(seenRaw) : []);
Use Bash to query the ArXiv API (no authentication required):
# Search for papers from last 7 days matching a keyword
ENCODED=$(python3 -c "import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1]))" "$KEYWORD")
curl -s "https://export.arxiv.org/api/query?search_query=all:${ENCODED}&sortBy=submittedDate&sortOrder=descending&max_results=10"
Or use the HuggingFace MCP paper_search tool if available:
// Via mcp__claude_ai_Hugging_Face__paper_search if available
// Falls back to curl-based ArXiv API otherwise
const newPapers = [];
for (const paper of fetchedPapers) {
if (seenIds.has(paper.id)) continue; // Skip already processed
seenIds.add(paper.id);
newPapers.push({
id: paper.id,
title: paper.title,
authors: paper.authors.slice(0, 3).join(', '),
summary: paper.summary.slice(0, 300),
published: paper.published,
url: paper.url,
keyword: keyword,
});
}
// Persist seen IDs via named memory (cap at 1000 to prevent unbounded growth)
const seenArr = [...seenIds].slice(-1000);
await writeMemory('arxiv-seen-ids', JSON.stringify(seenArr));
if (newPapers.length > 0) {
const digest = newPapers
.map(
p =>
`## ${p.title}\n**Authors:** ${p.authors}\n**Keyword:** ${p.keyword}\n**Published:** ${p.published}\n${p.summary}...\n[Read →](${p.url})\n`
)
.join('\n---\n');
// Append to named memory digest
const digestPath = '.claude/context/memory/named/arxiv-digest.md';
const existing = fs.existsSync(digestPath) ? fs.readFileSync(digestPath, 'utf8') : '';
fs.writeFileSync(
'.claude/context/memory/named/arxiv-digest.md',
`${existing}\n\n## ArXiv Update — ${new Date().toISOString().slice(0, 10)}\n\n${digest}`
);
}
The morning briefing loop reads arxiv-digest.md for recent papers:
/loop at 8:00am Read .claude/context/memory/named/arxiv-digest.md and issues.md. Summarize: (1) top 3 new papers relevant to agent-studio, (2) technical debt, (3) top 2 tasks for today.
| Variable | Default | Description |
| --------------------- | --------------------- | -------------------------------- |
| ARXIV_KEYWORDS | multi-agent systems | Comma-separated search keywords |
| ARXIV_MAX_RESULTS | 10 | Max papers per keyword per run |
| ARXIV_LOOKBACK_DAYS | 7 | Days to look back for new papers |
writeMemory('arxiv-seen-ids', ...) (named memory API)await writeMemory('arxiv-seen-ids', '[]')scheduled-tasks — CronCreate API for scheduling loopsexa-monitor — Exa web search companion monitorheartbeat — Start all 7 heartbeat loops including this onememory-search — Search the arxiv-digest for specific paperstools
Comprehensive biosignal processing toolkit for analyzing physiological data including ECG, EEG, EDA, RSP, PPG, EMG, and EOG signals. Use this skill when processing cardiovascular signals, brain activity, electrodermal responses, respiratory patterns, muscle activity, or eye movements. Applicable for heart rate variability analysis, event-related potentials, complexity measures, autonomic nervous system assessment, psychophysiology research, and multi-modal physiological signal integration.
tools
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
data-ai
Molecular featurization for ML (100+ featurizers). ECFP, MACCS, descriptors, pretrained models (ChemBERTa), convert SMILES to features, for QSAR and molecular ML.
development
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.