A lightweight macOS menu bar application for Docker and Podman container monitoring and management.
Status: Beta preview. ContainerBar is actively developed and not yet positioned as production-grade.
ContainerBar provides instant access to Docker and Podman container status directly from your macOS menu bar. Monitor running containers, view real-time CPU and memory metrics, and perform quick management actions—all without opening a browser or terminal.
Works seamlessly with Docker Desktop or Podman on your local machine, or connects to remote Docker/Podman hosts via SSH.
This project was inspired by Peter Steinberger's excellent CodexBar application. After seeing CodexBar in action, I thought: what if I could do something similar for my Docker containers on my homelab server? Instead of constantly opening Portainer or SSH-ing into my server just to check container status, I wanted that information right in my menu bar — one click away.
- Menu Bar Access: View container status at a glance from your menu bar
- Docker & Podman: Full support for both container runtimes with automatic defaults
- Real-time Metrics: Monitor CPU, memory usage across all containers
- Service Icons: Visual icons identifying container types (databases, web servers, caches, etc.)
- Quick Actions: Start, stop, restart, view logs, and remove containers with one click
- Multiple Hosts: Connect to local Docker Desktop/Podman or remote hosts via SSH
- Host Picker: Quickly switch between hosts directly from the dashboard
- Container Details: View image, ports, network, and resource usage per container
- Auto-Updates: Built-in update checking via Sparkle
- Native Experience: Built with Swift and SwiftUI for a true macOS-native feel
- macOS 14 (Sonoma) or later
- Docker Desktop or Podman (for local containers), or a remote Docker/Podman host accessible via SSH
brew tap michaeltookes/tap
brew install --cask containerbarDownload the latest release from the Releases page, open the DMG, and drag ContainerBar to your Applications folder.
# Clone the repository
git clone https://github.com/michaeltookes/ContainerBar.git
cd ContainerBar
# Build the release
./scripts/build-release.sh
# The app will be at dist/ContainerBar.appFor a complete walkthrough with screenshots, see the Getting Started Guide.
- Launch ContainerBar — the icon appears in your menu bar
- If Docker Desktop or Podman is running, ContainerBar connects automatically
- Click the menu bar icon to see your containers
- Click the ContainerBar icon in your menu bar
- Hover over Hosts → click Add Host...
- Select the runtime (Docker or Podman)
- Enter a name, hostname/IP, and SSH user
- Click Add
Note: SSH key-based authentication must be configured for remote connections. The correct remote socket path is set automatically based on the selected runtime.
- Xcode 15.0+ (for Swift 6.0)
- Swift 6.0+
# Development build
swift build
# Release build
swift build -c release
# Run tests
swift testContainerBar/
├── Package.swift # Swift Package Manager configuration
├── Sources/
│ ├── ContainerBar/ # macOS application
│ │ ├── ContainerBarApp.swift # App entry point
│ │ ├── AppDelegate.swift # Application delegate
│ │ ├── StatusItemController.swift # Menu bar management
│ │ ├── Stores/ # State management
│ │ └── Views/ # SwiftUI views
│ └── ContainerBarCore/ # Business logic library
│ ├── Models/ # Data structures
│ ├── API/ # Docker API client
│ └── Services/ # Connection services
├── Tests/ # Unit tests
├── Distribution/ # Release assets (icons, entitlements)
├── scripts/ # Build and release scripts
├── docs/
│ ├── GETTING_STARTED.md # User guide
│ └── images/ # Documentation screenshots
└── .claude/agents/ # Claude Code agent documentation
├── DESIGN_DOCUMENT.md # Technical specification
└── PROJECT_ORCHESTRATION.md # Project orchestration guide
Contributions are welcome! Please read the design document at .claude/agents/DESIGN_DOCUMENT.md before submitting changes.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests (
swift test) - Submit a pull request
This project is licensed under the MIT License.
- Inspired by CodexBar by Peter Steinberger
- Vibe coded with Claude Opus 4.5 by Anthropic
- Built with Swift 6 and modern Apple frameworks
- Uses KeyboardShortcuts for global hotkey support
- Uses Sparkle for automatic updates
