Set Up tidedra/zotero-arxiv-daily in 5 Easy Steps (2025)
Tired of manually checking arXiv every day? Learn how to set up zotero-arxiv-daily, a free GitHub Action, in 5 easy steps to automate your research workflow.
Dr. Alistair Finch
Computational researcher and productivity enthusiast, automating academic workflows one script at a time.
Keeping up with the torrent of new research on arXiv can feel like trying to drink from a firehose. Every day, dozens of papers relevant to your field appear, and manually sifting through them is a time-consuming chore. What if you could automate this entire process, having the latest, most relevant papers delivered directly to your Zotero library every morning?
That's exactly what tidedra/zotero-arxiv-daily
does. It’s a brilliant, free GitHub Action that acts as your personal research assistant. In this guide, we'll walk you through setting it up in just five simple steps. By the end, you'll have a fully automated system that saves you time and ensures you never miss a critical paper again.
What is zotero-arxiv-daily and Why Should You Care?
At its core, tidedra/zotero-arxiv-daily is a script powered by GitHub Actions—a free automation service built into GitHub. You don't need to run a server or even keep your computer on. Once configured, it automatically performs a search on arXiv every day based on keywords you provide. It then takes the results and adds them, complete with metadata and PDF attachments, into a specific collection in your Zotero library.
Still not convinced? Let's compare the manual grind with this automated workflow.
Manual vs. Automated arXiv Workflow
Feature | Manual arXiv Browsing | Using zotero-arxiv-daily |
---|---|---|
Time Commitment | Daily, 15-30 minutes | ~30-minute one-time setup |
Consistency | Easy to forget or skip days | Runs automatically every 24 hours |
Organization | Manually saving to Zotero, often messy | Automatically adds to a dedicated collection |
Discovery | Limited to what you remember to search | Systematically scans for your precise keywords |
Efficiency | Low, repetitive, and prone to distraction | Extremely high, set it and forget it |
By investing a little time upfront, you reclaim hours every month and build a more systematic approach to your literature review.
Before You Begin: Prerequisites
Don't worry, you don't need to be a coding wizard to get this working. All you need are three things:
- A GitHub account (it's free).
- A Zotero account (also free).
- About 30 minutes of focused time.
That's it! Let's get started.
Step 1: Fork the Repository on GitHub
First, we need to create your own personal copy of the project code. This is done by "forking" the repository.
- Navigate to the official repository page: https://github.com/tidedra/zotero-arxiv-daily.
- In the top-right corner of the page, you'll see a Fork button. Click it.
- GitHub might ask you where to fork the repository. Just select your personal account.
You now have a complete copy of the project under your own GitHub account. All our changes will be made here, so you don't have to worry about breaking the original.
Step 2: Create Your Zotero API Key & User ID
To allow the script to add items to your library, it needs permission. We grant this permission using a Zotero API key.
- Log in to your account on the Zotero website.
- Go to Settings > Feeds/API.
- Under "Private Keys," click the Create new private key button.
- Give your key a descriptive name, like
arXiv Daily Sync
. - This is the most important part: Under "Personal Library," ensure you check the box for "Allow write access." The script cannot add papers without this permission.
- Click Save Key.
Zotero will now show you your newly created API key. Copy this key and save it somewhere safe temporarily, like a text file. You will not be able to see it again!
On that same page (Settings > Feeds/API), look right above the keys section. You'll find your User ID for API calls. Copy that number as well.
Step 3: Add Secrets to Your GitHub Repository
Pasting your API key directly into a public file would be a major security risk. GitHub's "Secrets" provide a secure way to store sensitive information like this.
- Go back to your forked repository on GitHub (it should be at
https://github.com/YOUR-USERNAME/zotero-arxiv-daily
). - Click on the Settings tab near the top right.
- In the left sidebar, navigate to Secrets and variables > Actions.
- Click the New repository secret button.
- We need to create two secrets:
- First Secret: Name it
ZOTERO_API_KEY
. In the "Secret" box, paste the API key you copied from Zotero. Click Add secret. - Second Secret: Click New repository secret again. Name this one
ZOTERO_USER_ID
. In the "Secret" box, paste the User ID you copied from Zotero. Click Add secret.
- First Secret: Name it
Your secrets are now securely stored and accessible only to the GitHub Actions running in this repository.
Step 4: Configure Your Search Query
This is where you tell the script what papers you're interested in. We'll do this by editing the config.yaml
file.
- In your forked repository, go back to the Code tab.
- You'll see a list of files. Click on
config.yaml
. - Click the pencil icon (Edit this file) in the top-right of the file view.
You will see a few options you can change:
zotero_collection_name
: This is the Zotero collection where your papers will be saved. The default is "arXiv Daily." The script will create this collection for you if it doesn't already exist. You can change it to whatever you like (e.g., "ML Papers," "Daily Astro").arxiv_query
: This is the most important field. It uses arXiv's advanced search syntax. You can specify categories, title keywords, author names, and more.max_results
: The maximum number of papers to fetch each day. A good starting point is50
.
Crafting Your Perfect Query
The query syntax is powerful. Here are a few examples to get you started:
# Example 1: Papers in Computer Vision (cs.CV) with "transformer" in the title
arxiv_query: 'cat:cs.CV AND ti:transformer'# Example 2: Papers in two categories (AI and Machine Learning) with "graph neural network" in the abstract
arxiv_query: '(cat:cs.AI OR cat:cs.LG) AND abs:"graph neural network"'# Example 3: Papers by a specific author in the quantitative biology category
arxiv_query: 'cat:q-bio.* AND au:"Yoshua Bengio"'
Once you've edited the file to your liking, scroll to the bottom of the page, and click the green Commit changes button. You can just use the default commit message.
Step 5: Enable and Run the GitHub Action
The final step is to switch on the automation.
- In your repository, click the Actions tab.
- You'll likely see a yellow banner with a button that says "I understand my workflows, go ahead and enable them." Click it.
- The main workflow is called "arXiv Daily." It's scheduled to run automatically once a day. However, to test that everything is working, let's run it manually.
- In the left sidebar, click on the "arXiv Daily" workflow.
- You'll see a message "This workflow has a workflow_dispatch event trigger." To the right, click the Run workflow dropdown, and then click the green Run workflow button.
You can now watch the action run in real-time. Click on the run that just started. If all goes well, you'll see green checkmarks next to each step. If something fails, you can click on the failed job to see the logs, which usually gives a clear indication of the problem (e.g., a typo in a secret name or a syntax error in the config file).
After a successful run, open Zotero. You should see your new collection, populated with the latest papers from arXiv that match your query! Congratulations!
Troubleshooting & FAQ
- The action failed. What do I do?
- Check the logs in the Actions tab. The most common errors are: incorrect
ZOTERO_API_KEY
orZOTERO_USER_ID
, forgetting to give the key "write access," or a syntax error in yourarxiv_query
within theconfig.yaml
file. - Can I have multiple, different daily searches?
- The simplest way is to fork the repository a second time, give the new fork a different name in its GitHub settings, and configure its
config.yaml
with your second query. This keeps the workflows separate and easy to manage. - Papers aren't showing up, but the action succeeded.
- Double-check that your query isn't too narrow. Try a broader search term temporarily to see if it pulls *any* papers. Also, ensure your Zotero client has synced with the Zotero servers.
Key Takeaways: Your New Research Superpower
You've just built a powerful, automated system that fundamentally changes how you stay current with academic literature. Let's recap what you've accomplished:
- You automated a tedious daily task, freeing up your time and mental energy for actual research.
- You created a systematic discovery pipeline, ensuring you don't miss important papers due to a busy schedule.
- You took control of your information flow, curating a personalized feed of research delivered directly to your reference manager.
Now, let your new research assistant work for you. Tweak your query over time, and enjoy being one of the most well-read researchers in your field, with minimal daily effort.