Skip to main content

InScien

A local app working on top of your Zotero library to

  1. Extract references from papers and get citation counts
  2. Visualize citation connections
  3. Narrate papers and follow along efficiently (with a custom processing for technical papers and local offline TTS)

Requirements

  • Python 3.12 or newer
  • Zotero desktop with a local data directory (for read-only Zotero access)

Install and run

uvx inscien

or

pip install inscien
inscien

This starts the app on a loopback port and opens it in the browser. Zotero is found automatically. If not found, set its data directory on the Settings page.

How to

  1. In the sidebar, open a Zotero collection.
  2. Build a paper to add its references to the map. A build reads the reference list from the PDF and resolves it against OpenAlex, Crossref and Semantic Scholar.
  3. Narrate a paper to make its audiobook. The first narration downloads the voice weights (about 340 MB) once.

One job runs at a time. The job pane shows its steps and progress and can cancel it.

CLI

inscien build <paper.pdf>      # add a paper to the library
inscien narrate <paper.pdf>    # make a narration
inscien voices                 # list the voices
inscien sample am_echo af_heart   # one paragraph in those voices, to choose by ear
inscien --help

inscien narrate takes --voice (comma-separated for several tracks), --speed and --device cuda.

Storage

Everything InScien writes is under one directory, INSCIEN_HOME:

OS Default
Linux ~/.local/share/inscien
macOS ~/Library/Application Support/inscien
Windows %LOCALAPPDATA%\inscien
library/     built papers (paper.json, extract.json)
bundles/     finished narrations, and where each listen stopped
narrate/     narration queue and per-paper work files
import/      PDFs staged for a build
data/        settings, the Zotero snapshot, the current job
weights/     the voice weights

To move or back up your data, move or copy that directory.

Configuration

All optional, as environment variables.

Variable Effect
INSCIEN_HOME where data goes
ZOTERO_DATA_DIR the Zotero data directory, when it is not detected
INSCIEN_CONTACT_EMAIL sent to OpenAlex and Crossref for their faster polite pool
S2_API_KEY a Semantic Scholar API key, for higher rate limits
INSCIEN_TTS_DEVICE cuda to narrate on an NVIDIA GPU (see below)
INSCIEN_HIDDEN_COLLECTIONS top-level Zotero collections to leave out, comma-separated
INSCIEN_READONLY 1 refuses every change except listening progress

Narration runs on the CPU at a few times realtime. For a GPU, replace onnxruntime with onnxruntime-gpu in the same environment and set INSCIEN_TTS_DEVICE=cuda.

Development

Needs uv, and Node only to build the UI.

make setup      # .venv with the package editable, and the frontend deps
make backend    # API on :8000 with reload
make frontend   # UI dev server on :3000
make test
make wheel      # build the UI into the package, then the wheel

License

See LICENSE.

Metadata

Release files for inscien 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for inscien 0.5.1
File Size Uploaded
inscien-0.5.1.tar.gz 2.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for inscien 0.5.1
File Interpreter ABI Platform
inscien-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 4.2 MB

Release files / inscien-0.5.1.tar.gz

Download URL inscien-0.5.1.tar.gz
Size 2.8 MB
Tags Source
SHA-256 checksum
How to use checksums
729d37145cd617b41fc7d8151e68914418df015abb00dcc45eeac85ff88dc0ad
BLAKE2b-256 checksum
How to use checksums
c8e0e81d1a221154e188db56641e3e5e101f9babb436e31880d567d0943c9fb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / inscien-0.5.1-py3-none-any.whl

Download URL inscien-0.5.1-py3-none-any.whl
Size 1.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
a14ab3e7de8a2108a4e19ce9e57e6c1bde9918e3bfeacad78804d57a04451d71
BLAKE2b-256 checksum
How to use checksums
84ecbbc328dfb6bbcf97055ac8ed0fd9adcb8cd8ea57fe2cd0499c09a73697da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.5.1 This release

2 release files

0.5.0

1 release file

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page