Myshelf is a CLI book management software written in PHP.
It is based on Laravel Zero and SleekDB.
It's still in development. There's no stable release, yet.
I don't like graphical applications and didn't find any satisfying software for managing my books.
I use Linux, so I don't know if it works with Windows.
git clone https://github.com/stefanszymanski/myshelf.git
cd myshelf
composer install
Change to the project directory and type ./myshelf
to see a list of available commands.
A description of each command is available via ./myshelf [command] --help
.
Supported query fields and filters of the list command ./myshelf ls [table]
is available via ./myshelf desc [table]
.
- Store data as json files (using SleekDB)
- Manage records
- Add
- via TUI
- via CLI
- Edit
- via TUI
- via CLI
- List
- query specific fields
- query fields from referred records (e.g. the last name of the referred author of a book)
- sorting
- filters
- grouping
- limit and offset
- different output formats (currently only fancy tables)
- Delete (wip)
- Display a single record (wip)
- Display availabe query fields and filters for the list command (wip)
- Display references between records
- Add
- Datatypes
- Persons (name, nationality)
- Publishers
- Books
- Basic fields: title, publishing date, ISBN
- Associated persons: authors, editors, illustrators, translators
- Associated publisher
- Binding (e.g. hardcover, paperback)
- Acquiration data: date, vendor/person, condition
- Type of content (e.g. novel, nonfiction, drama etc)
- Multiple contents (e.g. anthologies with multiple novels from different authors)
- Book lists (e.g. for grouping volumes of complete works)
- Activity Log (e.g. for tracking lent books, or keeping a reading list)
- Tagging / Keywords (maybe)
- User configuration (e.g. data storage directory, disabling specific features)
- Data schema versioning to allow automatic and reliable updates of records when data types change
- ISBN barcode scanning via webcam (using Zbar)
- Retrieval of book data via ISBN using web services
- Git integration for versioning the data
- Autocompletion for bash and zsh
- Localization (meh...)