Skip to content

Repository files navigation

Tilde

Tilde is a lightweight native macOS plain-text editor with Markdown preview and a Finder Quick Look extension. The editor is built around NSDocument, a document-owned NSTextStorage, and NSTextView; SwiftUI provides the surrounding window UI and settings.

The project requires macOS 15+, Swift 6, and Xcode with the macOS 15 SDK.

Repository guide

The package manifest is the source of truth for application code, dependencies, and tests. The Xcode project in Host/ only packages those products into the macOS app and Quick Look extension; see the architecture guide for the boundary in more detail.

Development with SwiftPM

Swift Package Manager owns all application logic, reusable UI, dependencies, tests, and the benchmark tool:

swift build
swift test
swift run Tilde

Dependencies are pinned to exact revisions in Package.swift and Package.resolved. TildeBenchmark is also an SPM executable product:

scripts/run-benchmarks.sh

The command-line opener supports paths, line numbers, multiple files, and a separate window:

swift build -c release --product tilde-cli
scripts/install-cli.sh
tilde README.md:20

The installer places tilde in ~/.local/bin. Set TILDE_CLI_PATH to install a different binary.

Native app and Quick Look bundles

SwiftPM cannot declare Apple .app and .appex bundle product types. The thin project in Host/ only packages the local TildeApplication and TildeQuickLook SPM products; it is not a second source or dependency graph.

scripts/build-host.sh Debug
scripts/verify-host.sh Debug

The verified app is written to .build/HostDerivedData/Build/Products/Debug/Tilde.app. Local builds are ad-hoc signed. Distribution builds require the project's Developer ID identity and notarization credentials.

The host packaging configuration currently targets Apple Silicon (arm64) only. This is intentional for the current development and release setup: Tilde does not currently produce an Intel or Universal binary. The architecture is constrained both by Host/TildeHost.xcodeproj and by scripts/build-host.sh; both locations must be updated together if Intel or Universal support is added. Such a change also requires validating all pinned SwiftPM dependencies and the signed Release artifact on both architectures.

To create a local DMG from a verified build:

scripts/build-dmg.sh Release

The generated DMG is intentionally ignored by Git. Release signing, notarization, and clean-machine validation are tracked in the release checklist.

To install the latest release with Homebrew:

brew tap magalab/homebrew-tap
brew install --cask tilde

The Homebrew cask also installs the tilde command from inside the app bundle, so no separate Swift build or CLI installer is needed.

Design and release evidence

The project is licensed under the MIT License. Third-party dependencies remain subject to their own licenses; see the dependency license audit.

About

A lightweight native macOS plain-text editor with Markdown preview, Finder Quick Look, and a command-line opener.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages