A k9s-style terminal UI for managing Apple's container runtime on macOS.
- 🚀 Fast, keyboard-driven interface inspired by k9s
- 📦 Manage containers, images, volumes, networks + builder, registry, system + sub-screens
- 🎨 Customizable themes (TOML skins, including k9s skin importer)
- 📜 Multi-source log streaming with ring buffer, follow-tail, save, and level coloring
- 🔨 Background jobs for builds, pulls, pushes —
Ctrl+Zdetach,:jobsre-attach - 🖱️ Mouse support (click row, click header to sort, scroll wheel)
- 🐳 Docker compatibility shim —
:install-docker-shiminstalls adockerwrapper that maps Docker CLI calls onto Apple'scontainer, so existing scripts and tools keep working - ☁️ Azure Container Registry login —
:acr-loginrunsaz acr login --expose-tokenand stores the credential in Apple'scontainerfor ~3 hours so subsequent pulls and pushes just work - 🛡️ Read-only mode —
--readonlyhides destructive bindings
- Apple Silicon Mac
- Apple
container0.12 or later
brew tap torosent/c9s
brew install c9sDownload the Apple Silicon archive from the latest release, extract, and put c9s on your PATH:
curl -L -o c9s.tar.gz https://github.com/torosent/c9s/releases/latest/download/c9s_0.1.0_darwin_arm64.tar.gz
tar -xzf c9s.tar.gz
sudo mv c9s /usr/local/bin/
c9s --versiongit clone https://github.com/torosent/c9s.git
cd c9s
make build
./bin/c9s --versionFor development setup (linters, formatters, tests), see docs/contributing.md.
After building, launch:
./bin/c9sYou'll land on the containers screen. Press ? to see the keybinds. Type :q and Enter (or press Ctrl+C) to quit.
c9s is keyboard-driven. Press : to open the command palette, then type any of the commands below (Tab autocompletes). All commands live in internal/ui/palette/catalog.go if you want the canonical list.
| Command | Alias | What it does |
|---|---|---|
:containers |
:c |
Container list (default screen) |
:images |
:i |
Image list |
:volumes |
:v |
Volume list |
:networks |
:n |
Network list |
:builder |
:b |
Builder status |
:registry |
:reg |
Configured registry logins |
:system |
:sys |
System services overview |
| Command | What it does |
|---|---|
:df |
Disk usage breakdown |
:dns |
DNS domains (CRUD) |
:property |
System properties (edit / reset) |
:kernel |
Kernel-only properties (read-only viewport) |
:logs |
Live container system logs --follow |
| Command | What it does |
|---|---|
:pulses |
Live health dashboard |
:xray |
Resource relationships tree |
:jobs |
Background streaming jobs (build / pull / push) |
:pinned |
Bookmarked resources |
:errors |
Error log viewer |
| Command | Args | What it does |
|---|---|---|
:run |
<image> |
Launch a new container (run modal) |
:build |
<path> |
Build an image from a directory |
:pull |
<ref> |
Pull image from registry |
:push |
<ref> |
Push image to registry |
:create |
<name> |
Create resource on the active screen |
:tag |
<src> <dst> |
Tag an image |
:save |
<ref> <tar> |
Save image to a tar file |
:load |
<tar> |
Load image from a tar file |
:login |
<host> |
Open the registry login modal |
:acr-login |
<registry> |
Azure Container Registry login via Azure AD (details) |
:prune |
— | Remove all stopped containers (with confirmation; also Shift+P on the containers screen) |
| Command | Args | What it does |
|---|---|---|
:skin |
<name> |
Switch to a TOML skin (try :skins to list) |
:skins |
— | Open an interactive skin picker |
:import-skin |
<path> |
Import a k9s YAML skin |
:install-docker-shim |
[path] |
Install a docker → container compatibility shim (details) |
:uninstall-docker-shim |
[path] |
Remove the c9s docker shim |
| Command | Alias | What it does |
|---|---|---|
:help |
:? |
Show help overlay for the active screen |
:quit |
:q, :exit |
Quit c9s |
c9s also exposes two sibling subcommands of its own (i.e. you run them in your shell, not inside the TUI):
c9s --version
c9s import-skin <path/to/k9s-skin.yaml> # import a k9s skin
c9s install-docker-shim [--path P] [--force] # install docker→container shim
c9s uninstall-docker-shim [--path P] # remove the shimmake install-tools # gofumpt, staticcheck, golangci-lint
make ci # format check + lint + race tests + coverage gate- Documentation site
- Architecture overview
- Quick start
- Configuration
- Skins
- Hotkeys reference
- k9s migration
- Contributing guide
c9s follows Semantic Versioning. Pre-1.0 releases (0.x.y) may include breaking changes between minor versions; we'll always note these in the changelog.
0.x.y— pre-1.0 development; minor versions may break.1.0.0+— stable; breaking changes only on major bumps.
See docs/contributing.md for development setup, testing, and how to release.
