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 conjet
git clone https://github.com/omega13-engr/conjet.git cd conjet swift build swift test
Run the CLI from source:
swift run conjet --help
Check your setup:
conjet doctor
Start Conjet:
conjet start
Check status:
conjet status
Restart the runtime:
conjet restart
Restart prunes runtime cache before shutdown when Conjet Core is already running.
Update the Conjet Core VM image:
conjet update
Run a container:
conjet run hello-world
Use Compose:
conjet compose up
Repair stale Docker metadata:
conjet docker repair --project my-compose-project conjet docker repair --project my-compose-project --apply --restart
Use 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 status
Conjet 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 shell
Stop Conjet:
conjet stop
See all commands:
conjet --help
Profiles let you keep separate Conjet environments.
conjet --profile work start conjet --profile work status conjet --profile work stop
You 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 release
Project-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 benchmarks
Run 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-local
Run 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-local
Energy 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 eco
balanced 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-local
Conjet 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.