Write your book in Markdown. Keep your files local. Export EPUB and print interiors from one project.
PubCraft is a free, open-source writing and publishing tool with a local browser-based editor, a C command-line compiler, manuscript import, EPUB export and print previews. Your work remains ordinary Markdown and book.yaml.
Alpha software: keep backups and use copies of your manuscripts. Review every import/export. A successful build does not certify Amazon KDP, IngramSpark or other distributor compliance.
Latest: 1.0.0-alpha.4 — Universal Mac app, native on Intel and Apple Silicon.
| Platform | Downloads |
|---|---|
| macOS Universal (Intel + Apple Silicon) | PubCraft.app ZIP · DMG app · PKG installer · Portable tools |
| Windows x64 | Installer · Portable ZIP |
| Linux x64 | AppImage · Debian/Ubuntu · Portable archive |
Release notes and all files · SHA-256 checksums · Italiano · Report a problem
Mac installation: extract the app ZIP and drag PubCraft.app into Applications, or use the DMG as usual. macOS 13 Ventura or newer; no Rosetta required. The launcher, CLI, GUI and PDF helper all include both CPU architectures. Quit the old app before replacing it.
macOS Security Notice (Gatekeeper / "Move to Trash"):
PubCraft is a free open-source project with an ad-hoc code signature and is not enrolled in the paid Apple Developer Program ($99/year) or notarized by Apple. On first launch, macOS (especially Sonoma and Sequoia) may block the application with a false-alarm dialog: "PubCraft is damaged and cannot be opened. You should move it to the Trash."
The application is intact and not damaged. To clear the quarantine flag set by macOS on downloaded files and open it normally:
- Drag
PubCraft.appto your/Applicationsfolder.- Open Terminal and run:
xattr -cr /Applications/PubCraft.app- Launch PubCraft normally with a double-click. (Alternatively, if shown the standard Gatekeeper prompt, you can open System Settings → Privacy & Security and click "Open Anyway").
The app is ad-hoc signed, not Developer ID signed/notarized; PKG and Windows installer are not publisher-signed. Use the official release and verify its checksums. GitHub's “Source code” downloads are not ready-to-run apps.
Alpha.4: restored and expanded chapter reordering across views. Seamless up/down move arrows in the chapter list sidebar; previous/next move arrows and smooth drag-and-drop on the Corkboard (Lavagna) with zero accidental edit navigation and immediate persistence to book.yaml.
Included from alpha.3: Universal 2 Mac app and portable tools (Intel + Apple Silicon native, no Rosetta required, macOS 13+ minimum).
See the alpha.4 notes, alpha.3 notes, full alpha.2 changes, changelog and validation record.
- Portable projects: Markdown chapters, YAML metadata and local images, editable in PubCraft or another editor.
- Local-first: no PubCraft account or cloud backend. External AI clients connected through MCP have their own privacy practices.
- Supported imports: Vellum, Scrivener, DOCX, ODT, Markdown and PDF. Conversion is not an exact reproduction of every source feature; inspect the result.
- Writing and publishing: chapter organization, notes, manuscript preview, typography controls and explicitly generated EPUB/PDF publication previews.
- Print: HTML/PDF with trim and bleed controls. PDF generation requires an available supported renderer; pagination and appearance can vary.
- Free/open source: MIT code; fonts/dependencies retain separate licenses.
Launch the app and choose New Book or open a project folder. A book contains book.yaml, .md/.markdown chapters and optional cover/ and images/ folders. Keep the original and a separate backup.
# GUI and live Watch
pubcraftgui ./my-book
pubcraftgui --watch ./my-book
# CLI
pubcraft init ./my-book "My Book"
pubcraft build ./my-book ./my-book.epub --kindle
pubcraft build-print ./my-book ./print-output --trim 6x9 --pages 200 --pdf
# Vellum conversion
pubcraft export-md "./My Book.vellum" "./My Book-markdown"The browser UI is served by a local process, not a hosted service. Other manuscript formats can be imported through the GUI. The GUI binary also exposes stdio MCP through pubcraftgui --mcp.
Source minimum: make, a C compiler, Go 1.23+ and Python. Release builds use the pinned .go-version; Universal Mac packaging needs macOS SDK/signing tools and Python 3.12+.
make # native development tools, NOT a Mac release
make check # CLI, uncached Go race tests and release-guard tests
go -C src/pubcraftgui vet ./...
make pkg-macos # Universal app + ZIP/DMG/PKG/portable tools
make verify-macos-release # all formats, both slices, signatures and clean sourceRead AGENTS.md and docs/RELEASING.md before changing or publishing releases. Never reuse old executables or substitute native make all outputs for the Universal app. Native Intel/Apple Silicon, Linux and Windows checks live in Release builds. See tests/README.md for browser tests. Cross-compilation alone is not native execution or installation testing.
Import conversion, typography and pagination depend on input, fonts, OS and renderer; EPUB readers may override typography. The WebKit helper produces a continuous snapshot, not certified multi-page KDP layout. Unsupported YAML update forms fail without changing the project. Linux ARM packages are not included.
Issues, documentation, translations and testing contributions are welcome; see CONTRIBUTING.md. Include version, OS and reproduction steps. Never attach private manuscripts or copyrighted covers. Review diagnostic reports before sharing: automatic redaction is not a guarantee.
Code: MIT. See font notices and third-party licenses for resources with separate licenses.
