Create a custom, lightweight macOS app from a group of websites. Watch me create a Slack clone from scratch in 30 seconds (click the GIF for a higher resolution video):
- Create apps from a UI or the command line
- Configure settings with JSON
- Built-in ad-blocker, provided by https://better.fyi (macOS 10.13+)
- View one tab at a time or all at once with side-by-side view
- Native bridges for Web APIs
window.Notification
window.alert
window.confirm
window.prompt
<input type="file">
Download the latest .dmg
file from the releases page.
Note: Multi 2.0.0 is a complete rewrite and works differently from previous versions. Any older Multi apps on your computer will continue but will lack the new features listed above.
Note: Multi is not notarized, so you'll need to allow it to run via your "Security & Privacy" system preferences. See Licensing for more about sponsoring Multi's development.
Multi apps store their configuration in a single JSON file.
If your app is named Test
, then you'll find that file at /Applications/Multi/Test.app/Contents/Resources/config.json
.
The JSON configuration allows 3 top-level fields:
Field Name | Type | Description |
---|---|---|
tabs |
Array (Required) | Titles and URLs of tabs for this app |
sideBySide |
Boolean (Optional, default false ) |
Show each tab simultaneously in one row |
alwaysNotify |
Boolean (Optional, default false ) |
Show macOS notifications even if your app is currently focused |
The tabs
field is an array of objects with the following fields:
Field Name | Type | Description |
---|---|---|
title |
String (Required) | Whatever you want to call this tab |
url |
String (Required) | Starting page for this tab |
Here's the bare minimum example used in the Slack demo video above:
{ "tabs": [{ "title": "Slack Lite", "url": "https://app.slack.com/client" }] }
Here's a fancier example that uses the optional fields referenced above:
{
"tabs": [
{ "title": "Dancing", "url": "https://rc.kofi.sexy/bathroom-floss" },
{ "title": "Walking", "url": "https://kofi.sexy/cel-shading" }
],
"sideBySide": true,
"alwaysNotify": true
}
If your configuration file fails to decode for any reason, your Multi app will open to the preferences window, where you can fix any issues.
You can create and update Multi apps entirely from the command-line with the included script.
In fact, the Multi configuration UI just runs this script under-the-hood!
The create-mac-app
script takes its options as environment variables.
For instance, here's how you'd create a bare-minimum app named Test
:
MULTI_APP_NAME='Test' /Applications/Multi.app/Contents/Resources/create-mac-app
When you open Test
, you'll be greeted with the preferences window, where you can finish configuring your app.
If you'd like to configure your app entirely from the command-line, you can set any of the following variables:
MULTI_ICON_PATH |
PNG path to icon image |
MULTI_JSON_CONFIG |
See JSON configuration |
MULTI_OVERWRITE |
Set to 1 to replace an existing Multi app with the same name |
Multi's shortcuts should work equivalently to those in modern browsers.
⌘X |
Cut | ⌘[ |
Back | |
⌘C |
Copy | ⌘] |
Forward | |
⌘V |
Paste | ⌘R |
Reload This Page | |
⌘A |
Select All | ^Tab |
Select Next Tab | |
⌘M |
Minimize | ^↑Tab |
Select Previous Tab | |
⌘H |
Hide | ⌘1 - ⌘9 |
Select Tab | |
⌘Q |
Quit |
Multi is open source software (GPLv3), but it is also paid software. One week after you install Multi, you'll see a message in your apps asking you to purchase a license. Since Multi is open source, and since I've made no attempt to obfuscate the code, you could remove the license check and recompile the project. Please don't do that. I'd like to continue improving Multi with new features and bug fixes, and license purchases enable me to do so.