README.md

July 20, 2026 · View on GitHub

Build CodeQL GitHub release (latest by date) Downloads License C++

Star this project

AudioPlaybackConnector2 is a small Windows tray app for connecting paired Bluetooth audio devices as Windows playback outputs. It uses the Windows AudioPlaybackConnection API so you can connect, disconnect, and reconnect A2DP devices without opening Windows Settings.

AudioPlaybackConnector2 device picker

Built with WinUI 3 Desktop, C++/WinRT, and distributed as MSIX.

Quick Start

  1. Pair your Bluetooth speaker, headset, or other A2DP audio device in Windows.
  2. Download the latest .appinstaller and .cer from Releases.
  3. Trust the .cer certificate once.
  4. Open the .appinstaller file to install the app with its update feed.
  5. Launch AudioPlaybackConnector2 and use the tray icon to manage devices.

For commands and certificate-store options, see Installation.

Features

  • Tray-only workflow with no main window.
  • Fast device picker on left-click.
  • Connect, reconnect, and disconnect devices from the picker.
  • Double-click the tray icon to toggle the configured default device, or the most recently connected device.
  • Disconnect or reconnect all active devices from the tray menu.
  • Global and per-device auto-reconnect on startup.
  • Device aliases for cleaner picker, notification, and command-line labels.
  • Privacy mode to redact real device names and IDs in UI, CLI output, and diagnostics.
  • Support and diagnostics tools for Bluetooth settings, log folder access, and redacted bug-report details.
  • Guarded device actions so repeated clicks do not start overlapping connect/disconnect work.
  • Animated, theme-aware tray icons for idle, connecting, connected, and error states.
  • Toast notifications for connection events, failures, and available updates.
  • Optional start with Windows.
  • Manual update checks through GitHub Releases and the App Installer feed.
  • Settings window placement persistence.
  • Local crash reports and minidumps for troubleshooting.
  • Native Stream Deck plugin source and example profile.
  • Localized UI in eight languages.

Requirements

  • Windows 10 version 2004 or newer.
  • A Bluetooth adapter with A2DP support.
  • A paired Bluetooth audio playback device.
  • MSIX installation through a release package or local build.

Usage

  • Open device picker: Left-click the tray icon.
  • Open tray menu: Right-click the tray icon.
  • Quick toggle: Double-click the tray icon to connect or disconnect the last connected device.
  • Settings: Open from the tray menu to configure language, startup behavior, reconnect behavior, notifications, and update checks.
  • Command line: Use apc2ctl.exe from PowerShell, MacroPads, Stream Deck actions, or scripts:
apc2ctl status
apc2ctl list
apc2ctl show
apc2ctl settings
apc2ctl connect --name "Device Name"
apc2ctl disconnect --id "<Windows device id>"
apc2ctl toggle --default
apc2ctl default set --alias "Desk Speakers"
apc2ctl alias set --name "WH-1000XM5" --value "Headphones"
apc2ctl reconnect-all

Add --json for machine-readable output. Add --raw when you explicitly need real device IDs or names while privacy mode is enabled.

Stream Deck

The official Stream Deck SDK plugin (currently in beta — expect bugs and report them via GitHub issues) is available as a .streamDeckPlugin asset with each release. Open that file to install it in Stream Deck. Its source is in integrations/stream-deck. It wraps apc2ctl.exe and includes actions for default-device toggle/connect/disconnect/reconnect, reconnect all, disconnect all, opening the picker, and opening Settings.

Installation Notes

The recommended install path is the .appinstaller file from the latest release. It preserves update-feed behavior and pulls in required framework packages such as VCLibs and the Windows App SDK runtime.

Direct .msix installation is still possible, but missing framework dependencies may need to be installed manually and update-feed behavior is not preserved.

Releases are currently signed with a self-signed certificate, so Windows must trust the release .cer before installation.

Documentation

Privacy and Crash Reports

  • Settings are stored locally in the current user profile.
  • No telemetry is sent by the app.
  • Update checks query GitHub release metadata.
  • Privacy mode can redact real Bluetooth device names and IDs from the UI, command-line output, and copied diagnostics.
  • Crash reports and minidumps stay on your machine unless you choose to share them.
  • Minidumps may contain sensitive memory; review them before attaching them to an issue.

Supported Languages

  • English
  • German
  • French
  • Spanish
  • Japanese
  • Korean
  • Chinese Simplified
  • Chinese Traditional

Credits

Inspired by ysc3839/AudioPlaybackConnector.

License

MIT License. See LICENSE.