Thanks for your interest in contributing. This document covers the basics of how to get involved.
- Fork the repo and clone your fork
- Open
ContainerManager/ContainerManager.xcodeprojin Xcode 26 beta - Make sure you have the container CLI installed and
container system startrunning - Build and run with Cmd+R
See the README for full prerequisites.
Open an issue with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Your macOS version and hardware (Intel vs Apple Silicon)
Open an issue describing the feature and why it would be useful. If it involves UI changes, a rough sketch or description of the interaction helps.
- Create a branch from
mainfor your change - Make your changes — keep commits focused and descriptive
- Test that the app builds and runs correctly
- Open a pull request against
main
- Follow standard Swift conventions and SwiftUI patterns
- Use
@Observablefor view models (notObservableObject) - Keep views focused — extract reusable components into
Views/Components/ - All CLI interaction goes through
CLIExecutorin the Services layer, not directly in views or view models - Parse CLI output as JSON (
--format json) where the CLI supports it
The app follows a straightforward MVVM pattern:
Views → ViewModels → Services → CLIExecutor → container CLI
See ARCHITECTURE.md for the full breakdown and the reasoning behind design decisions.
- Bug reports from people actually using the app with real containers
- UI/UX improvements — better layouts, accessibility, keyboard shortcuts
- Support for more container CLI features (e.g.,
container runoptions, build support) - Testing on different macOS 26 beta versions
Be respectful. This is a small project and everyone's here to make it better. Harassment, trolling, or unconstructive criticism won't be tolerated.