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.1.1
LicenseGPLv3
StackTauri · Python · 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.

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. Full-text search over 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.

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 — not someone else's SaaS.

AI is opt-in

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

Desktop today, browser later

The Tauri + React desktop app is available now. A browser-based UI for self-hosted deployments is on the roadmap — same library, another way in.

Four ways to work

One database whether you use the Tauri desktop app, terminal, HTTP API, or Claude via MCP — with a browser-based interface on the roadmap.

Desktop app

Tauri + React UI with library, graph, projects, search, tags, and in-app PDF reading. Spawns the FastAPI backend automatically.

CLI

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

REST API

FastAPI backend with OpenAPI docs — powers the desktop app and supports custom frontends.

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 the same Python backend. See the linxiv-gui-react README for environment variables and release builds.

1Clone the repository
git clone https://github.com/linxiv-dev/linXiv.git && cd linXiv
2Install dependencies
npm install && uv sync
3Launch the desktop app
npm run tauri:dev
  • Requires Node.js, Rust (for Tauri), Python 3.10+, and uv.
  • Optional: add GENAI_API_KEY_TAG_GEN (or Gemini/OpenAI keys in Settings) for AI features.
  • Production build: npm run build:all
  • CLI/API only (no desktop UI): uv sync --no-group gui && python -m api