A tiny, chromeless browser for macOS. The window is the webpage: no tabs, toolbar, address bar, or other permanent browser chrome. Aro is useful for dashboards, fullscreen video, focused web apps, and clean screenshots.
Aro is based on antiwork/chromeless. It keeps the original project's lightweight WKWebView foundation while addressing several practical gaps and refining the window, menu-bar, input, storage, and macOS integration behavior.
- Native Swift and WKWebView; no Electron or third-party dependencies
- Under 1 MB when built
- Persistent menu-bar control with browser commands
- Always-on-top windows across Spaces and supported full-screen contexts
- Explicit cache and website-data controls
- CLI webpage-to-PNG mode
The start page keeps only the Aro wordmark and the same compact address field used by ⌘L.
- macOS 13 or later
- Xcode Command Line Tools (
xcode-select --install)
git clone https://github.com/stringer07/aro.git
cd aro
./build.sh # → Aro.app
open Aro.appThe build targets the current Mac's architecture and requires no Xcode project. Move Aro.app to /Applications if desired.
Everything is a keystroke and is also available from the macOS menu bar or Aro's status-item menu:
| Keys | Action |
|---|---|
⌘L |
Search or enter a URL |
| Drag the top edge | Move the window; three-finger drag also works |
⇧⌘S |
Save a page snapshot as PNG to the Desktop |
⌘M |
Hide the window in the menu bar |
⌘[ / ⌘] |
Back / forward; two-finger swipe also works |
Esc |
Return to the start page; ⌘[ returns to the previous page |
⌘= / ⌘- / ⌘0 |
Zoom in / out / reset; pinch also works |
⇧⌘C |
Copy the current URL |
⌘R / ⇧⌘R |
Reload / reload ignoring cache |
⌘N / ⌘W |
New window / close window |
Every Aro window stays above other applications, including supported full-screen Spaces. The title bar keeps the native close and minimize buttons; window zoom and app full screen are intentionally unavailable.
The circular Aro status item remains in the menu bar while the app is running:
- Left-click to show or restore a window.
- Right-click for navigation, reload, zoom, snapshot, cache, window, and Quit commands.
- Minimize hides the window without removing the status item.
- Closing the final window or choosing Quit Aro exits the app and removes the status item.
Aro remembers the primary window frame and reopens the last visited page.
Cookies and logins persist in ~/Library/WebKit/com.aurelian.Aro/, so signed-in sessions survive relaunches.
The Aro menu provides two separate cleanup actions:
- Clear Cache removes WebKit's memory and disk caches while preserving logins and site storage.
- Clear Website Data… removes cookies and other website storage, forgets the last page, and returns open windows to the start page.
Aro also works as a webpage-to-PNG tool:
./Aro.app/Contents/MacOS/Aro https://example.com --snap shot.png --size 1440x900
./Aro.app/Contents/MacOS/Aro localhost:3000 --snap dev.png --wait 3It loads the page, waits for it to settle, writes a Retina PNG, and exits. CLI snapshot jobs do not create the persistent status item.
Apple gates WebAuthn in WKWebView behind the restricted com.apple.developer.web-browser.public-key-credential entitlement. An ad-hoc build that claims the entitlement without an Apple-issued provisioning profile is terminated by macOS. Aro checks its own signature at runtime:
-
Default build: the unavailable WebAuthn API is hidden so websites can offer password, phone-prompt, or other fallback sign-in methods.
-
Entitled build: passkeys work through iCloud Keychain and Touch ID after Apple grants the capability and the app is signed with a matching provisioning profile:
PROVISIONING_PROFILE=Aro.provisionprofile \ CODESIGN_IDENTITY="Apple Development: you@example.com (TEAMID)" ./build.shThe same binary detects the entitlement and exposes WebAuthn. macOS may show a one-time consent prompt.
- Aro presents a Safari user agent; element fullscreen, autoplay, and AirPlay are enabled.
- The first snapshot may trigger the standard macOS prompt for Desktop access.
- File upload controls use the native macOS open panel.
- Tabs, downloads, history UI, extensions, and find-in-page remain deliberately out of scope.
Aro is a derivative of antiwork/chromeless, whose focused single-window browser concept and original Swift implementation form the foundation of this project.
Relative to the upstream project, Aro adds or refines persistent menu-bar operation, Stage Manager and full-screen overlay behavior, native window controls and top-edge dragging, input-method candidate-window handling, file uploads, cache and website-data cleanup, and a more minimal start and address-entry experience.
Thank you to Antiwork and the original chromeless contributors for releasing their work under the MIT License.
Aro is available under the MIT License. The original Antiwork copyright and license notice are preserved.
