kindlestrip
A pip install-able conversion of Paul Durrant's kindlestrip library to strip the penultimate record from a Mobipocket file. (http://www.mobileread.com/forums/showthread.php?t=96903)
Usage
To install:
pip install kindlestrip
To use:
$ kindlestrip input.mobi output.mobi
$ du -sh *
268K input.mobi
200K output.mobi
Or run it without installing, straight from PyPI with uv:
$ uvx kindlestrip input.mobi output.mobi
kindlestrip.py is also a self-contained PEP 723
script, so you can run the local file without installing anything:
$ uv run kindlestrip.py input.mobi output.mobi
Options:
$ kindlestrip --help
$ kindlestrip -d input.mobi output.mobi # also dump the stripped SRCS records
Development
Requires Python 3.10–3.14. Common tasks are in the justfile:
$ just test # run pytest
$ just lint # ruff check + format
$ just build # build sdist + wheel
Releasing
Versions follow CalVer (YYYY.MM.PATCH) and are managed by
bump-my-version. Releases publish to
PyPI automatically via GitHub Actions using Trusted
Publishing (OIDC — no API tokens).
To cut a release:
$ just release # bump the patch (e.g. 2026.7.0 -> 2026.7.1), commit, tag, push
$ just release month # start a new month (recomputes YYYY.MM from today's date)
just release bumps the version in kindlestrip.py and pyproject.toml, creates a
commit and a bare CalVer git tag (e.g. 2026.7.1), and runs git push --follow-tags.
Pushing that tag triggers .github/workflows/release.yml, which builds with uv build
and publishes to PyPI. Only a version tag publishes — a plain git push never does.
Metadata
Release files for kindlestrip 2026.7.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 | |
|---|---|---|---|
| kindlestrip-2026.7.1.tar.gz | 9.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kindlestrip-2026.7.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.5 kB
Release files / kindlestrip-2026.7.1.tar.gz
| Download URL | kindlestrip-2026.7.1.tar.gz |
|---|---|
| Size | 9.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
11c5a9f48edccae62333b63478ac7b0a86db23caabd89e96c3fe036b3c0893b9
|
|
BLAKE2b-256 checksum How to use checksums |
9e167024f33f29d66ec53ad283d327ab2e0c6b9541f1684af59a9d0b5f433c15
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.
Transparency logRelease files / kindlestrip-2026.7.1-py3-none-any.whl
| Download URL | kindlestrip-2026.7.1-py3-none-any.whl |
|---|---|
| Size | 7.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
723419b93858459125382d1b169a4d51631b469b5dc89e3396cc4b45cffaf341
|
|
BLAKE2b-256 checksum How to use checksums |
b4252bcaf47186ec5f619edf4a43ed28370a644c66169645404cfdbc4795c45c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.
Transparency log