Open source. Photos stay local.
Arras is free, MIT-licensed open-source software. Its source is public, and the download button on this site takes you directly to the official yashashwi-s/Arras GitHub Release.
Arras does not upload your photos. The app has no account, advertising SDK, analytics, telemetry, or external crash-reporting service. Normal photo widgets need neither Full Disk Access nor Accessibility permission.
The first launch on macOS
The current Arras build is not notarized by Apple, so macOS may show its standard Gatekeeper verification message on first launch. The message “Apple is not able to verify that it is free from malware” is expected for this distribution: it means Apple cannot verify the build, rather than reporting that malware was detected.
- Download the DMG from this website’s button or the official GitHub Release.
- Open the DMG, drag Arras into Applications, and try opening Arras.
- After trying to open Arras, open System Settings → Privacy & Security → Open Anyway. Confirm with your Mac password or Touch ID if requested, then choose Open. This is macOS confirming your decision to open Arras; the password is not shared with the app. After approval, Arras opens normally.
This approval applies to Arras. Its controls appear in your menu bar. Apple’s first-launch instructions ↗
You choose what to share
Import pictures from Finder, drag and drop, the clipboard, or the optional Photos picker. The picker passes Arras the pictures you select. macOS may ask for access to a protected folder when you choose a file there. Full Disk Access is not required.
The optional Capture Screen Region command starts macOS’s interactive screenshot tool; any Screen Recording approval relates to that feature. Ordinary photo widgets do not need Screen Recording or Accessibility permission. Arras does not continuously capture your screen.
Update notifications and Launch at Login are optional. You can control them in Settings.
Your pictures stay on your Mac
Photo copies and layouts are stored in ~/Library/Application Support/PhotoWidget/. Arras does not upload them. macOS may download a selected iCloud photo so you can import it.
Exported .arras backups include your stored pictures and layout. Keep your original photos separately: imported copies may be downsampled or re-encoded. You choose where to save or share a backup.
Updates come from GitHub
Your photos and layouts work offline. Arras connects to GitHub to check for new releases and download updates; your pictures and layout are not part of those requests. Opening a project or announcement link visits that destination in your browser.
Automatic installation is on by default, with daily checks. Turn it off to review updates before installation, or choose Never to stop scheduled checks while keeping Check Now available. Both installation modes follow the frequency selected in Settings.
When you share your screen
Capture exclusion asks macOS to omit photo windows from compatible screenshots and recordings. AirPlay and HDMI mirroring show your display, so they are outside this setting. Optional hiding checks for known conferencing or recording apps; browser meetings are not detected. Check your sharing preview to see what others will see.
For technical users
Signing, storage, and update validation
The current public build uses ad-hoc signing and is not notarized by Apple. It has no Developer ID certificate. Arras uses the hardened runtime and is not sandboxed; it runs with your account’s normal access, subject to macOS privacy controls. This allows the in-place updater to replace the app bundle.
The updater validates HTTPS, the release version, minimum macOS version, SHA-256, the extracted app’s bundle identifier, and its advertised version before installing. It does not verify a Developer ID signature. The update feed and checksums are published through the same GitHub infrastructure as the release files.
It removes quarantine from the validated replacement and keeps the previous app until the new version reports a successful startup, allowing rollback if replacement or startup fails. Read the security policy ↗
Check a download’s checksum
Open GitHub’s release metadata ↗, find your filename under assets, and compare its digest value with your file’s SHA-256. Check that tag_name matches your downloaded version. The DMG and ZIP have different digests.
On your Mac, shasum -a 256 ~/Downloads/Arras.dmg prints the DMG’s hash. Compare it with the characters after sha256: in that asset’s digest. A match confirms your download has the same bytes as the published GitHub asset.
Network endpoints and update timing
The feed comes from raw.githubusercontent.com. ZIPs start at github.com and may redirect to GitHub’s release-asset CDN. Requests include normal connection information such as your IP address. The ZIP URL includes source=arras-updater, the target release version, and a fresh request UUID for each attempt. This is a request identifier, not a persistent device identifier; no photos, layouts, filenames, accounts, or hardware identifiers are sent.
After wake or activation, Arras checks whether an update is due. Failed automatic checks have a 15-minute retry floor. Last checked records a successful check. Settings keeps the displayed elapsed time up to date while open. Current shipped behavior ↗
This website
The website uses Vercel Analytics and Speed Insights for visits and performance. Those website measurements are separate from the app; no analytics SDK is embedded in Arras.
Report a vulnerability using the private reporting instructions. Need help getting started? Read the FAQs →