linXivlinXiv
linXiv — a self-hosted research paper manager

Research you can self-host

Self-host your research, easily.

Discover, manage, and visualize academic papers from arXiv — run your library on hardware you control, with a modern desktop app, optional AI, Obsidian integration, and an interactive network graph.

Version0.3.2
LicenseGPLv3
StackTauri · Rust · React

Knowledge graph

Live demo — drag nodes, tune forces, filter by tag

Click a paper · Ctrl/Cmd+click to multi-select

Node Legend

- Paper
- Author
- Tag

Same D3 force layout and Cytoscape renderer as the desktop app — sample papers, authors, and tags

The problem

PDFs scattered across folders. Spreadsheets for reading lists. SaaS tools that lock your library to a vendor you don't control. Browser tabs for every preprint you want to revisit.

You juggle different research threads at once. A thesis chapter, a grant proposal, a side project, and many of the same papers belong in more than one. Without a single place to organise them, it is hard to remember which project a note belongs to or why you saved something in the first place.

The linXiv way

One library you can host yourself: search arXiv and beyond, organise papers into projects, and keep the same paper in several threads without losing context. A Tauri desktop app with a React UI — graph, library, tags, in-app PDFs, and project-scoped notes. Optional AI and Obsidian export — only when you opt in.

  • Projects with per-project notes — one paper, many contexts
  • SQLite database with version tracking
  • PDF upload with metadata extraction
  • Export and share projects as .lxproj archives

Everything researchers need

A one-stop shop for literature management — from discovery to reading notes, on infrastructure you control.

Search & save

Search arXiv, OpenAlex, or your local library. Resolve any DOI. Keep versioned metadata in your own SQLite database.

Projects & notes

Group papers by research thread. Attach reading notes scoped to each project — one paper can belong to many contexts. Notes render as Markdown, with MathJax math.

Knowledge graph

Explore papers, authors, and tags in an interactive force-directed graph with live physics controls.

Read in-app

Embedded PDF viewer and rich paper detail views. Highlight annotations render as continuous spans, links stay clickable, and full-text search covers downloaded TeX source.

Import & export

Bring in PDFs, BibTeX, and .lxproj archives. Export projects to Obsidian, BibTeX, or shareable .lxproj bundles.

Built to self-host

Run linXiv on your laptop, lab machine, or server. Your PDFs and metadata stay under your control — not a vendor's cloud.

Peer-to-peer sharing

Share a project directly with another person over an end-to-end encrypted connection, without running a relay server or account. Edits merge instead of overwriting.

Reading lists

Track papers by reading status and work through a queue, separate from your project structure.

Home feed

Point the home page at an RSS/Atom feed and save papers straight from it — arXiv IDs are picked up automatically.

Your research, your infrastructure

linXiv makes it straightforward to run a full literature library on hardware you own — a personal laptop, a lab workstation, or a server your group controls. Papers, notes, and tags live in SQLite; PDFs stay where you put them.

You run it

No mandatory hosted service. Install once and keep your library on infrastructure you choose.

AI is opt-in

Tag suggestions, summaries, and related-paper discovery will use your own Gemini or OpenAI key, only when you enable them.

Share it, still yours

Share a project directly with another person over an encrypted peer-to-peer connection, without running a relay server or account.

Three ways to work

One database whether you use the Tauri desktop app, terminal, or Claude via MCP.

Desktop app

Tauri + React UI with library, graph, projects, search, tags, and in-app PDF reading. The Rust backend runs in-process — no local server, no Python.

CLI

Search, fetch, list, tag, and manage papers from the terminal. Install to PATH from Settings, or use the bundled sidecar.

MCP for Claude

Model Context Protocol server for AI-assisted literature workflows. One-click setup for Claude Desktop, Cursor, and Windsurf.

terminal
$ linxiv search "attention is all you need" --max 5
$ linxiv fetch 2204.12985
$ linxiv list --limit 20 --category cs.LG

Build

The desktop app is a Tauri + React shell around a native Rust backend that runs in-process — no Python, no local server. See the linXiv README for environment variables and release builds.

Already have Python? Skip the build:
pip install linxiv

Ships prebuilt binaries — pip is just the installer, nothing in linXiv runs on Python.

1Clone the repository
git clone --recurse-submodules https://github.com/linxiv-dev/linXiv.git && cd linXiv
2Install dependencies
npm install && bash scripts/fetch_pdfium.sh && bash scripts/stage_rust_bins.sh
3Launch the desktop app
npm run tauri dev
  • Requires the Rust toolchain (stable) and Node.js 20.16+ (or 22.3+) — no Python.
  • Optional: add GENAI_API_KEY_TAG_GEN (or Gemini/OpenAI keys in Settings) for AI features.
  • Production build: npm run build:all
  • CLI only (no desktop UI): cargo run -p linxiv-cli -- --help (from src-tauri/)