status-trio README

The project's README from github.com/lingyired/status-trio. As one markdown file: README.md.

Eight Status Trio Dock icon states with symmetrically arranged dark and light backgrounds, including Wi-Fi, Bluetooth audio, battery, dots, and arc states

Status Trio app icon

Status Trio

lingyired/status-trio | Trendshift

Three system signals. One native macOS status icon — in your menu bar or the Dock.

Download for macOS — universal build, macOS 13 target; Ventura runtime validation pending

Want to see it in action first? Open statustrio.lingai.net to simulate every icon state in your browser.

Latest release Build and Release macOS workflow status License: Apache-2.0

macOS 13 deployment target; Ventura runtime validation pending Universal binary for Apple Silicon and Intel

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Français · Deutsch · Português (Brasil) · Русский

Status Trio menu bar icon showing the Wi-Fi glyph while connected to Wi-Fi, with its status popover open

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. Its popover goes deeper than the icon: 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. It is inspired by the iPhone Duo's combined status bar icon for Wi-Fi, Battery, and Cellular Data, adapted for Mac with Volume instead of Cellular Data.

Status Trio is an independent project and is not affiliated with Apple.

Highlights

Install

Install from the official Homebrew Cask:

brew install --cask status-trio

To update an existing Homebrew installation:

brew upgrade --cask status-trio

Or download the latest StatusTrio-*.dmg from GitHub Releases, open it, and drag Status Trio.app into /Applications.

The official release is signed with Developer ID and notarized by Apple. Open it normally after installation; no quarantine-removal command is needed. In-app updates use Sparkle with EdDSA signature verification.

Input, audio, and everyday controls

New on main (not yet released)

The following features are in the source on main, but are not included in the current GitHub / Homebrew release, 1.7.5:

Bluetooth audio

Pick Bluetooth Device as the middle icon under Settings › App Icon › Middle Icon and the middle glyph becomes that device's own symbol while it plays — AirPods, headphones, speakers, and other devices supply their own — and the volume dots or arc can turn blue. Show network problems instead, on by default, keeps the network icon while the connection itself is in trouble. The same picker also offers Network, Current Input Source, Battery Percentage, and Power (Watts):

Status Trio menu bar icon showing the AirPods glyph while AirPods are connected, with its status popover open

The popover's Bluetooth row reports live state: the names of connected devices and, for AirPods, left, right, and case battery. The Bluetooth panel lists paired devices and their connection state: tap a device to connect it, tap a connected one to disconnect — keyboards, mice, trackpads and gamepads ask for confirmation in the row first. The panel is off by default, is enabled under Settings › Status Panel, and asks for Bluetooth permission on first use. Settings › Bluetooth also controls whether the battery levels are read — on by default — lists the paired devices so you can drag them into the order the panel shows and set how many appear, and scales the Bluetooth icon from 100% to 180%.

Dock icon

The same live icon can live in the Dock instead of the menu bar, or in both places at once:

Status Trio live icon in the Dock with dark appearance
Dock icon in dark appearance

Status Trio live icon in the Dock with light appearance
Dock icon in light appearance

Status Trio in the Dock with the Bluetooth panel shown, light appearance
Bluetooth panel preview

The Dock icon draws the same combined icon as the menu bar, so with Bluetooth Device selected as the middle icon the device glyph takes over the middle there too. Its background can follow the system icon style or be pinned to a fixed shade:

Status Trio Dock icon in dark, light, and clear backgrounds, in two rows: the Wi-Fi state and Bluetooth audio replacing the Wi-Fi icon with blue volume dots

Icon states

Every state the combined icon can show, drawn by the app's own renderer — battery indicators on top, Wi-Fi (or the Bluetooth audio device that can replace it, when that option is on) in the middle, and volume dots or the arc at the bottom, turning blue while a Bluetooth device is playing:

Status Trio icon states: charging, plugged in, percentage, low battery, and Low Power Mode at the top; Wi-Fi signal, hotspot, temporary, shared, and wired states in the middle; Bluetooth audio replacing the Wi-Fi icon, keeping Wi-Fi during a network error, and blue volume dots and arc below that; volume dots and arc styles for every level at the bottom

The same states rendered for a dark menu bar:

The same Status Trio icon states in dark appearance: white glyphs on dark chips, green charging, red low battery and yellow Low Power Mode accents, and the brighter blue the app uses for Bluetooth audio on a dark menu bar

Requirements

Run from source

git clone https://github.com/lingyired/status-trio.git
cd status-trio
swift run StatusTrio

Build a local app

Build an ad-hoc-signed app bundle and launch it:

bash scripts/build-app.sh release

The bundle is created at dist/StatusTrio.app. To build without quitting or launching an existing instance, run:

bash scripts/build-app.sh release no-open

The ad-hoc-signed bundle is intended for local personal use. Gatekeeper may reject it if the bundle is transferred with quarantine metadata.

Usage

Known limitations

Two boundaries macOS and this project draw deliberately. Both are explained in Known limitations.

Languages

Status Trio follows the macOS preferred language by default and includes English, Simplified Chinese, Traditional Chinese, Japanese, Korean, Spanish, French, German, Italian, Brazilian Portuguese, Russian, and Arabic.

Community

Status Trio has a Chinese-language community for questions, feedback, and release discussion.

Status Trio QQ group QR code    Status Trio WeChat group QR code

Privacy

Status Trio reads system status locally. Optional anonymous usage statistics are sent to the first-party service only after you enable them; upgrades start with statistics off, and new installs ask during onboarding. The heartbeat contains a random installation ID, app and macOS versions, language, and icon placement, with no names, account details, network details, or hardware identifiers. See telemetry and privacy. Status Trio does not read or store Wi-Fi passwords or request Keychain access. Location access is optional for the current Wi-Fi network name and details; Bluetooth access is requested when you enable the Bluetooth panel. On main, the optional charge-to-full control uses a private PowerUI interface only when enabled; see its behavior and limits above.

Development

Run the risk-sized local verification (no GitHub Actions, signing, or release):

bash scripts/verify-local.sh quick BatteryMonitorTests
bash scripts/verify-local.sh docs
bash scripts/verify-local.sh full

Use quick for an isolated code change, docs for documentation or localization-only work, and full for state, concurrency, rendering, Helper, or build-pipeline changes. full builds a non-Universal development app bundle; it does not produce the release package.

When you need only a focused Swift test, keep using the existing test helper:

bash scripts/test.sh BatteryMonitorTests

Formal release verification is separate from daily development. A merged change is not a built artifact, and a built artifact is not a released version.

To build a worktree app alongside the main installation:

bash scripts/build-worktree.sh release

The helper derives a development bundle identifier and display name from the current branch. Both values can be overridden:

BUNDLE_ID=com.lingsmbp.StatusTrio.dev.settings-redesign \
APP_NAME="Status Trio (Settings Redesign)" \
bash scripts/build-worktree.sh release

The single-instance lock is scoped by bundle identifier, so differently identified builds can run at the same time.

Icon presentation API

For the three icon regions, update timing, Swift examples, and extension boundaries, see 三图形展示与更新 API. This documents the current internal API; an external plugin SDK is not implemented.

Technical baseline

Documentation

License

Copyright 2026 lingyired.

Licensed under the Apache License, Version 2.0. See LICENSE and NOTICE.

Author

Created and maintained by lingyired.
Website: https://statustrio.lingai.net/

Star History

Star History Chart

status-trio (lingyired/status-trio)

Searching Database…

What is this?A native macOS app that merges Wi-Fi, battery, and volume into one compact, configurable status icon, shown in the menu bar, the Dock, or both.
Where does the icon live, and what do I click?It sits in the menu bar, the Dock, or both. Left-click opens the status popover and right-click opens the native menu with version and quit actions.
What do I need to run it?The app targets macOS 13 or newer, though Ventura runtime validation is still pending. Building from source needs a Swift 6 toolchain with the macOS 26 SDK or newer.
Can I switch Wi-Fi networks right from the popover?Not directly: choosing a network opens the Wi-Fi pane of System Settings. Status Trio never reads or stores Wi-Fi passwords, since macOS has no public API to connect with a saved password.
Does it send my data anywhere?It reads system status locally. Anonymous usage statistics are sent only if you enable them; upgrades start with them off, and new installs are asked during onboarding.
What is the Bluetooth panel?It lists paired devices, lets you tap to connect or disconnect, and shows battery levels. It stays off until you enable it under Settings › Status Panel, and the volume indicator turns blue while a Bluetooth device plays.
What does the battery row show?Percentage, charging or plugged-in state, time to full, and a warning color when low. Opening the row adds adapter power, voltage, current, cycle count, and Low Power Mode.
Can the middle icon show something other than Wi-Fi?Yes. Under Settings › App Icon › Middle Icon you can pick Bluetooth Device, Network, Current Input Source, Battery Percentage, or Power (Watts).
What is only on the main branch, not released yet?Battery power flow, per-app CPU energy impact, and a Charge to Full Now button for Apple silicon Macs on macOS 26.4 or later. None of these are in release 1.7.5.
What inspired the design?The iPhone Duo's combined status bar icon, which covers Wi-Fi, Battery, and Cellular Data. This app swaps Cellular Data for Volume.
Creator
lingyired
Size
24.7 MB
Stars
1.3K
Age
1mo
Commits · 90 Days