whatisgithub

What is arxiv-sanity-preserver?

karpathy/arxiv-sanity-preserver — explained in plain English

Analysis updated 2026-06-26

5,678PythonAudience · researcherComplexity · 3/5Setup · hard

In one sentence

Arxiv Sanity Preserver is a web app by AI researcher Andrej Karpathy that helps you search, filter, and get personalized recommendations from the daily flood of new machine learning papers posted on Arxiv.

Mindmap

mindmap
  root((repo))
    What it does
      Fetches Arxiv papers
      Computes paper similarity
      Personal recommendations
      Social interest signals
    Tech Stack
      Python
      Flask
      TF-IDF vectors
    Use Cases
      ML paper discovery
      Personal reading list
      Similar paper search
    Audience
      ML researchers
      AI practitioners
    Notes
      Superseded by arxiv-sanity-lite
      Hours to index 25k papers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Find machine learning papers similar to a paper you already know and like, ranked by content similarity.

USE CASE 2

Build a personal reading list of saved papers and get recommendations based on what you have liked before.

USE CASE 3

Search the Arxiv ML paper archive by keyword with a filterable web interface instead of the default Arxiv site.

What is it built with?

PythonFlask

How does it compare?

karpathy/arxiv-sanity-preserverpython-websockets/websocketsagiresearch/aios
Stars5,6785,6775,676
LanguagePythonPythonPython
Setup difficultyhardeasyhard
Complexity3/52/55/5
Audienceresearcherdeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Building the initial paper index requires running multiple scripts in sequence and takes several hours, the author recommends the simpler arxiv-sanity-lite rewrite for new users.

License terms are not described in the explanation.

So what is it?

Arxiv is a website where researchers post scientific papers before they go through formal publishing, and it receives hundreds of new submissions every day across many fields. Arxiv Sanity Preserver is a web application built by AI researcher Andrej Karpathy to make that flood of papers easier to navigate, particularly for machine learning. The application works by regularly fetching new paper listings from Arxiv, downloading the PDFs, extracting the text, and converting each paper into a numerical representation based on the words it contains. Those representations allow the system to calculate how similar any two papers are to each other. The result is a searchable, filterable interface where you can find papers by keyword, sort results by similarity to a paper you already know, see which papers are currently popular, and save papers to a personal reading list. A personalized recommendation system learns from papers you have liked and surfaces other papers it thinks you would find relevant. Running your own instance requires setting up a pipeline of scripts that fetch, download, parse, and index papers. This is not a one-click deployment, the README walks through each script in sequence and notes that the process takes several hours on a machine with 25,000 papers. The web interface is built with Flask, and a separate script can optionally pull Twitter mentions of papers to gauge social interest. The author notes in the README that this original version has been superseded by a rewrite called arxiv-sanity-lite, which is simpler, more reliable, and easier to run. The newer version also supports email digests of new relevant papers and multiple topic tags per account. New users are pointed toward that project instead. The original site was running live and serving over 25,000 papers from machine learning categories at the time the README was last updated.

Copy-paste prompts

Prompt 1
I want to run my own arxiv-sanity instance. Walk me through every script I need to run in order to fetch, parse, and index 25,000 machine learning papers.
Prompt 2
How does arxiv-sanity-preserver compute similarity between papers? Explain the vector representation it uses so I can adapt the idea for my own document search tool.
Prompt 3
My arxiv-sanity index is built. How do I start the Flask web server so I can browse papers and save them to a reading list?
Prompt 4
Show me how to modify the recommendation system in arxiv-sanity to also factor in Twitter mentions of a paper when ranking results.

Frequently asked questions

What is arxiv-sanity-preserver?

Arxiv Sanity Preserver is a web app by AI researcher Andrej Karpathy that helps you search, filter, and get personalized recommendations from the daily flood of new machine learning papers posted on Arxiv.

What language is arxiv-sanity-preserver written in?

Mainly Python. The stack also includes Python, Flask.

What license does arxiv-sanity-preserver use?

License terms are not described in the explanation.

How hard is arxiv-sanity-preserver to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is arxiv-sanity-preserver for?

Mainly researcher.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.