Skip to main content

Booksmart CLI — a local, single-user front end over booksmart-core (embedded storage, no server).

Project description

booksmart

The Booksmart CLI — turn books into queryable knowledge, locally.

A single-user front end over booksmart-core: register PDFs/EPUBs, ingest them through the parsing → structure → profile → extraction → summaries → embeddings pipeline, and browse the results. Everything runs against an auto-migrated SQLite file and embedded Qdrant under ~/.booksmart/ — no Docker, no Postgres, no server.

Install

Not published to PyPI yet — install from the repo, which is private, so this needs an SSH key with access to it. uv clones the repo, resolves booksmart-core from the same checkout, and puts a booksmart command on your PATH:

$ uv tool install "git+ssh://git@github.com/dworznik/booksmart.git#subdirectory=packages/cli"

Over HTTPS instead, with gh auth login (or a repo-scoped token) supplying git credentials:

$ uv tool install "git+https://github.com/dworznik/booksmart.git#subdirectory=packages/cli"

Re-run with --force to pick up new commits. Once the first cli-v* tag ships, this becomes uv tool install booksmart, which pulls booksmart-core down as a dependency.

Quickstart

$ booksmart add ./clean-code.pdf --title "Clean Code" --author "Robert C. Martin"
$ booksmart ingest <book-id>
$ booksmart structure <book-id>
$ booksmart knowledge list <book-id>
$ booksmart search all "how do deep modules reduce complexity"

ingest calls an LLM and an embedding provider, so it needs credentials — ANTHROPIC_API_KEY and OPENAI_API_KEY by default. To drive the whole pipeline with no keys, no network and no cost, select the deterministic fake providers:

$ BOOKSMART_LLM_PROVIDER=fake BOOKSMART_EMBEDDING_PROVIDER=fake booksmart ingest <book-id>

Commands

add, ingest, books list/show/update, runs list/show, structure, profile, knowledge list/show, search.

Search

booksmart search <book-id|all> "<query>" ranks the chapters, sections and knowledge objects most similar to a natural-language query, over the embeddings an ingest produced. Restrict it with --type (repeatable: chapter, section, knowledge_object), cap it with --limit, and drop weak hits with --score-threshold (a cosine similarity, -11).

The query is embedded with the model the vector collection is locked to; if that is not the currently configured embedding model, search refuses rather than return plausible, silently wrong rankings (ADR 0001).

Configuration

Providers and locations come from BOOKSMART_* environment variables (e.g. BOOKSMART_LLM_PROVIDER, BOOKSMART_HOME). Set BOOKSMART_QDRANT_URL to use a Qdrant server instead of the embedded on-disk store.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

booksmart-0.1.0.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

booksmart-0.1.0-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file booksmart-0.1.0.tar.gz.

File metadata

  • Download URL: booksmart-0.1.0.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for booksmart-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a82434cd387cde635f6a9f2a56227a57929966a73cdc2f11ff80bb0bc67231a6
MD5 a3fed4edbbe0a0cc61003152fa1975cb
BLAKE2b-256 19d4e63b4af6ec56b2444152f7804f122f12472fe60264a8019cab53cadc5b36

See more details on using hashes here.

Provenance

The following attestation bundles were made for booksmart-0.1.0.tar.gz:

Publisher: publish.yml on dworznik/booksmart

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file booksmart-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: booksmart-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for booksmart-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e4c928cc550c1684526014da83edb4efbac299db01930269a98ab87aeed4da59
MD5 f5fee23198acb676784db160c9547aaf
BLAKE2b-256 10955f11ac427ee6d905446e5e322410df38826a1b050bc857a0ae4e022092ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for booksmart-0.1.0-py3-none-any.whl:

Publisher: publish.yml on dworznik/booksmart

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page