Open-source project
lingyired/status-trio avatar
lingyired/status-trio

Status Trio: one macOS icon for Wi-Fi, battery and volume in the menu bar or Dock

Status Trio — a native macOS app that combines Wi-Fi, battery, and volume into one compact, configurable status icon for the menu bar, the Dock, or both, inspired by the iPhone Duo combined status bar.

802 stars46 forksSwiftApache-2.0

At a glance

What is it?
Status Trio is a native Swift macOS app that folds Wi-Fi, battery and volume into a single configurable status icon, with a popover that goes deeper than the icon: a Wi-Fi panel, a Bluetooth panel, battery details and the output device. The idea comes from the iPhone Duo's combined status bar, with volume replacing cellular data.
Who is it for?
Adopt Status Trio if you are on macOS and want the three signals you check constantly condensed into one glyph, especially if you like the iPhone Duo idea and would rather not keep separate menu bar items. Do not adopt it if you rely on the stock macOS Control Centre, since the app replaces rather than augments it, or if you need the three indicators side by side rather than stacked.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The iPhone Duo idea adapted, with volume taking the cellular slot

Status Trio is a native macOS status app that combines Wi-Fi, battery and volume into one compact, configurable icon, shown in the menu bar, in the Dock, or in both. The inspiration is stated directly in the project description: the iPhone Duo's combined status bar icon for Wi-Fi, battery and cellular data, adapted for Mac with volume in place of cellular data.

That substitution is the whole design idea in one sentence, and it explains the shape of the product. A combined icon has to decide how three states share one glyph, so the app supports a middle slot that a playing Bluetooth device can occupy with its own symbol, and it draws the volume as either dots or an arc, with the option to scale the Bluetooth icon from 100 percent to 180 percent. The iPhone comparison is not a visual shorthand for the screenshots, it is the reason the settings panel has the options it has.

The project states that it is an independent project and is not affiliated with Apple, which is the correct disclaimer for a third party app that imitates a first party design. The language is Swift, the app is built as a Swift package with Sources/, Tests/ and a Package.swift at the root, and the licence is Apache-2.0 with a NOTICE file alongside it.

The popover goes past the icon, and that is the real feature

The icon is the hook, but the popover is where the work is. The documentation lists what it contains: a Wi-Fi panel for nearby networks and link details, a Bluetooth panel for paired devices, a Battery Details page, and the audio devices that are playing.

The battery row shows percentage, whether it is charging or plugged in, time to full, and a colour when the battery runs low, and opening the row reveals adapter power, voltage, current, cycle count and the Low Power Mode state. The volume row shows the level, the mute state and the output device, and the documentation notes you can scroll the whole panel or just the volume control, and pick which direction raises the volume.

The Wi-Fi side is deliberately restrained. It shows the current network and the signal strength, and opening it gives nearby networks, link details and a way to switch Wi-Fi off, but switching between networks is left to the Wi-Fi pane of System Settings. That is a sensible division of labour, and it is also a limitation worth naming: the app can turn the radio off but cannot move you between networks, which is a decision about how much control to take over a system setting that Apple has opinions about.

Bluetooth audio can take the middle slot, and network errors outrank it

The Bluetooth feature is the part that makes Status Trio more than a battery and Wi-Fi glance, and it is off by default.

Two switches under Settings, Bluetooth control it. The first lets the middle glyph become the connected device's own symbol, so AirPods, headphones and speakers each supply their own, and the second lets the volume dots or arc turn blue while audio plays over Bluetooth. A third option, Let network errors take priority, is on by default and keeps the network glyph in the middle when the connection itself is in trouble, which is a sensible priority order since a failing network matters more than a playing track.

The Bluetooth row in the popover reports live state, with the names of connected devices and, for AirPods, the left, right and case battery levels. The panel itself lists paired devices and their connection state, so you can tap a device to connect it and tap a connected one to disconnect, and keyboards, mice, trackpads and gamepads ask for confirmation in the row first. The panel is enabled under Settings, Status Panel, and it asks for Bluetooth permission the first time you use it.

Battery level reading for Bluetooth devices is separately controllable and on by default, the paired device list can be dragged into the order the panel shows with a limit on how many appear, and the Bluetooth icon scale runs from 100 to 180 percent. The project describes the whole Bluetooth area as useful, but it is opt in, which keeps the permission prompt off the critical path for people who never connect audio.

Configuration runs from icon size to which sections the popover shows

The customisation surface is where a small utility app either earns its place or gets dismissed, and this one leans towards the former.

You can set the icon size, the symbol scale, the ring thickness, the status colours, and which sections the popover shows and in what order. The Dock icon can follow the system appearance or stay fixed dark or fixed light, and the same live icon can sit in the menu bar, in the Dock, or in both places at once. The project ships a screenshot set showing eight Dock icon states with symmetrically arranged dark and light backgrounds, including Wi-Fi, Bluetooth audio, battery, dots and arc states, which is a better argument for the flexibility than a description would be.

Interaction is native rather than web-like, with a left-click opening the popover and a right-click opening the menu, and a first-launch guide that explains each part of the icon. There is also a small nicety for people whose network is not Wi-Fi, since Ethernet, a hotspot or Internet Sharing can keep the Wi-Fi glyph if you would rather not have it change. On the engineering side, the app is a Swift package with SwiftUI and AppKit in the dependency area, a Tests/ directory, and a Package.resolved file, and the sources live in Sources/ with supporting material in Support/ and analytics/.

Freshness comes from system events with a slow poll as the fallback

How the app stays current is a small paragraph with a real design decision in it. Status comes from system events, with a slow poll as a fallback. That ordering is the correct way round for a status indicator, since an event driven update costs nothing while nothing is happening, and the fallback poll covers the case where the system stops emitting events, which is what happens when a display sleeps or a machine resumes from sleep.

Updates are handled with Sparkle through a signed feed, and the repository contains an appcast.xml, a release.json and a release-notes/ directory, so the update channel is a real feed with real release notes rather than a build number. The release workflow badge points at a GitHub Actions workflow for building and releasing macOS, and the release history is recent: v1.6.0 on 2026-10-15, v1.5.1 on 2026-10-09 and v1.4.0 on 2026-09-30, with the last push on 2026-10-20.

Two details about the packaging are worth carrying forward. The download is a universal build for Apple Silicon and Intel with a macOS 13 target, and the badge explicitly says that Ventura runtime validation is pending, which is the kind of caveat a project states when it targets a minimum version it has not yet exercised on the oldest supported release. There is also a status-menubar-demo.html and a status-menubar.svg at the repository root, which is how the browser simulator at statustrio.lingai.net can show every icon state without a Mac in front of you.

Twelve languages, optional launch at login, and a fork friendly tree

The project ships more polish than a typical menu bar utility, and the repository structure reflects it.

Twelve languages are included, with the README itself translated into Simplified Chinese, Traditional Chinese, Japanese, Korean, Spanish, French, German, Brazilian Portuguese and Russian alongside the English original. There is an optional launch at login. The tree includes docs/, scripts/, skills-lock.json, an AGENTS.md, a .agents/ directory and a .superpowers/ directory, which is a fairly heavy set of automation conventions for a small utility, and the .github/ directory holds the release workflow that produces the signed builds.

For anyone who wants to look at the icon states without installing anything, the browser simulator is the fastest route. The project suggests opening statustrio.lingai.net to simulate every icon state in your browser, and the download link is the latest release on the GitHub releases page.

The scoping of the app is what limits it, not the implementation. It is a status display, not a control centre, and the Wi-Fi section deliberately stops short of switching networks while the volume section does more, offering a scroll and a direction choice. The Dock and menu bar placement, the appearance override, the configurable section order and the twelve languages are the extent of what you are buying, and for the stated purpose that is enough.

Editorial conclusion

Adopt Status Trio if you are on macOS and want the three signals you check constantly condensed into one glyph, especially if you like the iPhone Duo idea and would rather not keep separate menu bar items. Do not adopt it if you rely on the stock macOS Control Centre, since the app replaces rather than augments it, or if you need the three indicators side by side rather than stacked. Before you install, read the release notes for the version you pick, and note that the project targets macOS 13 with a universal binary for Apple Silicon and Intel while the badge states that Ventura runtime validation is still pending.

Frequently asked questions

What does Status Trio show in its status icon?

It combines Wi-Fi, battery and volume in one configurable icon for the menu bar, the Dock, or both. The battery part shows percentage, charging or plugged in state, time to full and a low battery colour, the Wi-Fi part shows the network and signal strength, and the volume part shows level, mute state and output device as dots or an arc.

Can Status Trio show AirPods or other Bluetooth devices?

Yes, with the Bluetooth panel enabled under Settings, Status Panel. Two switches under Settings, Bluetooth let the middle glyph become the connected device's own symbol and let the volume dots or arc turn blue while audio plays, and the row reports AirPods left, right and case battery levels.

Can I see what Status Trio looks like before installing it?

Yes. The project hosts a browser simulator at statustrio.lingai.net where every icon state can be simulated, and the repository also contains a status-menubar-demo.html file and a status-menubar.svg for the same purpose. The app itself is downloaded from the latest release on the GitHub releases page.

Which macOS versions does Status Trio support?

The download badge describes a universal build for macOS with a macOS 13 target, and another badge states that the macOS 13 deployment target still has Ventura runtime validation pending. The binary covers both Apple Silicon and Intel.

How does Status Trio stay updated and how is it installed?

Status comes from system events with a slow poll as a fallback, and updates arrive through Sparkle over a signed feed, with the appcast.xml, release.json and release-notes/ directory in the repository. Builds are produced by a GitHub Actions workflow, and the recent releases are v1.6.0, v1.5.1 and v1.4.0.

Official sources

  1. License: Apache-2.0
  2. lingyired/status-trio on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/lingyired-status-trio.svg)](https://hysenlabs.com/projects/lingyired-status-trio)

Was this useful?