Skip to main content

InScien

A local app on top of your Zotero library that does four things:

  1. Extracts the references from your papers and gets their citation counts
  2. Maps the citation connections
  3. Narrates papers with a player that follows along in the PDF, using local offline TTS
  4. Searches the papers and answers questions with quotes from them (optional)

Requirements

  • Python 3.12 or 3.13
  • Zotero desktop with a local data directory (for read-only Zotero access)
  • For Ask: a local Ollama

Install and run

uvx --python 3.12 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 it is not found, set its data directory on the Settings page.

Search and Ask come with the search extra:

uvx --python 3.12 --from "inscien[search]" inscien

or

pip install "inscien[search]"

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.
  4. Index the papers for search with Update index in the search settings, or inscien index. The first index downloads the search models once.
  5. Search from the search bar. Ask and the LLM rerank appear while Ollama is running.

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 index                  # build or update the search index
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
search/      the search index and its models

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_SEARCH_DEVICE cuda to index and rerank on an NVIDIA GPU (see below)
INSCIEN_LLM_MODEL the Ollama model for Ask and the rerank (qwen2.5:7b-instruct)
INSCIEN_LLM_URL where Ollama answers (http://127.0.0.1:11434)
INSCIEN_HIDDEN_COLLECTIONS top-level Zotero collections to leave out, comma-separated
INSCIEN_READONLY 1 refuses every change except listening progress

Narration and search run on the CPU by default, narration at a few times realtime. To use an NVIDIA GPU:

  1. Replace onnxruntime with onnxruntime-gpu in the same environment.
  2. Set INSCIEN_TTS_DEVICE=cuda for narration and INSCIEN_SEARCH_DEVICE=cuda for search.

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.6.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.6.1
File Size Uploaded Provenance Actions
inscien-0.6.1.tar.gz 3.0 MB Without provenance Details for inscien-0.6.1.tar.gz

Built distribution (wheel)

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

Total release size: 4.5 MB

Release files / inscien-0.6.1.tar.gz

Download URL inscien-0.6.1.tar.gz
Size 3.0 MB
Tags Source
SHA-256 checksum
How to use checksums
698480b7b3cfa0bf323d76eee5aa330536cff69b45c8eca8834d030d823aa1a1
BLAKE2b-256 checksum
How to use checksums
0d7eba275a66c5f6145232a231ea2a9e1ee3de2d5dac7c2556fdc8688a21ba9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

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

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

Security for inscien 0.6.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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