Any website.
Now a Mac app.

UrlApp is the tool PM7 uses to give the sites we live in their own icon in the Dock. A name, a URL, an engine — and UrlApp builds a standalone, code-signed macOS app. No code required.

An in-house PM7 tool · not available for download

Mail, analytics, chat, project boards — every one its own app.

01 — Create

From URL to app in a few clicks

Open UrlApp, type a name, paste the URL and pick an engine. UrlApp fetches the site's icon, builds a code-signed app bundle and launches it. Done.

Icons your way. UrlApp fetches the site's favicon or touch icon for you. Prefer your own? Use any image or an SF Symbol, and fine-tune background color and padding. UrlApp renders the full icon set, from 16 px up to 1024 px Retina.

Real Mac apps. Each app has its own Dock icon, bundle ID and settings, installs to ~/Applications/UrlApp and runs on its own. Every app is code-signed with a Developer ID, so macOS treats it as a first-class citizen.

Update, rename, re-icon, convert. Rename an app or give it a new icon without losing its identity, rebuild it on the newest engine, or convert it between Safari, Chromium and Chrome. The bundle ID and the tab list come along to the new engine.

A setup checklist. UrlApp ▸ Setup… shows what this Mac still needs — signing certificate, Chromium templates, Google Chrome, notarization profile — with a fix for each missing item.

UrlApp
APP NAME
Linear
URL
https://linear.app
ENGINE
Safari
Chromium
Chrome
ICON
Favicon loaded ✓
or image · SF Symbol · padding · background
Create App

02 — Engines

Three engines. Your choice.

Pick the engine per app — and convert later. Not every feature exists in every engine: on this page, a small Safari or Chromium label marks a feature that only one engine has.

Safari engine. A native app on Apple's WebKit, with no browser engine inside the bundle. Passwords live in the macOS Keychain, the app can start at login, and windows remember their position per monitor setup.

Chromium engine. A complete Chromium inside your app, downloaded once by UrlApp and checked by size and checksum: split screen, tab search, passkeys with Touch ID and security keys, Widevine DRM for streaming, a built-in PDF viewer, menu-bar mode and a Windows export.

Chrome engine. A tiny launcher that opens your URL in Google Chrome's app mode — no address bar — with a separate, fresh Chrome profile per app. It needs Google Chrome installed, opens only the first URL, and has none of the in-app features below.

SafariNative WebKit — no browser bundled

Keychain passwords · Filter Ads · X Post Score · Launch at Login · Dock badge · per-monitor window positions

ChromiumBuilt-in engine — the powerhouse (~250 MB)

Split screen · tab search · passkeys & Touch ID · Widevine DRM video · PDF viewer · menu-bar mode · Windows export

ChromeA launcher for the Chrome you already have

Chrome app mode · separate Chrome profile per app · tiny bundle

03 — Tabs

Tabs that behave like an app, not a browser

Pin the areas of your web app as fixed tabs, sort them into sections, bundle them in group tabs — and let tabs you're not using go to sleep.

Sections and group tabs. Spread your tabs over three sections, or turn a tab into a group tab: one button in the bar for several pages, with the other members one click away in its menu. Keep only the active tab in the bar if you like — the rest stay open.

Temporary tabs. Links can open in a throwaway temporary tab that disappears when you close it. Undo Close Tab brings the last closed tab back.

Sleeping tabs. Chromium apps put hidden tabs to sleep after 30 seconds and load only the visible tabs at launch — Keep Tab Awake exempts the tabs that must stay live. Safari apps show a frozen snapshot of a sleeping tab (click to wake it) and can let chosen tabs start asleep.

Memory in view. A memory pill in the title bar shows what the app uses, with Sleep background tabs now one click away. Chromium apps add a Memory settings tab with Process Model and Site Isolation, and reload a crashed tab by themselves — after three crashes in a minute they stop and offer a Reload button.

Completely yours. ChromiumPill or classic browser style, six colors for regular and six for temporary tabs, per-tab colors, up to 25 tabs, tab search, drag-and-drop reordering and ⌘W that asks before it closes a tab.

One site, many accounts. Turn on tab isolation and every tab gets its own cookies — sign in to the same site as different users, side by side. Chromium keeps those sessions across restarts; in Safari they last until you quit.

Gmail — Inbox
InboxStarredSent💤CalendarOrders ▾Order #1042+

04 — Split Screen

Two halves. One app.

Chromium apps split into two independent mini-browsers — each with its own tabs — side by side in one window, sharing one login.

Truly independent halves. Each half has its own tab bar, tabs and left toolbar. Click a half to focus it — the shortcuts follow.

Park your tabs. Turn split off and the right half hides instead of closing, its tabs ready to come back. Or split the window for just one tab.

Everything restored. The divider position, both tab sets and the focused half survive a restart, exactly as you left them.

Basecamp — Split Screen
BoardDocs
Chat

05 — Sign in

Your passwords, done right

Every app keeps its own logins, never in plain text: Safari apps store them in the macOS Keychain, Chromium apps encrypt them with a key held in the Keychain. When a login form appears, the key button lights up. Pick an account, autofill, signed in.

Autofill on your terms. Saved logins per domain, with subdomain matching. Autofill both fields, send only the username or the password, or copy them.

Two-factor codes built in. With pm7-Authenticator on the same Mac, the app computes the TOTP code for the current site and types it in when you choose Send code.

Passkeys. ChromiumSign in with Touch ID or a hardware security key — with a native picker when several passkeys match. Touch ID passkeys stay on that Mac.

Stay signed in. Each app keeps its own persistent session, separate from your browser. Restart your Mac; your apps are still logged in.

Winfakt — Sign in
patrick@winfakt.com
••••••••••••
Sign in
Autofill
Send password
Send code
Copy password

06 — Links

Route links like a pro

You decide what leaves the app. External links can stay inside, or go to your default browser, Safari, Chrome or Firefox — and link rules can hand them to another UrlApp app.

Wildcard rules. An ordered rule list like *.github.com → In App, checked top to bottom — the first match wins. Different destinations per pattern, including specific apps.

Apps talk to each other. One UrlApp app can hand links to another — and you choose whether incoming links replace the page or open as a temporary tab. Hold ⌘ while clicking to send such a link to your default browser instead.

Deep links per tab. Give a tab its own URL scheme, like myapp://. macOS then opens those links in your app, which switches to that tab and loads the matching web address.

Your Mac's email app. A webmail app can register as the system-wide mailto: handler. Click an email address anywhere and your app opens your webmail's /compose page with recipient, subject and body filled in — for webmail that offers such a page.

Settings — Web
External links open inDefault Browser ▾
LINK RULES
*.github.com→ In App
*.google.com/maps*→ Safari
linear.app→ UrlApp App

Rules are checked top to bottom.

07 — Filter Ads

Pages without the noise

One shield in the toolbar of every Safari and Chromium app. Switch it on and the app hides ads, promo blocks, newsletter popups, social widgets and cookie overlays — and leaves the article alone.

Per tab, not per app. The shield switches the tab you are looking at and wears an ON while it is active there. One tab can filter while the tab next to it stays exactly as the site intended.

AI judgement, not a blocklist. The app picks the candidate elements on the page and an AI model on PM7's server classifies them, so this also works on sites no filter list has ever seen. Only short snippets of those elements are sent — not the page address. It hides what it finds inside the page; it is not a network blocker.

Rules are remembered. What was decided for a page type is stored with the app, so a revisit is filtered the moment it loads. A fresh analysis then picks up any new ad slots.

Your sensitivity, always reversible. Four steps, from only-certain to everything flagged — changing it takes effect right away. Switch the filter off and the page returns exactly as it was; re-analyze or forget a page type from the same menu.

X Post Score. x.comA second button scores every post on your timeline from 0 to 100. Below 30 a post gets an orange border, below 10 a red one, and ads are always red. Correct a score with Good, Doubt or Bogus, or trust an account — your corrections guide the next scores. Post text is scored on PM7's server.

Filter Ads
ONFilter Ads
Ad hidden
Newsletter popup hidden
✓ Filter Ads on this tab
7 hidden on this page · 90%
Re-analyze this page
Forget rules for this page type
Sensitivity (this tab)
• Only certain (90% or more)
   Relaxed (75% or more)
   Aggressive (50% or more)
   Everything flagged

08 — Make it yours

Every pixel, your call

From the title-bar color to the traffic lights, from the toolbar to the window title — a generated app looks the way you want it to.

A toolbar you assemble. Pick the buttons for a left and a right toolbar, in your order: back, forward, home, refresh, DevTools, Filter Ads, X Post Score, Share, previous tab and maximize. Chromium adds element hider, credentials, tab search, split screen and settings.

Window titles with variables. SafariCompose the window title from building blocks like app name, URL, domain, tab name, tab number or window size — or show no title at all.

A true Mac window. Hide on close, keep on top, lock the window, save Default and Maximized positions, choose whether a launch reopens the last or the default position, native full screen. Chromium apps can also live in the menu bar, with their own monochrome icon and no Dock icon.

Frames and colors. Frame the content with a color or a knitted Sweater border — Plain, Zigzag, Checks, Stripes or Stars — that follows your app icon's color. Safari apps also take an image, and can color the title bar with the site's own theme color.

Native notifications. Once you allow them, web notifications arrive as real macOS banners. Safari apps can add a badge on the Dock icon.

{{appname}} — {{tabname}}
Custom toolbarTabs in title barTitle-bar heightSweater borderTraffic lights on hoverMenu-bar modeHide from Dock

09 — Always current

Updates come to you

Apps stay fresh on their own. A live connection tells every Safari and Chromium app the moment a new engine ships — one click updates it in place, settings intact.

Push, not poll. A live WebSocket connection announces updates the moment they ship — a subtle gift icon appears in the toolbar.

Self-updating apps. Apps update themselves in place — the download verified by checksum, the app re-signed and restarted. Even on Macs that never installed UrlApp.

Settings that follow the app. Each app backs up its settings to the PM7 settings server, and every copy of that app — on any of your Macs — picks up a change within seconds. Offline changes queue and sync later; the newest change wins.

YouTube
🎁
Update available
Build 1042 → 1089 · Start Update
Update

10 — Share

Built in-house. Ready for everyone.

Every app UrlApp makes can be exported as a notarized DMG or ZIP that opens on another Mac without warnings — or, from a Chromium app, published with a public download link.

Notarized by Apple. Sign, notarize, staple and package in one go (File ▸ Export App for Sharing…, ⇧⌘E) — recipients double-click and it just opens.

Also for Windows. ChromiumChromium apps export a Windows version too, as a ZIP. One tool, both platforms.

One link to share. ChromiumPublish to a public download page on apps.pm7.dev, with downloads for Mac and Windows. Downloaded copies start with the tabs you set up and keep updating themselves.

Share the page you're on. With the pm7-ShareThis extension installed, the Share button sends the current page straight to it — and on a PDF it shares the PDF file itself.

Export App for Sharing
Sign app
Notarize with Apple
Staple ticket
Create package
apps.pm7.dev/my-team-app

…and so much more

Configurable per app in the Settings window (⌘,) of every Safari and Chromium app.

· PDF viewer with print (Chromium)· Docked developer tools (Chromium)· Web Inspector (Safari)· Element hider (Chromium)· Per-domain zoom memory· Hover-URL status bar· Remote logging, off by default· Download folder of choice (Safari)· Native file pickers· Widevine DRM video (Chromium)· OAuth popup sign-in flows· Desktop-class user agent· Popups of local helper apps as real windows· Cloudflare human checks (Chromium)· Undo Close Tab· Duplicate or rename a tab· Move a tab to a section or group tab· Return to previous tab (⌘⇧P)· Refresh all tabs at once· Go home on all tabs· Rich image context menus· Copy URL from title bar· Launch at Login (Safari)· Monochrome menu-bar icon (Chromium)· Hide the macOS window outline (Chromium)· Send Position to Traffic Lights (Chromium)· Sleeping-tab text color (Chromium)· Debug window ⌘⇧D (Safari, UrlApp)· Human-readable settings JSON· Reset to defaults with backup (Safari)· Remember last URL per tab· Custom tab icons· SF Symbol tab icons (Safari)· Title-bar height slider· Re-provision All Apps (UrlApp)

A few clicks from now,
it's an app.

UrlApp is an in-house PM7 tool. The apps it makes are shared with a public download link.