cool-docker-commands / dok
v0.1 · Rust · reads the docker socket · MIT

Docker output,
made readable.

cool-docker-commands ships one binary — dok. It reads the Docker socket and prints it for humans: colour that means something, compose grouping, human sizes and ages, and real themes. What eza is to ls.

Install Source
dok ps -a output with containers grouped by compose project
dok ps -a — grouped by compose project, with ids, state, health, ports and ages.

Ten commands

One static screen each. Pipes like any Unix tool.

  • dok pscontainers, grouped by project
  • dok imagessize and age gradients
  • dok dfdisk usage, reclaimable bars
  • dok inspectthe JSON, folded and masked
  • dok logsmerged tail, level colouring
  • dok topprocess tree inside containers
  • dok treeprojects, networks, volumes
  • dok statslive CPU / memory dashboard
  • dok eventscolour-coded daemon events
  • dok themeslist and preview themes

Why it exists

Same data, rendered for a human instead of a parser.

  • read-onlyno start, stop, exec or rm — ever
  • no shell-outtalks to the socket directly
  • one binaryno runtime, nothing to daemonise
  • ci-safecolour and icons off when piped
  • themablepalette, glyphs and layout
  • demo modedok ps --demo, no daemon needed
0commands
0themes
0runtime deps
dok df disk usage bars
dok df — what to prune.
dok tree of projects, networks and volumes
dok tree — how it wires up.
dok inspect folded into sections
dok inspect — secrets masked.

Install

One binary, no runtime dependencies. Needs a reachable Docker daemon — it honours DOCKER_HOST, the default socket and Windows named pipes.

$ brew install alsaadii98/tap/dok

Themes

Palette, glyph set and layout — not just colour. The ascii theme is genuinely ASCII.

default
dracula
nord
gruvbox
catppuccin
tokyonight
solarized-light
mono
matrix
ascii

Configure

dok themes --init writes this to ~/.config/dok/config.toml.

theme = "mine"
icons = "nerd"        # auto | nerd | unicode | none

[themes.mine]
base   = "gruvbox"    # any built-in
glyphs = "heavy"      # unicode|ascii|heavy|slim
layout = "grid"       # default|ruled|grid|quiet
header = "dim"        # underline|bold|dim|caps
green  = "#00ff00"    # override any role

Or just dok ps --theme nord.

dok logs merged and colour-coded
dok logs — one stable colour per container, stderr marked on the separator, JSON exploded into level msg key=value.