Skip to content

Semper app icon

Semper

CI status Apache-2.0 license Good first issues Contributors

Semper is built exclusively for macOS. Control windows, files, displays, power, and sound from one native menu bar app. Add the utilities you need, use them independently, or combine settings with Scenes and Presentation. Away provides an authenticated privacy curtain.

The current download, v1.0.0, contains Sound. Source builds include additional utilities in development toward the next release. The product status guide distinguishes released, integrated, and staged features.

semper.systems

ko-fi

Semper is an open-source project founded and led by Nihar Manchikakapudi.

Important

Contributors wanted. Semper is looking for help with Swift, SwiftUI, Core Audio, DSP, device testing, accessibility, tests, and technical writing. Start on the contribute page or read the contributor guide.

Download

Download Semper for macOS

Open the disk image and drag Semper into Applications. Requires macOS 15.4 or later.

The current release is v1.0.0, published 2026-08-26, and contains the Sound utility. The other modules described above are not in this download; building from source runs current development code.

With Homebrew:

brew install --cask niharnm/tap/semper

Or from the terminal:

curl -fL https://github.com/niharnm/Semper/releases/latest/download/Semper.dmg -o "$HOME/Downloads/Semper.dmg" && open "$HOME/Downloads/Semper.dmg"

Semper updates itself through its built-in updater. Only download Semper from GitHub Releases or Homebrew. Do not download a Semper DMG from an unofficial source.

Architecture Highlights

  • Independent Utilities: Home puts up to four pinned actions and utility summaries first. Keyboard search runs actions with Up/Down and Return; the full catalog and session history expand on demand. Modules can be searched and filtered. Add, pause, or remove modules individually; adding a module starts no service and requests no permission. Detailed controls open in a native window.
  • Manual Window Layout: Eleven actions arrange eligible windows into horizontal or vertical halves, four quarters, maximize, center, or restore the preceding placement. Each has an optional shortcut. Full-height windows and targets are refused, which can limit left/right halves and maximize when both the Dock and menu bar auto-hide. Source integration and native acceptance are tracked in the product status guide.
  • Local Image Copies: File Shelf's Resize a Copy action saves one local JPEG or PNG at up to 1,024 or 2,048 pixels on its longest edge without enlargement or overwriting a file. It removes descriptive metadata and requires a destination that supports macOS file cloning. See the image-copy guide for format, size, recovery, and native acceptance limits.
  • Local Awake Sessions: Public IOKit power assertions prevent idle system sleep, optionally keep the display on, and keep timed user sessions separate from Scene requests.
  • Authenticated Away Curtain: One opaque panel covers each display, ordinary input is filtered, and local widgets can show time, battery, Away duration, and awake-request state.
  • Swift 6 & Core Audio TCC Taps: Built using modern Swift 6 strict concurrency (@MainActor, Sendable) and low-latency CoreAudio process taps.
  • ISO 226 Equal-Loudness Compensation: Dynamic frequency contour adjustment matching human psychoacoustics at varying volume levels.
  • Capability-Aware Audio Routing: Per-application routing to independent output devices (e.g. video calls to AirPods, music to desktop monitors) with automatic hardware capability detection.
  • Verified Per-Output Gain & Peak Limiting: Above-unity software master gain is offered only after Semper confirms an active single-output processing route, and its displayed range matches the enforced output limit (up to 300%).
  • AutoEQ Engine: 10-band parametric EQ supporting AutoEQ headphone profiles and custom user presets.
  • Ramped Mono Audio: Combines left and right channels for managed apps without abrupt signal changes, while retaining output balance control.
  • Transactional Scenes: Saves audio, Awake, and supported external display settings together, verifies each change, and keeps a restore point that respects later user changes.
  • Timed Presentation: Preview selected display, Sound, and workspace targets, then run a finite session with its own Awake request. End and restore through the same scene journal and owned window receipts. See the module guide for recovery limits.
  • External Display Controls: Reads and sets brightness and contrast on uniquely identified DDC-compatible displays outside App Store builds.
  • Liquid Glass Interface: High-vibrancy macOS design system with dynamic Tahoe-style HUDs, balance controls, and menu bar interaction.

Requirements

  • macOS 15.4 or later
  • Starting an Awake session requires no additional macOS permission.
  • Away requires Accessibility access for its active input filter. macOS may also require Input Monitoring. Mac authentication can use Touch ID, Apple Watch when available, or the account password through Apple's system dialog.
  • Sound requires Screen & System Audio Recording permission for CoreAudio process taps.
  • Microphone permission is used only for input-device monitoring.
  • Accessibility permission is optional for system media-key control.
  • Workspace Restore and Window Layout actions require Accessibility access to read and move app windows.

Away is a Semper privacy curtain, not the macOS Lock Screen or an operating-system security boundary. Force Quit, Semper failure, restart, administrator or Accessibility control, remote access, authorized capture software, and display-change timing can expose the desktop. Its awake request does not prevent lid-close sleep, manual Sleep, or forced low-power sleep.

Building from Source

git clone https://github.com/niharnm/Semper.git
cd Semper
open Semper.xcodeproj

Unsigned local Release build:

xcodebuild \
  -project Semper.xcodeproj \
  -scheme Semper \
  -configuration Release \
  -derivedDataPath ./build \
  CODE_SIGN_IDENTITY="" \
  CODE_SIGNING_REQUIRED=NO \
  CODE_SIGNING_ALLOWED=NO \
  build

The output binary is placed at build/Build/Products/Release/Semper.app.

To build the current GitHub main commit and replace the installed app, run:

/usr/bin/curl -fsSL https://raw.githubusercontent.com/niharnm/Semper/main/scripts/update-local.sh | /bin/bash

The updater shows the installed and GitHub versions, asks for confirmation, then replaces /Applications/Semper.app and reopens it. Declining leaves the installed app unchanged. This is a local source build, not a signed public release. It requires a Developer ID Application or Apple Development identity in your keychain so macOS can recognize later source updates as the same app.

Documentation & Guides

Contributing

External pull requests are welcome for the current release and ongoing work.

Documentation fixes, isolated tests, device reports, and accessibility work are useful contributions. Changes to the real-time audio callback need focused tests and a clear safety argument.

Legal

License

Semper is distributed under the Apache License 2.0 (Apache-2.0).

Copyright (C) 2026 Nihar Manchikakapudi and contributors.

About

Open-source per-app volume mixer, audio router, and equalizer for macOS.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages