Customizable web UI launcher application for Mac OSX.
Wraps a run script and URL to make accessing web UIs feel like launching applications.
Polybolos lets you create Mac OSX launcher applications that can start local services (such as web UIs like LibreChat and Open WebUI), wait for the local or a remote service to become ready, then open the web UI in Google Chrome, focusing on an existing tab if available, or opening a new tab if not. This approach avoids the hassle of searching for tabs, and reduces the disorder from opening redundant tabs for the target service.
Artwork: SBA73, Polybolos — Wikimedia Commons, Licensed under CC BY-SA 2.0.
A polybolos (pronounced poly-BOH-los) is an ancient Greek multi-launcher. In a similar spirit, this project enables repeated launching without manual steps beyond running the app to trigger access to a web UI.
- Launch like an app: Starts and accesses local web services or remote web UIs more like a native app.
- Orchestrate a service: Runs your setup script and waits for the service to be ready.
- Avoid redundant tabs: Finds an existing browser tab for your service, preventing duplicate tabs.
- Easily make more launchers: Simply duplicate to create another launcher app for any web UI.
-
Open the OSX Automator application and create a New Document.
Choose Application as the type.Consider storing Polybolos launcher applications in a dedicated location to keep them organized.
-
In the new Automator window, search for the action Run AppleScript and drag it into the workflow.
-
Replace the workflow’s default text with the contents of
Polybolos.scptfrom this repository.Note: Running the script in Automator at this point is expected to show an error like
sh: /path/to/launcher.env: No such file or directory,
because you haven’t yet customized the application. -
(Optional) Save this generic launcher as
Polybolos.appif you’d like a source template. Otherwise, proceed.
- Save (in Automator) or duplicate (in Finder) the launcher application, setting its name to the desired service (for example:
LibreChat.app,OpenWebUI.app, orPerplexity.app).
- ICNS or SVG format is suggested.
- The free app Image2icon can convert an image to an ICNS icon file matching the format of macOS apps.
- In Finder, right-click the new app and select Get Info (or use Cmd-I). Drag your icon file to the icon shown at the top of the Info window for your app.
See sample configurations in the examples directory of this repository.
To create a configuration:
-
Create a folder in the same directory as your app, with the same name as your app but excluding the
.appextension. -
Ensure the configuration directory’s name matches your launcher’s name, without the
.appextension. -
In the configuration directory:
- Create
launcher.envand set theTARGET_BASEvariable to the target web UI, e.g.:
TARGET_BASE="http://localhost:"
or
TARGET_BASE="http://some-site.com" - Create
launcher.sh, a script that sets up the service (handling both running and not running states) and waits until the service is reachable before returning.
- Create
- Double-click the app to start.
- If prompted, grant file access permissions (especially if the app is in your iCloud path).
- Approve pop-ups requesting access to control System Events and Google Chrome.
- If you see
"Polybolos.app" would like to control this computer using accessibility features.,
open System Settings → Privacy & Security → Accessibility, and enable access for your application. - Once permissions are granted, your launcher will be able to start the service as needed and open or focus its web UI.
- Drag the launcher to your Dock for convenience, or launch via Spotlight (Cmd-Space).
- Running your launcher ensures the service is active and accesses its web UI in Google Chrome.
- To create more launchers, duplicate an existing Polybolos app, give it a unique name and icon, set up a matching configuration directory, and grant permissions as above.
- Check back here for updates or improvements to scripts and examples.
- Pull requests are welcome for launcher configurations to include in the
examplesdirectory.- Please include attribution when submitting example launchers.
- Explore customizing the AppleScript (
Polybolos.scpt) if you want to support more browsers or features. - Let me know if you create a different version that adds other capabilities.
Polybolos is released under the MIT License.
