Skip to content

Repository files navigation

Aro

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

Aro start page

The start page keeps only the Aro wordmark and the same compact address field used by ⌘L.

Requirements

  • macOS 13 or later
  • Xcode Command Line Tools (xcode-select --install)

Build

git clone https://github.com/stringer07/aro.git
cd aro
./build.sh        # → Aro.app
open Aro.app

The build targets the current Mac's architecture and requires no Xcode project. Move Aro.app to /Applications if desired.

Use

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.

Storage and privacy

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.

CLI screenshot mode

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 3

It loads the page, waits for it to settle, writes a Retina PNG, and exits. CLI snapshot jobs do not create the persistent status item.

Passkeys

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.sh

    The same binary detects the entitlement and exposes WebAuthn. macOS may show a one-time consent prompt.

Notes

  • 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.

Project origin

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.

License

Aro is available under the MIT License. The original Antiwork copyright and license notice are preserved.

About

A tiny chromeless WKWebView browser for macOS

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages