zc-workstationDocumentation PDF GitHub

Menu bar app and ZC Care

ZCBar, the macOS menu bar app over zc-workstation, and ZC Care, its window for cleaning, protecting and tuning the Mac.

.md

ZCBar is a macOS menu bar app over the CLI. It shows what zc-workstation would change, the Mac’s vitals and updates in a panel, and opens ZC Care, a window that cleans, protects and tunes the Mac. Each change ZCBar makes is one you approve first.

It lives in apps/menubar, a Swift package for macOS 14 and later.

Install

From the Homebrew tap, with the CLI it needs:

$ brew tap zoolcoder/zc-workstation https://github.com/zoolcoder/zc-workstation
$ brew install --cask zcbar

Each release builds ZCBar for Apple silicon and Intel and signs it ad hoc, not yet with a Developer ID, so macOS blocks the first start: open it once from the Finder with Control-click, Open. gh attestation verify ZCBar_<version>.zip --repo zoolcoder/zc-workstation checks the zip was built by the release workflow.

From a clone of the repository:

$ make app-install
installed ~/Applications/ZCBar.app; open it once, then tick Open at login

make app builds bin/ZCBar.app, signed ad hoc. make app-install copies it to ~/Applications. An app opened from the Finder gets no shell environment, so if ZC_WORKSTATION_CONFIG is set, app-install hands that path to the app once. Choose Config… in the panel changes it later.

The panel

Click the menu bar mark, or press ⌃⌥Z, to open the panel. Its tabs:

Tab Shows

Mac

Disk, memory, CPU, battery, network and sensors, the largest junk folders to free up, and advice. Each tile opens a detail.

Overview

Each target with what is in place and missing, Apply per target, and a link into the dashboard.

Updates

Outdated packages and runtimes, with Update per item and Update All….

Health

doctor findings with Fix, Copy Fix and Ignore.

Services

Homebrew services and launchd agents, with Start, Run Now and their logs.

Its settings turn on notifications, the ⌃⌥Z hotkey, the weekly Smart Care scan and opening at login. If SketchyBar is installed, ZCBar hands it the count of open items for its zcbar item.

ZC Care

Open ZC Care in the panel opens a window with one module per job. A module opens on an intro that says what it does. Its Scan reads the Mac; nothing changes until you press a module’s clean or remove button and confirm.

ZC Care’s Cleanup module
Module Does

Smart Care

Scans everything at once and sums it up in cards: junk, clutter, updates and health. Run cleans up, then updates.

Cleanup

Clears caches, logs, build output, npx packages and Mail downloads. Clears AI clutter: Claude Code temp files and old versions, and the caches and logs of Claude, Cursor, ChatGPT, Windsurf, Codex, Gemini CLI and Chrome DevTools MCP. Empties the Trash.

Protection

Gatekeeper’s verdict on each app, the apps that run in the background, the privacy permissions apps hold, and each browser’s history, cookies and cache, cleared only while that browser is closed.

Performance

Login items, background apps and maintenance tasks: free RAM, flush DNS, thin Time Machine snapshots, reindex Spotlight, and clean Homebrew, Docker and simulators.

Applications

Every app with its size and last use. Uninstalls an app with what it keeps in the Library. Adopt replaces an app installed by hand with its Homebrew cask and declares it. Finds what removed apps left behind.

My Clutter

Large files, duplicates, similar images, old downloads and installers. Similar images are photos Vision finds alike; the one with the most pixels stays.

Space Lens

A map of what fills your home folder.

Developer

Dependencies of projects untouched for 90 days, such as node_modules and virtualenvs, and local AI models from Ollama, LM Studio and Hugging Face.

My Tools

Every tool as a searchable card, including Screen Cleaning Mode, which blacks out the screens and locks the keyboard until you click Done.

My Activity

Mac health, disk use, the space ZC Care freed by kind, recommendations from the last scan, and recent activity.

ZC Care’s My Tools grid

zcbar://care opens the window, and zcbar://care/<module> opens a module by the start of its name, such as zcbar://care/cleanup. zcbar://panel/<tab> opens a panel tab.

What it never touches

  • Chats, settings and sessions of AI tools: ~/.claude/projects, ~/.codex/sessions and the Claude Code version ~/.local/bin/claude runs.

  • A Claude Code temp folder used in the last day: a running session owns it.

  • Caches of apps that are open.

Where it goes

Junk, caches and AI clutter are deleted: each tool makes them again. Files, apps, leftovers, dependencies and models go to the Trash, where you can put them back. A Homebrew app is uninstalled through zc-workstation remove, so it also leaves the Brewfile. Maintenance tasks that need an administrator ask for your password in a macOS dialog.

ZC Care keeps its last scan in ~/Library/Caches/dev.zoolcoder.zcbar and the activity log in ~/Library/Application Support/dev.zoolcoder.zcbar, outside the caches it clears.

Permissions

Reading the privacy permissions needs Full Disk Access for ZCBar. An ad hoc signed build is a new app to macOS, so each rebuild asks again. Emptying the Trash asks once to let ZCBar control the Finder.

Develop

$ make app-test      # swift test, the ZCBarCore tests
$ make app           # bin/ZCBar.app
$ make app-icon      # redraw the icons from apps/menubar/icon/mark.svg

ZCBarCore holds the logic, with no UI, and is what the tests cover. ZCBar is the SwiftUI app over it. CI builds and tests both on a macOS runner.

Edit this page Last updated

Keyboard shortcuts

Ctrl/⌘ K or /
Search the docs
↑ ↓ Enter
Move through the search results
← →
Previous or next page
f
Filter the pages in the sidebar
g h
Home
t
Cycle the theme
?
This list
Esc
Close a menu or the search results