https://github.com/arcboxlabs/arcbox-desktop
Native macOS GUI for ArcBox — containers, VMs, and sandboxes at your fingertips. Open Source alternative to OrbStack.
https://github.com/arcboxlabs/arcbox-desktop
apple-silicon containers docker firecracker kubernetes local-first macos rust sandbox virtual-machines virtualization
Last synced: 2 months ago
JSON representation
Native macOS GUI for ArcBox — containers, VMs, and sandboxes at your fingertips. Open Source alternative to OrbStack.
- Host: GitHub
- URL: https://github.com/arcboxlabs/arcbox-desktop
- Owner: arcboxlabs
- License: apache-2.0
- Created: 2026-02-09T14:52:14.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2026-04-01T08:51:05.000Z (3 months ago)
- Last Synced: 2026-04-01T17:14:44.795Z (3 months ago)
- Topics: apple-silicon, containers, docker, firecracker, kubernetes, local-first, macos, rust, sandbox, virtual-machines, virtualization
- Language: Swift
- Homepage:
- Size: 3.49 MB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# ArcBox
**Native macOS GUI for ArcBox — containers, VMs, and sandboxes at your fingertips.**
[](https://www.apple.com/macos/)
[](https://swift.org)
[](https://github.com/arcboxlabs/arcbox-desktop/releases)
[](LICENSE-MIT)
---
## Overview
ArcBox is the official graphical interface for the [ArcBox](https://github.com/arcboxlabs/arcbox) runtime. It communicates with `arcbox-daemon` over gRPC and the Docker Engine API, providing a three-column interface for managing your entire ArcBox environment.
```
┌─────────────────────┐
│ ArcBox │ SwiftUI
└──────────┬──────────┘
│ gRPC + Docker API (Unix socket)
▼
┌─────────────────────┐
│ arcbox-daemon │ Rust
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Linux Guest VM │
│ arcbox-agent │
└─────────────────────┘
```
## Features
- **Docker** — containers, images, volumes, networks; logs, terminal, file browser
- **Kubernetes** — pods and services
- **Machines** — full Linux VM lifecycle, SSH, terminal
- **Sandboxes** — create from templates, manage lifecycle
- **Real-time sync** — Docker event stream with debounced UI updates
- **Privileged helper** — XPC daemon for Docker socket symlink, CLI install, DNS config
- **Auto-updates** — Sparkle framework for OTA distribution
## Requirements
- macOS 15 (Sequoia) or later
- Apple Silicon (M1+)
- Xcode 16+ (for building)
## Development Setup
```bash
# Clone
git clone https://github.com/arcboxlabs/arcbox-desktop.git
cd arcbox-desktop
# Configure local build settings
cp Local.xcconfig.example Local.xcconfig
# Edit Local.xcconfig: set DEVELOPMENT_TEAM and SENTRY_DSN
# Open in Xcode
open ArcBox.xcodeproj
```
The build automatically fetches `arcbox-daemon` and `arcbox-agent` binaries from your local [arcbox](https://github.com/arcboxlabs/arcbox) build or cache. To build them from source:
```bash
cd ../arcbox
cargo build --release -p arcbox-daemon
cargo build --release -p arcbox-agent --target aarch64-unknown-linux-musl
```
## Project Structure
```
ArcBox/ SwiftUI app
├── Views/ 60 view files (Containers, Images, Machines, ...)
├── ViewModels/ MVVM state management
├── Models/ Data models
├── Services/ DockerEventMonitor
├── Components/ Reusable UI components
└── Theme/ Design tokens
ArcBoxHelper/ Privileged XPC helper (runs as root)
Packages/
├── ArcBoxClient/ gRPC client library (protobuf generated stubs)
└── DockerClient/ Docker Engine API client (OpenAPI generated)
LaunchDaemons/ launchd plist for daemon and helper
scripts/ Build, packaging, and distribution scripts
```
## Tech Stack
| Layer | Technology |
|-------|------------|
| UI | SwiftUI + `@Observable` |
| Daemon communication | gRPC (grpc-swift + protobuf) |
| Docker API | OpenAPI-generated client |
| Privileged operations | NSXPCConnection |
| Daemon management | SMAppService |
| Crash reporting | Sentry |
| Auto-updates | Sparkle |
## License
Licensed under either of
- [MIT license](LICENSE-MIT)
- [Apache License, Version 2.0](LICENSE-APACHE)
at your option.