Skip to main content

Keyboard-first terminal UI for arXiv digest triage and live arXiv search

Project description

arXiv Subscription Viewer

arXiv Subscription Viewer

Triage arXiv papers from your terminal.
History mode or live API search · keyboard-first review · optional citation and LLM enrichment

Screenshot

CI/CD PyPI version Python versions License: MIT

🚀 Getting Started

Use whichever entry path matches how you already follow papers:

  • history/ workflow: review local daily digests with persistent date navigation, bookmarks, notes, and collections.
  • Live arXiv search: start directly from the API when you want the newest matching papers without preparing local files first.
# Confirm Python support
python3.13 --version

# Install as a CLI tool
uv tool install arxiv-subscription-viewer
# or: python3.13 -m pip install --user arxiv-subscription-viewer

# Optional faster fuzzy matching
uv tool install "arxiv-subscription-viewer[fuzzy]"

# Check environment & config health
arxiv-viewer doctor

# Search arXiv API directly
arxiv-viewer search --category cs.AI

# Search by topic
arxiv-viewer search --query "diffusion transformer" --field title

# Paginate through results (instead of collecting the newest day)
arxiv-viewer search --query "attention" --mode page --max-results 100

# Browse from a local history/ archive (see docs/history-mode.md)
arxiv-viewer browse

# List local history dates
arxiv-viewer dates

# Show version
arxiv-viewer --version

# Print config file path
arxiv-viewer config-path

# Module entrypoint, equivalent to arxiv-viewer
python -m arxiv_browser --version

Requires Python 3.13+ · Press ? in-app for help · Ctrl+p opens commands

Global options: --version · --debug (log to file) · --ascii (ASCII-only icons) · --color auto|always|never · --no-color · --theme {monokai|catppuccin-mocha|solarized-dark|solarized-light|high-contrast}

Debug log paths: ~/.config/arxiv-browser/debug.log (Linux) · ~/Library/Application Support/arxiv-browser/debug.log (macOS) · %APPDATA%/arxiv-browser/debug.log (Windows)

🧭 Choose A Workflow

history/ archive

Run the viewer from the directory that contains your history/ folder:

mkdir -p ~/research/arxiv/history
cd ~/research/arxiv
# Save a digest as history/2026-02-13.txt
arxiv-viewer

This path is best when you review daily digests in order and want persistent local state.

Live arXiv search

Use the API-first path when you want to start from current arXiv results:

arxiv-viewer search --category cs.AI
arxiv-viewer search --query "diffusion transformer" --field title

If something looks off, run arxiv-viewer doctor to check config, history discovery, CLI setup, and environment assumptions.

✨ Highlights

Feature Key
🔍 Fuzzy search with filters (cat:cs.AI, tag:, unread, starred) /
🤖 AI summaries, chat & auto-tag via any LLM CLI (Claude, Copilot, llm, …) Ctrl+s / C / Ctrl+g
📊 Citation graph and recommendations via Semantic Scholar G / R
🔥 HuggingFace trending — upvotes, keywords, GitHub links Ctrl+h
🏷️ Tags, notes, stars — organize your reading t / n / x
📁 Collections — curate reading lists Ctrl+k
📥 Export — BibTeX, Markdown, RIS, CSV, PDF download/preview E / d / F
🎯 Relevance scoring — LLM scores papers against your interests L
📅 History mode — navigate daily email digests with [ / ]
⌨️ Command palette — quick access to all commands Ctrl+p
🎨 4 themes — Monokai, Catppuccin, Solarized, High Contrast Ctrl+t

⌨️ Key Bindings

Key Action Key Action
/ Search o Open in browser
A Search arXiv API P Open PDF
j / k Navigate d Download PDF
Space Select F Preview PDF
s Cycle sort E Export menu
r Toggle read c Copy to clipboard
x Toggle star Ctrl+s AI summary
n Notes C Chat with paper
p Abstract preview L Relevance score
t Tags Ctrl+p Command palette
V Check versions G Citation graph
Ctrl+b Save bookmark R Recommendations
m / ' Set / jump to mark 1-9 Jump to bookmark
Ctrl+k Collections w / W Watch list
Ctrl+d Detail pane sections Ctrl+g Auto-tag (LLM)
v Detail mode Ctrl+h HuggingFace trending
Ctrl+r Mark visible as read Ctrl+Shift+b Remove bookmark
Ctrl+e Toggle S2 / Exit API mode
? Help / shortcuts

Marks

Press m followed by a letter (az) to set a named mark at the current paper. Press ' followed by that letter to jump back to it. Marks persist within a session, making it easy to navigate between papers you're comparing or revisiting.

⚙️ Configuration

Config lives at ~/.config/arxiv-browser/config.json (Linux), ~/Library/Application Support/arxiv-browser/config.json (macOS), or %APPDATA%/arxiv-browser/config.json (Windows).

If you want the best documentation entry point for your context:

See the full documentation for:

🐚 Shell Completions

Enable tab completion for subcommands and flags:

# Bash (add to ~/.bashrc)
eval "$(arxiv-viewer completions bash)"

# Zsh (add to ~/.zshrc)
eval "$(arxiv-viewer completions zsh)"

# Fish (add to ~/.config/fish/config.fish)
arxiv-viewer completions fish | source

🔄 Upgrade / Uninstall

uv tool upgrade arxiv-subscription-viewer
uv tool uninstall arxiv-subscription-viewer

# pip-installed users
python3.13 -m pip install --user --upgrade arxiv-subscription-viewer
python3.13 -m pip uninstall arxiv-subscription-viewer

🛠️ Development

git clone https://github.com/NicolasSchuler/arxiv-subscription-viewer.git
cd arxiv-subscription-viewer
uv python install 3.13
uv sync --locked
pre-commit install
just check   # docs drift + lint + typecheck + tests
just quality # full local quality suite

For contributor-oriented architecture and import-boundary guidance, start with docs/architecture.md.

📄 License

MIT — Nicolas Sebastian Schuler

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arxiv_subscription_viewer-0.1.8.tar.gz (2.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arxiv_subscription_viewer-0.1.8-py3-none-any.whl (255.3 kB view details)

Uploaded Python 3

File details

Details for the file arxiv_subscription_viewer-0.1.8.tar.gz.

File metadata

File hashes

Hashes for arxiv_subscription_viewer-0.1.8.tar.gz
Algorithm Hash digest
SHA256 aa58c964febfc640e28d88fff12e26cc0f6abc4bd8cf4028ad09396f8a5c7135
MD5 5abe674c6f486d17d3a4b491527a082f
BLAKE2b-256 0b68c34b9a3bfc4d427bf388cb757b75b69244b0b80bb2951ef0b80a444fad51

See more details on using hashes here.

Provenance

The following attestation bundles were made for arxiv_subscription_viewer-0.1.8.tar.gz:

Publisher: ci-cd.yml on NicolasSchuler/arxiv-subscription-viewer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file arxiv_subscription_viewer-0.1.8-py3-none-any.whl.

File metadata

File hashes

Hashes for arxiv_subscription_viewer-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 7af7d2b964042f526c7b73cf0995763fa24604a576ab388aebbeacdb488c08a5
MD5 fc3eb4cff01bb972ce38ad1c1567036a
BLAKE2b-256 b1d868132cf8354be8befe17b85329562850c058c956ed8d4af8ea2e377ae897

See more details on using hashes here.

Provenance

The following attestation bundles were made for arxiv_subscription_viewer-0.1.8-py3-none-any.whl:

Publisher: ci-cd.yml on NicolasSchuler/arxiv-subscription-viewer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page