YASB Reborn: A Python Status Bar for Windows 11
A highly configurable Windows status bar written in Python.
At a glance
- What is it?
- YASB (Yet Another Status Bar) replaces the Windows taskbar with a YAML-configured, widget-driven bar written in Python and built on PyQt6. It is aimed at Windows 11 users who want GlazeWM workspace indicators, hardware readouts and a custom look, and who accept Python 3.14 and a hand-edited config file.
- Who is it for?
- Adopt YASB if you already run GlazeWM or another tiling setup on Windows 11 and are comfortable editing YAML and restarting the bar to see changes. Skip it if you want a taskbar replacement that configures itself through a settings window, or if you cannot move to Python 3.14.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What YASB Reborn replaces, and for whom
Windows 11 ships one taskbar, and it is not meant to be rearranged. You can move it, hide some of it, or pin different icons, but the set of things it can show is fixed. YASB takes a different route: it draws its own bar as a separate window and leaves the system taskbar to be hidden or ignored. The README describes it as "a highly configurable status bar for Windows, written in Python, with support for many widgets, easy theming, and deep customization."
The audience is narrower than "Windows users." The widget list includes three GlazeWM widgets (binding mode, tiling direction, workspaces), which only make sense if a tiling window manager is running underneath. There is also an Active Windows Title widget, a Launchpad, a Control Center with sliders and media controls, and a Grouper for packing several widgets into one container. Someone who just wants a clock in the corner has cheaper options. Someone who has already replaced Explorer's window management with GlazeWM and wants the bar to match is the target reader.
How the bar is built: Python, PyQt6 and YAML widgets
The repository is a Python package managed by hatchling, with source under src/ and a pyproject.toml at the top level. The dependency list pins pyqt6==6.10.2, pydantic==2.13.4, pyyaml==6.0.3 and watchdog==6.0.0, plus a long run of winrt.windows.* packages at 3.2.1 covering notifications, Bluetooth, Wi-Fi, media control, display and credential APIs. In other words, the bar talks to Windows through the WinRT projections rather than scraping the registry or shelling out to PowerShell for each value.
The presence of watchdog and pyyaml together suggests the intended workflow: you edit a YAML file, and the running bar notices the change and reloads the widget rather than requiring a full restart. Pydantic sits between the YAML and the widget classes, which is how a malformed key can be caught and reported instead of silently ignored. A schema.json ships in the repository root, so editors that understand JSON Schema can validate the config as you type.
One dependency is not on PyPI: qt-css-engine is pulled from a git URL at github.com/Video-Nomad/qt-css-engine on the dev branch. That is a live branch reference, not a tag, so a build can pick up whatever that branch contains at install time. It is the least predictable line in the dependency set.
Widgets are grouped by function rather than by data source. CPU, GPU, Memory and Disk read local counters. Battery, Bluetooth, Microphone, Brightness and Language read device state. Media and Media Lite handle playback. Audio Visualizer and Cava both draw a spectrum, one through WASAPI loopback and one through Cava. The Custom widget is the escape hatch when nothing in the table fits.
Installing YASB with winget, Scoop or the MSI
The README points to an installation wiki page for system requirements and then lists four quick paths. The GitHub releases page hosts .msi installers split by architecture and install scope; the README says that for most devices the x64 per-user installer is the right pick.
WinGet is the shortest route on a machine that already has the client. Running it without a scope flag installs per user:
winget install AmN.yasbFor an all-users install, the README gives the machine-wide variant:
winget install --scope machine AmN.yasbScoop users add the extras bucket first, then the package. The README notes that updating through Scoop respects whichever scope was used at install time:
scoop bucket add extras
scoop install extras/yasbChocolatey is a single command:
choco install yasbAfter installation the bar starts and reads its configuration. The README does not print a sample config.yaml in the section shown, so the first real step is to open the wiki page for a widget you want, take the YAML fragment it documents, and paste it into your config. If you keep the file open in an editor that reads schema.json, unknown keys are flagged before the bar ever loads them. Expect to restart or reload after the first edit; the README does not state which widgets hot-reload and which need a full restart.
Where YASB gets in your way
The Python floor is 3.14. That is a hard requirement in pyproject.toml, not a suggestion, and it rules out any machine pinned to an older interpreter or a corporate image that lags behind. If you cannot install 3.14, the packaged installers are the only route, and they carry their own runtime.
Configuration is file-first. There is a Yasb-gui phrase in the related searches, but the README's own material describes YAML editing, a schema file and a wiki full of per-widget pages. Anyone expecting a settings dialog that covers every option will spend their time in a text editor instead.
The bar is a second window on top of the shell, not a modification of the shell. That means it can be covered by fullscreen games and apps, and it will not fix taskbar behaviour that lives inside Explorer. The README is silent on rollback and on how to remove YASB cleanly, so a user who wants the stock taskbar back has to work that out from the installer's own uninstall entry.
Finally, the qt-css-engine dependency tracks a git branch. If that branch breaks, a fresh install or rebuild breaks with it, and there is no pinned fallback in the dependency list.
YASB against the stock taskbar and Rainmeter
The obvious alternative is the Windows 11 taskbar itself. It is maintained by Microsoft, needs no Python, and survives feature updates without your intervention. What it will not do is show a GlazeWM workspace strip, a Nightscout glucose reading, or a Libre Hardware Monitor sensor value. YASB's value is exactly the set of things the stock bar refuses to display.
The closer comparison is Rainmeter, the long-standing Windows desktop customization tool. Rainmeter skins are also text-configured and community-distributed, and YASB's separate yasb-themes repository follows the same distribution model. The difference is in the runtime and the integration. Rainmeter skins are generally self-contained and read system data through plugins; YASB ships a fixed widget catalogue that binds directly to WinRT APIs for notifications, Bluetooth, Wi-Fi and media control, and it exposes first-class widgets for a specific tiling window manager. If your setup is GlazeWM plus a bar, YASB is the more direct fit. If you want a skin ecosystem that is not tied to one window manager, Rainmeter's model is broader.
A third option is to write your own bar. YASB's Custom widget exists for that, and it is the honest answer for anyone whose needs fall outside the catalogue.
Maintenance, licence and upgrade cost
The repository is not archived, and the last push was on 2026-09-21. The most recent release listed is v2.0.7 from 2026-09-11, preceded by a preview build on 2026-09-08 and v2.0.6 on 2026-08-07. That cadence, roughly a release a month with preview builds in between, tells you upgrades arrive often enough that you should not treat a working config as permanent.
Upgrade cost is concentrated in two places. The dependency pins are exact, so a new release can move PyQt6 or the winrt.* set and change behaviour under a widget you did not touch. And the config schema can gain or rename keys; schema.json is the fastest way to find out whether your file still matches after an update. Package-manager upgrades respect the scope you installed with, per the README, so a per-user install stays per-user.
The licence file is present in the repository root, and pyproject.toml declares license = "MIT", but the repository metadata reports the licence as NOASSERTION. That mismatch is worth resolving with whoever handles licensing on your side before you redistribute anything based on this code. Nothing here is legal advice.
Editorial conclusion
Adopt YASB if you already run GlazeWM or another tiling setup on Windows 11 and are comfortable editing YAML and restarting the bar to see changes. Skip it if you want a taskbar replacement that configures itself through a settings window, or if you cannot move to Python 3.14. Before committing, check the installation wiki page for your architecture and scope, and open the schema.json in the repository against your own config file to catch keys that the wiki does not describe.
Frequently asked questions
What is YASB on Windows?
YASB (Yet Another Status Bar) is a configurable status bar for Windows written in Python, described in the README as supporting many widgets, easy theming and deep customization. It draws its own bar on top of the shell rather than modifying the Windows taskbar.
Is YASB a good choice for a Windows 11 setup?
It fits if you want widgets the stock taskbar cannot show, such as GlazeWM workspaces, hardware sensors or media controls, and you are willing to edit YAML. It does not fit if you want a graphical settings dialog covering every option.
Is YASB safe to use?
The source is published on GitHub under amnweb/yasb with a pyproject.toml and a pinned dependency list, so the code and its dependencies can be inspected before installation. The repository metadata reports the licence as NOASSERTION while pyproject.toml declares MIT, which is worth clarifying before redistribution.
How do I remove YASB?
The README does not document an uninstall or rollback procedure, so removal depends on the method you used: the installer's own uninstall entry, or the matching winget, Scoop or Chocolatey removal command for the package you installed.
Official sources
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.
[](https://hysenlabs.com/projects/amnweb-yasb)