A native macOS LaTeX editor. Open a .tex file, write on the left, and see the compiled PDF on the right.
Download Folio.zip or view the latest release.
The current bundled build requires Apple Silicon and macOS 26 or later.
- Unzip the download.
- Drag
Folio.appinto Applications. To update an existing installation, quit Folio first and choose Replace. - Open Folio.
The app is ad-hoc signed, not Apple-notarized. If macOS blocks the downloaded app, use System Settings → Privacy & Security → Open Anyway after attempting to open it.
Tectonic is included. You do not need Homebrew or a TeX distribution to run the downloaded app. The first compile may download missing TeX packages.
Use Open… to select a .tex file, or New Document to create one. Edits are saved and compiled automatically after a short pause.
- The native editor provides syntax highlighting, line numbers, find and replace, undo and redo, matching pairs, comments, indentation, and completion.
- A file's parent folder supplies the project context for included source files, images, and bibliography files. The file navigator can be hidden completely.
- Failed builds retain the previous good PDF. Click a diagnostic to jump to its source line.
- PDFKit provides scrolling, page navigation, zoom, fit width, and fit page. Preview and editor positions are remembered.
- Use Cmd+Option+J for forward SyncTeX search. Command-click the PDF to return to source.
- Choose Download PDF from the three-dot menu to save quietly to Downloads. Repeated downloads use numbered filenames instead of overwriting existing PDFs. File → Export PDF… lets you choose another destination.
- Use Cmd+B to compile immediately. Compiler output is available under Build → Show Compiler Log.
There are no accounts, cloud workspaces, collaboration services, or AI features. Documents remain ordinary local files.
Building requires Xcode 26 or newer, Python 3, and a local Tectonic executable.
git clone https://github.com/bgar324/Folio.git
cd Folio
brew install tectonic
python3 Scripts/build-app.py
open dist/Folio.appThe build script creates a release .app, bundles Tectonic and its non-system libraries, relocates their load paths, includes third-party notices, and signs the bundle locally.
The Swift app targets macOS 15. The packaged app can require a newer macOS version because of the selected compiler or libraries. The script derives the bundle's minimum version from all included executables and libraries. Use --tectonic /path/to/tectonic to select another compiler build.
Close Folio before running native verification. It needs an active macOS desktop.
swift test
python3 Scripts/verify-native.py
python3 Scripts/build-app.py
python3 Scripts/verify-fixtures.pyThe native runner drives the real editor, compiler, and PDF view. It checks failure recovery, source navigation, downloads, undo across files, and state restoration. ScreenCaptureKit captures the visible window, and Vision OCR checks that source text is actually legible.
Native verification builds a debug app. Run the release build afterward, as shown above. Reports and screenshots are written to the ignored Verification/ directory.
Fixture projects cover articles, multiple source files, bibliography, images, warnings, malformed LaTeX, missing assets, nested roots, and paths containing spaces.
Public release packaging also includes dependency notices and a corresponding-source archive:
python3 Scripts/package-third-party.py
python3 Scripts/build-app.py --redistributable
ditto -c -k --sequesterRsrc --keepParent dist/Folio.app dist/Folio.zipThe source packager downloads and verifies the pinned dependency sources. The stricter build mode checks the runtime binaries against ThirdParty/manifest.json. Upload both Folio.zip and Folio-third-party-sources.zip with a public release. The source archive is not needed to run Folio.
Tectonic is the default. An optional latexmk backend uses an existing MacTeX or TeX Live installation; select it in Settings. The bundled release does not include that distribution.
Tectonic runs with --untrusted. The latexmk backend ignores executable configuration files and disables shell escape. These restrictions are not an operating-system filesystem sandbox: open LaTeX files from sources you trust.
Bundled dependencies retain their own licenses. See third-party notices and the corresponding-source archive attached to the release.
