Productivity

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.

D

Dr. Alistair Finch

Computational researcher and productivity enthusiast, automating academic workflows one script at a time.

7 min read3 views

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

FeatureManual arXiv BrowsingUsing zotero-arxiv-daily
Time CommitmentDaily, 15-30 minutes~30-minute one-time setup
ConsistencyEasy to forget or skip daysRuns automatically every 24 hours
OrganizationManually saving to Zotero, often messyAutomatically adds to a dedicated collection
DiscoveryLimited to what you remember to searchSystematically scans for your precise keywords
EfficiencyLow, repetitive, and prone to distractionExtremely 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:

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.

  1. Navigate to the official repository page: https://github.com/tidedra/zotero-arxiv-daily.
  2. In the top-right corner of the page, you'll see a Fork button. Click it.
  3. 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.

  1. Log in to your account on the Zotero website.
  2. Go to Settings > Feeds/API.
  3. Under "Private Keys," click the Create new private key button.
  4. Give your key a descriptive name, like arXiv Daily Sync.
  5. 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.
  6. 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.

  1. Go back to your forked repository on GitHub (it should be at https://github.com/YOUR-USERNAME/zotero-arxiv-daily).
  2. Click on the Settings tab near the top right.
  3. In the left sidebar, navigate to Secrets and variables > Actions.
  4. Click the New repository secret button.
  5. 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.

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.

  1. In your forked repository, go back to the Code tab.
  2. You'll see a list of files. Click on config.yaml.
  3. 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 is 50.

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.

  1. In your repository, click the Actions tab.
  2. You'll likely see a yellow banner with a button that says "I understand my workflows, go ahead and enable them." Click it.
  3. 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.
  4. In the left sidebar, click on the "arXiv Daily" workflow.
  5. 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 or ZOTERO_USER_ID, forgetting to give the key "write access," or a syntax error in your arxiv_query within the config.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.