Skip to content

Please add a LICENSE file — currently the repo can't legally be redistributed #2

Description

@robgough

Hi! Thanks for Termini — it's the nicest way I've found to embed a libghostty
surface in a SwiftUI app, and I'm using it as the terminal layer in a native
macOS tmux front-end.

The problem: the repo has no LICENSE file (and no license declared in
Package.swift or the README), and GitHub shows no detected license. Under
copyright law that defaults to all rights reserved, which means:

  • Nobody can legally redistribute Termini's source — including vendoring it
    into an app repo and publishing that repo, which is exactly my situation.
    I currently have to keep my project private purely because it vendors
    Termini (I vendor rather than depend on the package so I can patch the
    NSView/embedding layer against libghostty's unstable API).
  • Strictly speaking, even depending on it via SwiftPM and shipping a built
    app is on shaky ground without a license grant.

The ask: add a LICENSE file at the repo root with whatever license you
intend for Termini — that's entirely your call (MIT/Apache-2.0/BSD are the
common choices in the Swift package ecosystem). Once you've picked, I'm
happy to open the PR myself, including the license field in the README.

Separately, while you're in there: THIRD_PARTY_NOTICES.md looks like an
unfilled template ("Paste Ghostty's LICENSE content below verbatim") — since
the package redistributes a prebuilt GhosttyKit, Ghostty's MIT license text
needs to actually be included there. Happy to fold that into the same PR.

For what it's worth, once licensing is sorted I'd also like to upstream a few
patches I'm carrying locally, if you're interested: coalescing PTY winsize
pushes during live window resize (fixes a SIGWINCH redraw storm under tmux),
bounding the PTY write back-pressure loop (an unbounded EAGAIN retry can
deadlock terminate()), demoting the 60 Hz ghostty_app_tick timer to a
wakeup-driven tick (large idle battery win), and occlusion-gated surface
drawing. Thanks for considering it!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions