FEATURES
The window
Kiri’s window shows what runs in the engine and lets you act on it without typing a docker command. It’s a native macOS window around one small web page, and it talks to the same daemon the docker CLI uses, so anything you start from a terminal shows up here and the other way round.
The sidebar
The sidebar has two groups. Docker lists Containers, Images, Volumes and Networks, each with a count. Kiri has Settings. At the bottom, a panel shows the Linux VM: whether it’s running, how many containers run, its CPUs, and how much memory it holds out of the most it may take, with a meter. Its button reads Start or Stop.
Stop stops every running container and lets the VM sleep. Start wakes it (and starts the daemon first if it isn’t running). When the engine isn’t reachable at all, the main area says Kiri is not running with a Start Kiri button.
Containers 3 running · 4
Above each list is its title, a short summary (for containers, “3 running · 4”; for images, the count and total size) and a Filter field that narrows the list as you type.
| Section | Columns | Actions on each row |
|---|---|---|
| Containers | Name, Image, State, Ports, Size, Created | Open (when it has a local name), Start or Stop, ⋯ |
| Images | Repository, Tag, ID, Size, Created, Pulled | Run, Pull, Remove |
| Volumes | Name, Driver, Created | Remove |
| Networks | Name, Driver, Subnet, Created | Remove (not for bridge, host or none) |
Images also has a Search Docker Hub field with a Pull button, and a bar on each image while it pulls. Removing an image that stopped containers were made from asks first and removes them with it; if one of them is running, Kiri tells you to stop it first.
Compose projects
Containers with the same Compose project label are grouped under one row: the project name, “Compose · 2 of 3 running”, and buttons for the whole project. Start all starts the members that aren’t running and Stop all stops the ones that are. The group’s ⋯ menu has Restart all and Remove project. Click the group row to fold it away or open it again. See Compose for the names each service gets.
Sorting and columns
Click a column heading in Containers or Images to sort by it, and click again to reverse. Images start sorted by when they were pulled, newest first. A Compose group sits where its first member lands in the sort. Drag the edge of a heading to resize a column; double-click the edge to reset it. Kiri keeps the widths with its other window settings in ~/.kiri/ui.json.
Status pills
Every container shows its state as a coloured dot and a few words. A running container counts its uptime live, every second. A stopped one says how it ended, from its exit code.
The container’s ⋯ menu holds the actions that don’t have a button of their own:
- Ports… opens an editor: a port on your Mac (leave it empty to pick a free one), an arrow, the port in the container, and tcp or udp. A running container keeps running while its ports change.
- Pause or Resume, for a running or paused container.
- Restart, when it’s running or paused.
- Remove, which removes the container even if it’s running.
A container’s page
Click a container’s name to open its page. The title becomes a breadcrumb, Containers › web, and the head shows the name, the image (and Compose project), the status pill and its local address when it has one. On the right are Open, Restart, Stop (or Start) and the same ⋯ menu. Four tabs sit underneath.
Containers › web
| Tab | What it shows |
|---|---|
| Overview | For a running container, live cards for CPU, Memory, Network (in and out) and Processes, each with a one-minute chart you can hover. Then its details: image, command, ID, created and started (or finished) times, exit code, ports, restart policy, networks with their addresses, mounts, working directory, user and environment. |
| Logs | The container’s output as it comes. Find in logs filters the lines, and the level menu (All levels, Error, Warn, Info, Debug) keeps one level, guessed from words like error or warn in each line. Follow keeps the newest line in view; Clear empties the view. The window keeps the last 5,000 lines. |
| Terminal | A command line in the container. Each command runs with sh -c, cd carries over to the next one, the prompt shows the user, host and directory, and ↑ and ↓ go through earlier commands. Type clear to empty it. For a full interactive shell, Open in Terminal opens macOS Terminal with docker exec -it into the container, using bash if it has it, else sh. The container must be running. |
| Files | The container’s files, folder by folder, with size and modified time. Select a file to preview it (text up to 256 KB). Save to Downloads copies it out; Show in Finder opens it where Kiri shows container files in Finder. |
Import, toasts and updates
When OrbStack or Docker Desktop is running and has images, named volumes or containers that Kiri doesn’t, a strip appears under the lists: “Docker Desktop has 12 images and 2 volumes that aren’t in Kiri yet.” Review opens a window where you tick what to copy over. × hides the strip until that engine has more than it had then. The same lists are in Settings → Import. Moving from Docker Desktop explains what an import copies.
Results show as toasts in the bottom-right corner. A success stays about 3.5 seconds and an error 6 seconds, and any toast stays while the pointer is on it. A finished pull gets its own toast, “nginx:alpine is ready”, with the time it took and a Run button. Starting an image from Run says which ports it got.
When a new release is out, a card in the same corner offers Download, Snooze (tomorrow or in a week) and Skip this version. The download’s progress shows in the status bar, then Restart now or Later, which installs it when you quit Kiri. See Updates.
Text size, status bar and Feedback
View in the menu bar changes the text size of the whole window: Zoom In (Cmd +), Zoom Out (Cmd −) and Actual Size (Cmd 0). They step through the four sizes in Settings → Appearance → Text size: 90%, 100%, 110% and 125%. Settings also has the theme, accent colour and fonts; see Settings.
The status bar along the bottom shows Kiri’s version, the VM’s state, how many containers run (click it to go to Containers), the VM’s memory, the Kubernetes version when a cluster runs, and docker → kiri: the context the docker command uses by default. At the right end is Feedback, for an idea or a bug report.
How the lists stay current
You don’t need to refresh the window. The daemon sends an event for every change, from the window or from a terminal, and the lists are fetched again after each burst of events.
The window asks for the lists again every 30 seconds even without an event, so times like “3 min ago” keep moving, and the VM panel updates every 2 seconds. Those requests are marked as background: they don’t count as use, so an open window never keeps an idle VM awake. Pills count their uptime in the page itself, once a second.
docker run and friends do on Kiri.SettingsAppearance, resources, network, import and domains.© 2026 Kiri · runkiri.com