Metadata-Version: 2.5
Name: scipaperlib
Version: 0.1.1
Summary: Local publication acquisition and evidence-preserving source search
Project-URL: Repository, https://github.com/matplo/scipaperlib
Project-URL: Issues, https://github.com/matplo/scipaperlib/issues
Author: matplo
Maintainer: matplo
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: beautifulsoup4<5,>=4.12
Requires-Dist: httpcore<1.1,>=1.0.9
Requires-Dist: httpx<0.29,>=0.28
Requires-Dist: pydantic<3,>=2.10
Requires-Dist: pyyaml<7,>=6
Requires-Dist: rich<15,>=13
Requires-Dist: textual<7,>=6
Requires-Dist: typer<1,>=0.16
Provides-Extra: dev
Requires-Dist: build<2,>=1; extra == 'dev'
Requires-Dist: pytest-asyncio<2,>=1; extra == 'dev'
Requires-Dist: pytest<10,>=8; extra == 'dev'
Requires-Dist: twine<8,>=6; extra == 'dev'
Provides-Extra: mcp
Requires-Dist: mcp<2,>=1.20; extra == 'mcp'
Provides-Extra: pdf
Requires-Dist: pypdf<7,>=5; extra == 'pdf'
Provides-Extra: tui
Description-Content-Type: text/markdown

# SciPaperlib

A local research library for collecting publications and retrieving inspectable, revision-bound evidence. No LLM, embedding service, or API key is required.

The distribution and Python import name are scipaperlib. Commands scipaperlib and spl are equivalent; spl-tui launches spl --tui.

    python -m pip install scipaperlib
    scipaperlib demo ./demo-library
    scipaperlib search --library ./demo-library --term mass --term "energy loss" --json
    scipaperlib tui --library ./demo-library

Libraries are selected by name: spl-tui --name "heavy ion papers" uses a registered location, or creates ~/.scipaperlib/heavy_ion_papers_scipaperlib after confirmation. With no name, the library is default, stored initially at ~/.scipaperlib/default_scipaperlib. Set SCIPAPERLIB_DATADIR to change the parent directory for new libraries.

spl --list shows known libraries. Register an existing directory with spl --add-library /path/to/library --name "heavy ion papers". The registry lives at ~/.scipaperlib/config.json; SCIPAPERLIB_CONFIG overrides that file path. Registered locations remain stable when the data directory changes. Use --library PATH for an explicit location instead of --name. Scripts can pass --init-library to create a missing library without prompting.

A fixed TUI activity panel shows progress and outcomes; CLI progress goes to stderr. The TUI prevents overlapping write operations and supports stopping imports after the current request.

Add papers from the TUI's paste area and remove a selected paper with confirmation. The CLI equivalent is spl remove PAPER_ID; removal archives files by default, while --delete-files permanently deletes them.

The Textual TUI is installed by default. Optional extras pdf and mcp add PDF extraction and the MCP server. The tui extra remains accepted for compatibility. See [the guide](docs/guide.md) for imports, provenance, recovery, and agent access.
