About visibility for GitHub Apps
You can make your GitHub App registration public or private. If you set your GitHub App registration to public, any user on GitHub can install it. If you set your GitHub App registration to private, it can only be installed on the account that owns the app.
You can register a GitHub App under your personal account or organization and make it available for other organizations to install. You do not need an enterprise plan or an organization account to make your GitHub App available to an organization even if the organization is owned by an enterprise on GitHub Enterprise Cloud.
If you want to make your app available to GitHub Enterprise Server instances, then you need to take additional steps. For more information, see "Making your GitHub App available for GitHub Enterprise Server."
If it is important for GitHub Enterprise Server users to be able to use your tool, consider using GitHub Actions instead of a GitHub App. Public actions are available on GitHub Enterprise Server instances with GitHub Connect. For more information, see "Enabling automatic access to GitHub.com actions using GitHub Connect" and "About GitHub Actions for enterprises" in the GitHub Enterprise Server documentation.
For information about changing the visibility of a GitHub App registration, see "Modifying a GitHub App registration."
Public installation flow
Public GitHub Apps have a landing page with an Install button, so that other people can install the app in their repositories. If your GitHub App is public to all users on GitHub, you can also choose to publish it to GitHub Marketplace. For more information, see "About GitHub Marketplace for apps."
Private installation flow
Private GitHub Apps can only be installed on the user or organization account of the app owner. Limited information about the app will exist on a landing page for the app, but the Install button will only be available to organization owners and app managers for the organization that owns the app, or the personal account if the GitHub App is owned by an individual account.