Super Sonic Speed containers for macOS developers.
Conjet is an open-source, Docker-friendly container runtime for macOS. It is designed to make local container development feel fast, simple, and natural.
Use Conjet when you want a lightweight macOS container workflow with quick startup, responsive project loops, Compose support, and clean command-line tools.
- Fast macOS container runtime
- Docker-compatible developer workflow
- Compose support for local projects
- Secure localhost Docker TCP/UDP port publishing
- Simple profiles for separate workspaces
- Project sync commands for local development
- Smart storage behavior for dependency and build-heavy projects
- Benchmark tooling for comparing Conjet, ReferenceRuntime, and Colima
- Energy benchmark path when macOS power metrics are available
- User-selectable energy modes:
performance,balanced, andeco
Kubernetes is not supported yet. It is planned for a later iteration.
brew tap omega13-engr/conjet https://github.com/omega13-engr/conjet.git
brew trust omega13-engr/conjet
brew install conjetgit clone https://github.com/omega13-engr/conjet.git
cd conjet
swift build
swift testRun the CLI from source:
swift run conjet --helpCheck your setup:
conjet doctorStart Conjet:
conjet startCheck status:
conjet statusRestart the runtime:
conjet restartRestart prunes runtime cache before shutdown when Conjet Core is already running.
Update the Conjet Core VM image:
conjet updateRun a container:
conjet run hello-worldUse Compose:
conjet compose upRepair stale Docker metadata:
conjet docker repair --project my-compose-project
conjet docker repair --project my-compose-project --apply --restartUse this when Docker lists stopped Compose containers but inspect, rm, or
compose up fails with No such container. The repair command defaults to a
dry run, verifies containerd has no matching object or task, and backs up stale
metadata before removal.
Inspect published ports:
conjet port list
conjet port diagnose 3000/tcp
conjet network statusConjet publishes Docker ports to localhost by default. Use conjet port list
and conjet port diagnose when you need to inspect a local service.
Open a shell:
conjet shellStop Conjet:
conjet stopSee all commands:
conjet --helpProfiles let you keep separate Conjet environments.
conjet --profile work start
conjet --profile work status
conjet --profile work stopYou can move Conjet state with:
export CONJET_HOME=/path/to/conjet-homeInitialize a project:
conjet project init .Attach it to Conjet:
conjet project attach .Push source into the Conjet workspace:
conjet sync push .Watch for changes:
conjet sync watch .Run a command in the project:
conjet project run --path . node:22-alpine npm installExport generated output:
conjet sync export dist --to ./exported --path .swift build
swift testRelease build:
swift build -c releaseProject-local Claude Code and Codex CLI agents and skills live in this repo for
release, runtime debugging, and macOS packaging work. See
docs/ai-agents-and-skills.md.
Conjet and Conjet Core images are released separately:
conjet-vX.Y.Zfor the CLI and daemonconjet-core-vX.Y.Zfor the VM image
Both release lanes use semantic versioning.
Conjet includes a separate benchmark package for local comparisons.
The benchmark runner can compare:
- Conjet
- ReferenceRuntime
- Colima
It reports timing, failures, topology labels, and energy data when power measurement is available. The benchmark output is comparison data, not a global performance claim.
Current benchmark positioning: Conjet can be described as faster than ReferenceRuntime on the measured warm, cold/no-cache, topology, and most cross-language local Docker workflow gates. Conjet has shown very low idle power in directional measurements, but active energy optimization is still ongoing.
Build the benchmark package:
swift build --package-path benchmarksRun benchmark tests:
swift test --package-path benchmarksRun the local comparison:
swift run --package-path benchmarks conjet-bench run \
--contexts conjet,reference-runtime,colima \
--samples 10 \
--output-dir benchmarks/reports/run-all-localRun only the energy benchmark:
swift run --package-path benchmarks conjet-bench energy-gate \
--contexts conjet,reference-runtime,colima \
--workloads idle,container-start-loop,hot-reload-loop,compose-loop,npm-install,pnpm-install,cargo-build \
--samples 10 \
--require-power \
--output-dir benchmarks/reports/energy-gate-localEnergy measurements may require sudo because macOS power metrics are
privileged.
Energy modes are selected on start:
conjet start --energy-mode balanced
conjet start --energy-mode performance
conjet start --energy-mode ecobalanced is the default. performance preserves the most aggressive latency
posture, while eco backs off background reconciliation and persistence and
can cap VM CPU allocation.
Run only the networking benchmark:
swift run --package-path benchmarks conjet-bench network-gate \
--contexts conjet,reference-runtime,colima \
--samples 10 \
--output-dir benchmarks/reports/network-gate-localConjet is under active development.
Current focus:
- faster local container workflows
- better project sync behavior
- broader benchmark comparisons
- active energy optimization
- production-ready macOS developer experience
Conjet is free and open source.
