Skip to main content

Personal library manager for PDFs using GitHub Release assets

Project description

shelfctl

Personal library manager for PDFs and books using GitHub Release assets as storage.

Install

pip install shelfctl

This installs the shelfctl binary for your platform. No Python runtime is needed at execution time.

Usage

# Launch interactive TUI
shelfctl

# Add a book to a shelf
shelfctl shelve ~/book.pdf --shelf programming

# Browse your library
shelfctl browse

# Generate HTML index
shelfctl index

# Check your setup
shelfctl doctor

# Search across shelves
shelfctl search "neural networks"

What is shelfctl?

shelfctl organizes documents (PDFs, EPUBs) into topic-based "shelves" backed by GitHub repositories:

  • Metadata lives in version-controlled catalog.yml files
  • Files are stored as GitHub Release assets (free, unlimited storage for public repos)
  • Downloads are on-demand per file (no need to clone entire repos)

Other Installation Methods

Method Command
Homebrew brew install blackwell-systems/tap/shelfctl
Scoop (Windows) scoop install shelfctl
winget (Windows) winget install BlackwellSystems.shelfctl
Go install go install github.com/blackwell-systems/shelfctl/cmd/shelfctl@latest
Install script curl -fsSL https://raw.githubusercontent.com/blackwell-systems/shelfctl/main/install.sh | sh
APT/RPM Download .deb or .rpm from Releases

Supported Platforms

Platform Architecture
macOS arm64 (Apple Silicon), x86_64 (Intel)
Linux arm64, x86_64
Windows arm64, x86_64

Links

License

MIT

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

shelfctl-0.4.12-py3-none-win_arm64.whl (4.7 MB view details)

Uploaded Python 3Windows ARM64

shelfctl-0.4.12-py3-none-win_amd64.whl (5.2 MB view details)

Uploaded Python 3Windows x86-64

shelfctl-0.4.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

shelfctl-0.4.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

shelfctl-0.4.12-py3-none-macosx_11_0_x86_64.whl (5.1 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

shelfctl-0.4.12-py3-none-macosx_11_0_arm64.whl (4.8 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file shelfctl-0.4.12-py3-none-win_arm64.whl.

File metadata

  • Download URL: shelfctl-0.4.12-py3-none-win_arm64.whl
  • Upload date:
  • Size: 4.7 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for shelfctl-0.4.12-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 8f0e1b79176d3ad68c8ed735717e06de97132a52ec82be6bb101a14f27711679
MD5 406271b0ea29919a300a47291b4b1bf1
BLAKE2b-256 37614e5a61fc34b88b6e774a37f6c9a498d7699c9594bad4c61f29b00a41de78

See more details on using hashes here.

File details

Details for the file shelfctl-0.4.12-py3-none-win_amd64.whl.

File metadata

  • Download URL: shelfctl-0.4.12-py3-none-win_amd64.whl
  • Upload date:
  • Size: 5.2 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for shelfctl-0.4.12-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 9b3fbd5af35a20abd6b6d1f9fafedb0445c2cf6deacdb215274762abfabd072b
MD5 d242fe288196ebf17142da17e304da06
BLAKE2b-256 a069d0da63e797af1befb5c863456db804c1e8cc70555b5d6323c50583516bb0

See more details on using hashes here.

File details

Details for the file shelfctl-0.4.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shelfctl-0.4.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e37e2bb30d76ffe5ea11a0344f538e491130c4d5b6c659fdbab5cd0d3db4bc79
MD5 a0262f9f00174d6fd7ccbdce09fe88a0
BLAKE2b-256 8094c5d3779e5eae8b255fbe6c6ab3449a805d1ba397d6dca0823d9289158dd6

See more details on using hashes here.

File details

Details for the file shelfctl-0.4.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for shelfctl-0.4.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8971414e3cb77674e46efc75f037d145d0a7956b26b4ca6feab44a67e9adebf6
MD5 492b9b5abb71f9f4a2a4717e05925828
BLAKE2b-256 de6c49864951199bf99b4d034f618bc31351214c78bfc0c4c165692c59cac747

See more details on using hashes here.

File details

Details for the file shelfctl-0.4.12-py3-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for shelfctl-0.4.12-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e530a52b483ad80559dc3778afbb205d026f85072026ab4d0112b5521beeed13
MD5 646742b481038ef4063ad07aa742f1c9
BLAKE2b-256 4fa1e8a150c796874af44c51fe78394e8ba904a7211a3d68abbb0931f0e18c9b

See more details on using hashes here.

File details

Details for the file shelfctl-0.4.12-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shelfctl-0.4.12-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1eed57a6b9442cf62edefc63670c15700bb7be1d5dfb4f4352a5c436b0e22701
MD5 5a87a6ccb127f76942aaacb6289a0aa0
BLAKE2b-256 84bd3ba91e82ad68e480060da469e60405452cce2f980a268fdcf2779ceddeb9

See more details on using hashes here.

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