InScien
A local app working on top of your Zotero library to
- Extract references from papers and get citation counts
- Visualize citation connections
- 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
- In the sidebar, open a Zotero collection.
- 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.
- 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)
| File | Size | Uploaded | |
|---|---|---|---|
| inscien-0.5.1.tar.gz | 2.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|