The lazier way to manage everything docker
Find a file
g-battaglia 065a57e445 Port lazydocker to lazyapple for Apple Container runtime
Rewrite of lazydocker to work with Apple's native container CLI instead of Docker.

- Replace Docker SDK with Apple Container CLI wrapper
- Remove docker-compose/services/projects support
- 4 panels: Containers, Images, Volumes, Networks
- Remove all Docker Go dependencies
- Rename binary to lazyapple
- Update README with install and usage instructions
2026-03-18 15:22:06 +01:00
.circleci remove dead code 2022-02-22 18:10:03 +11:00
.claude Add claude settings file 2026-03-15 14:53:48 +11:00
.devcontainer add dev-container 2022-11-15 19:40:26 +11:00
.github Use even newer Go version 2025-12-20 09:39:26 +11:00
assets Add subble job ad 2025-10-29 21:56:08 +11:00
config Improve projects support 2026-03-15 14:53:48 +11:00
docs Improve projects support 2026-03-15 14:53:48 +11:00
hooks Added Docker automated build hook and readme badges for Docker 2019-07-02 14:06:44 +02:00
pkg Port lazydocker to lazyapple for Apple Container runtime 2026-03-18 15:22:06 +01:00
scripts Port lazydocker to lazyapple for Apple Container runtime 2026-03-18 15:22:06 +01:00
test update demo docker compose project 2022-11-15 19:40:26 +11:00
vendor Port lazydocker to lazyapple for Apple Container runtime 2026-03-18 15:22:06 +01:00
.dockerignore Git commit reference mechanism changed 2019-07-01 15:37:55 +02:00
.gitignore Port lazydocker to lazyapple for Apple Container runtime 2026-03-18 15:22:06 +01:00
.golangci.yml Fix types 2025-11-14 21:20:28 +11:00
.goreleaser.yml Replace github with tap in brews in goreleaser config 2021-03-24 22:00:35 +01:00
CODE-OF-CONDUCT.md repurpose lazygit code 2019-05-12 10:32:02 +10:00
CONTRIBUTING.md go mod tidy in docs 2022-05-09 20:23:45 +10:00
coverage.txt feat(docker): Honor the host specified in current docker context (#464) 2023-10-09 17:13:22 +11:00
docker-compose.yml Improve projects support 2026-03-15 14:53:48 +11:00
Dockerfile Upgrade Go version from 1.21 to 1.23 in Dockerfile 2025-11-14 13:32:29 +01:00
go.mod Port lazydocker to lazyapple for Apple Container runtime 2026-03-18 15:22:06 +01:00
go.sum Port lazydocker to lazyapple for Apple Container runtime 2026-03-18 15:22:06 +01:00
lazycontainer Port lazydocker to lazyapple for Apple Container runtime 2026-03-18 15:22:06 +01:00
LICENSE repurpose lazygit code 2019-05-12 10:32:02 +10:00
main.go Port lazydocker to lazyapple for Apple Container runtime 2026-03-18 15:22:06 +01:00
README.md Port lazydocker to lazyapple for Apple Container runtime 2026-03-18 15:22:06 +01:00
test.sh test.sh: fix file not being executable 2024-07-15 11:00:44 +02:00

lazyapple

A terminal UI for Apple Container -- the native macOS container runtime introduced in macOS 26.

This is a fork of lazydocker by Jesse Duffield, rewritten to work with Apple's container CLI instead of Docker.

What is this?

Apple introduced a native container runtime for macOS. It ships a CLI tool called container that can run Linux containers without Docker. lazyapple gives you a terminal UI to manage those containers, just like lazydocker does for Docker.

What works

  • Containers: list, start, stop, restart, kill, remove, view logs, exec shell, view stats/env/config/top
  • Images: list, pull, remove, prune
  • Volumes: list, remove, prune
  • Networks: list, remove, prune

What doesn't exist (because Apple Container doesn't support it)

  • No docker-compose / services / projects
  • No pause/unpause
  • No attach (use exec shell instead)
  • No events streaming (polling is used)
  • No --since or --timestamps on logs

Requirements

  • macOS 26 (Tahoe) or later
  • Apple Container CLI installed (container command available in PATH)

Verify it works:

container list --all

If you get command not found, Apple Container is not installed on your system.

Install

Build from source

git clone https://github.com/g-battaglia/lazy-apple-container.git
cd lazy-apple-container
go build -o lazyapple .

Run it

./lazyapple

Optional: install to PATH

sudo cp lazyapple /usr/local/bin/

Then just run lazyapple from anywhere.

Keybindings

Global

Key Action
q / Ctrl+C Quit
1 Containers
2 Images
3 Volumes
4 Networks
x / ? Menu
Enter Focus main panel
PgUp / PgDn Scroll
[ / ] Prev/next tab
/ Filter list

Containers

Key Action
s Stop
r Restart (stop + start)
k Kill
d Remove
E Exec shell
a Attach (exec shell)
m View logs in terminal
e Toggle stopped containers
w Open in browser

Images / Volumes / Networks

Key Action
d Remove
b Bulk commands (prune, etc.)

Config

Config lives at ~/.config/lazyapple/config.yml.

gui:
  scrollHeight: 2
  sidePanelWidth: 0.333
  theme:
    activeBorderColor:
      - green
      - bold
logs:
  tail: "100"
stats:
  graphs:
    - caption: CPU (%)
      statPath: DerivedStats.CPUPercentage
      color: blue
    - caption: Memory (%)
      statPath: DerivedStats.MemoryPercentage
      color: green

How it differs from lazydocker

lazydocker lazyapple
Runtime Docker Engine Apple Container
CLI docker container
Compose Yes No
Services/Projects panels Yes No
Pause/Unpause Yes No
Events API Yes (streaming) No (polling)
Platform Linux, macOS, Windows macOS 26+ only

Credits

Fork of lazydocker by Jesse Duffield. All the TUI framework, panel system, and keybinding infrastructure comes from the original project.

License

MIT