Lightweight cross-platform book writing app with GitHub sync and chapter versioning
Project description
Download and Install Beckit
Beckit is distributed as a prebuilt installer — no Python or developer tools required. Download the version for your platform from the latest release. This app was built with the help of Claude.
macOS
Requirements: macOS 11 (Big Sur) or later
- Go to the latest release and download
Beckit-macOS-<version>.dmg - Open the downloaded
.dmgfile - In the window that appears, drag Beckit into your Applications folder
- Eject the disk image (drag it to Trash or right-click → Eject)
- Open Launchpad or your Applications folder and launch Beckit
"App can't be opened because it is from an unidentified developer" This appears because the app is not yet signed with an Apple Developer certificate. To open it anyway: right-click (or Control-click) the app icon → click Open → click Open again in the dialog. You only need to do this once.
Windows
Requirements: Windows 10 or later (64-bit)
- Go to the latest release and download
Beckit-Windows-<version>.zip - Right-click the zip file and select Extract All… — choose a permanent location (e.g.
C:\Program Files\Beckitor a folder on your Desktop) - Open the extracted folder and double-click Beckit.exe to launch the app
Windows Defender SmartScreen warning ("Windows protected your PC") This appears because the app is not yet code-signed. Click More info → Run anyway to proceed.
Tip: Right-click
Beckit.exe→ Send to → Desktop (create shortcut) for easier access.
First Launch
Regardless of platform, the first time you open Beckit you will be asked to connect your GitHub account:
- Create a GitHub Personal Access Token with the
reposcope (classic token) - Paste it into the sign-in prompt and press Connect
- Select an existing repository to use as your book, or create a new one — Beckit will clone it locally and set up the
Chapters/structure automatically
Your token and repository settings are stored in your system's app config directory:
| Platform | Config location |
|---|---|
| macOS | ~/Library/Application Support/beckit/ |
| Windows | %APPDATA%\beckit\ |
PDF export is built in — no separate tools required.
Run from Source (Developers)
If you'd prefer to run directly from source, or want to contribute to the project:
git clone https://github.com/kicka5h/book-editor-template.git
cd book-editor-template
python3 -m venv .venv
# macOS / Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activate
pip install -e .
python -m book_editor # or: beckit
To install dev dependencies and run tests:
pip install -e ".[dev]"
pytest
Project Layout
book-editor-template/
├── .gitignore
├── pyproject.toml
├── README.md
├── LICENSE
├── src/
│ └── book_editor/
│ ├── __init__.py
│ ├── __main__.py # GUI entry (python -m book_editor)
│ ├── app.py # Flet desktop UI
│ ├── config/ # App config (repo path, token)
│ ├── services/ # Chapter versioning, create, increment, word count, format, git
│ └── utils/ # Paths, chapter number helpers
├── tests/
│ ├── api/
│ ├── services/
│ ├── repositories/
│ └── utils/
└── .github/workflows/ # CI, CD, PDF generation, major release
Book Directory Structure
Chapters live under Chapters/ with semantic versioning per chapter:
Chapters/
Chapter 1/
v1.0.0/
v1.0.0.md
v1.1.0/
v1.1.0.md
Chapter 2/
v1.0.0/
v1.0.0.md
Each chapter can have multiple version folders (vMAJOR.MINOR.PATCH). All tools use the latest version when reporting word counts, generating PDFs, or listing chapters.
CLI Tools
After pip install -e ., these commands are available (run from a directory containing your Chapters/ folder):
| Command | Description |
|---|---|
chapter-version list |
List chapters and their current versions |
chapter-version minor -c 5 |
Bump minor version for chapter 5 |
chapter-version patch -c 1 2 3 |
Bump patch version for chapters 1–3 |
chapter-version major --all |
Bump major version for all chapters |
create-chapter |
Create the next chapter (e.g. Chapter 11) at v1.0.0 |
increment-chapters 6 |
Renumber: Chapter 7→8, 8→9, … (use -y to skip confirm) |
count-chapter-words |
Word count for the latest version of each chapter |
format-markdown -r -i . |
Format markdown in place |
Use -d /path/to/Chapters to point any tool at a specific directory.
License
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beckit-3.3.0.tar.gz.
File metadata
- Download URL: beckit-3.3.0.tar.gz
- Upload date:
- Size: 39.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df74d6c4a204652daf711f6515189f76909e13e3f42cd1f2476cdfe70722f43e
|
|
| MD5 |
565a6bf4d88a9eeecbd6c1e835988deb
|
|
| BLAKE2b-256 |
bf1aacb0b24542b97982cf2ca3c9b66018269b83c90bfc659c94f9c30674a77e
|
Provenance
The following attestation bundles were made for beckit-3.3.0.tar.gz:
Publisher:
cd.yml on kicka5h/beckit-book-editor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
beckit-3.3.0.tar.gz -
Subject digest:
df74d6c4a204652daf711f6515189f76909e13e3f42cd1f2476cdfe70722f43e - Sigstore transparency entry: 983787948
- Sigstore integration time:
-
Permalink:
kicka5h/beckit-book-editor@23932d98fd9cf4cef12506d5f723e135c053f290 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/kicka5h
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd.yml@23932d98fd9cf4cef12506d5f723e135c053f290 -
Trigger Event:
push
-
Statement type:
File details
Details for the file beckit-3.3.0-py3-none-any.whl.
File metadata
- Download URL: beckit-3.3.0-py3-none-any.whl
- Upload date:
- Size: 45.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
daa083402a4c597b8d1a1cb6c249c4131c4e8534e2663f9b1feffad21e58681a
|
|
| MD5 |
91719b270f14b81ed274a8d9a55c67bb
|
|
| BLAKE2b-256 |
7fa860b9669a37e7166a4119c0d249467fd93ae1f6e0e6f16fff50fb72873035
|
Provenance
The following attestation bundles were made for beckit-3.3.0-py3-none-any.whl:
Publisher:
cd.yml on kicka5h/beckit-book-editor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
beckit-3.3.0-py3-none-any.whl -
Subject digest:
daa083402a4c597b8d1a1cb6c249c4131c4e8534e2663f9b1feffad21e58681a - Sigstore transparency entry: 983787961
- Sigstore integration time:
-
Permalink:
kicka5h/beckit-book-editor@23932d98fd9cf4cef12506d5f723e135c053f290 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/kicka5h
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd.yml@23932d98fd9cf4cef12506d5f723e135c053f290 -
Trigger Event:
push
-
Statement type: