{
  "name": "docker",
  "kind": "bundled",
  "title": "Docker",
  "description": "Containers, images and Compose projects over the docker CLI. Enter starts or stops a container; logs open in the panel, a shell in a terminal.",
  "version": "0.1.0",
  "icon": "󰡨",
  "author": "pal",
  "spec": "github:zcag/pal/extensions/docker@pali",
  "source": "https://github.com/zcag/pal/tree/pali/extensions/docker",
  "commit": "a84c75d8e1ff65aae49fd8acc1cf888a84c8a465",
  "manifest": {
    "name": "docker",
    "title": "Docker",
    "description": "Containers, images and Compose projects over the docker CLI. Enter starts or stops a container; logs open in the panel, a shell in a terminal.",
    "version": "0.1.0",
    "icon": "󰡨",
    "author": "pal",
    "repo": "bundled",
    "license": "MIT",
    "settings": [
      {
        "kind": "text",
        "id": "binary",
        "label": "Binary",
        "description": "The CLI to run: docker, or podman (its docker-compatible commands are what is used).",
        "placeholder": "docker",
        "default": "docker"
      },
      {
        "kind": "number",
        "id": "ttl",
        "label": "Refresh after",
        "description": "Seconds a listing stays good for: the palettes list again on show only once the rows are older than this. Read when the extension loads.",
        "min": 0,
        "max": 3600,
        "unit": "s",
        "default": 10
      },
      {
        "kind": "select",
        "id": "terminal",
        "label": "Terminal (macOS)",
        "description": "Which terminal Shell opens. Auto picks the first installed of kitty, Ghostty, Alacritty, iTerm2, Terminal. On Linux $TERMINAL, else kitty, foot, alacritty, xterm.",
        "options": [
          {
            "id": "auto",
            "title": "Auto"
          },
          {
            "id": "kitty",
            "title": "kitty"
          },
          {
            "id": "Terminal",
            "title": "Terminal"
          },
          {
            "id": "iTerm2",
            "title": "iTerm2"
          },
          {
            "id": "Ghostty",
            "title": "Ghostty"
          },
          {
            "id": "Alacritty",
            "title": "Alacritty"
          }
        ],
        "default": "auto"
      }
    ],
    "store": {
      "tagline": "Start, stop, log and shell into containers from the panel",
      "category": "developer",
      "features": [
        "Every container, running ones first: the image under the name, the published ports (`8080:80`), docker's status (`Up 27 hours`) and a coloured state tag on the right",
        "`enter` stops a running container (after a confirm) or starts a stopped one; `cmd+l` opens its last 200 log lines in the panel; `cmd+t` opens a terminal with a shell inside it",
        "Images: `enter` asks for a name and `host:container` ports in a form, then `docker run -d`",
        "Compose projects docker knows of: `up -d`, `down`, `restart`, logs, open the project folder",
        "Podman works through the same commands: set `binary = \"podman\"`",
        "Without the binary, or with the daemon down, one hint row says which; a slow command goes on in the background and the toast says so"
      ],
      "permissions": [
        "docker",
        "automation"
      ],
      "platforms": [
        "macos",
        "linux"
      ],
      "screenshots": [
        {
          "file": "1-containers.png",
          "caption": "Containers, running first, with ports, status and a state tag"
        },
        {
          "file": "2-actions.png",
          "caption": "What a running container can do: stop, logs, shell, restart, remove"
        },
        {
          "file": "3-logs.png",
          "caption": "The last 200 log lines of a container, opened in the panel"
        },
        {
          "file": "4-run.png",
          "caption": "Running an image: the name and the ports, then docker run -d"
        }
      ],
      "actions": [
        {
          "title": "Stop",
          "description": "A running container; asks first.",
          "keys": "enter"
        },
        {
          "title": "Start",
          "description": "A stopped container.",
          "keys": "enter"
        },
        {
          "title": "Logs",
          "description": "The last 200 lines, stdout and stderr, in the panel.",
          "keys": "cmd+l"
        },
        {
          "title": "Shell",
          "description": "A terminal running docker exec (bash when the image has it, sh otherwise).",
          "keys": "cmd+t"
        },
        {
          "title": "Restart",
          "keys": "cmd+shift+r"
        },
        {
          "title": "Remove",
          "description": "docker rm -f, docker rmi or compose down; asks first.",
          "keys": "cmd+d"
        },
        {
          "title": "Copy id",
          "keys": "cmd+c"
        },
        {
          "title": "Run…",
          "description": "An image: a form for the name and ports, then docker run -d.",
          "keys": "enter"
        },
        {
          "title": "Up",
          "description": "A Compose project: compose up -d.",
          "keys": "enter"
        },
        {
          "title": "Down",
          "description": "Stops and removes the project's containers and networks; asks first.",
          "keys": "cmd+d"
        },
        {
          "title": "Open project folder",
          "keys": "cmd+o"
        }
      ]
    },
    "palettes": {
      "docker": {
        "kind": "live",
        "description": "Every container, running first: start, stop, restart, logs, a shell, remove.",
        "keys": [
          {
            "keys": "enter",
            "title": "Stop a running container, start a stopped one"
          },
          {
            "keys": "cmd+l",
            "title": "Logs"
          },
          {
            "keys": "cmd+t",
            "title": "Shell in a terminal"
          },
          {
            "keys": "cmd+shift+r",
            "title": "Restart"
          },
          {
            "keys": "cmd+d",
            "title": "Remove"
          },
          {
            "keys": "cmd+c",
            "title": "Copy id"
          }
        ]
      },
      "images": {
        "kind": "live",
        "description": "Local images: run one (name and ports asked), remove, copy the id.",
        "keys": [
          {
            "keys": "enter",
            "title": "Run, after a form for the name and ports"
          },
          {
            "keys": "cmd+c",
            "title": "Copy id"
          },
          {
            "keys": "cmd+d",
            "title": "Remove"
          }
        ]
      },
      "compose": {
        "kind": "live",
        "description": "Compose projects docker knows of: up, down, restart, logs.",
        "keys": [
          {
            "keys": "enter",
            "title": "Up"
          },
          {
            "keys": "cmd+l",
            "title": "Logs"
          },
          {
            "keys": "cmd+shift+r",
            "title": "Restart"
          },
          {
            "keys": "cmd+d",
            "title": "Down"
          },
          {
            "keys": "cmd+o",
            "title": "Open project folder"
          }
        ]
      }
    }
  },
  "updated_at": "2026-09-16T16:35:58Z",
  "url": "https://pal.cagdas.io/extensions/docker",
  "tagline": "Start, stop, log and shell into containers from the panel",
  "category": "developer",
  "screenshots": [
    "https://pal.cagdas.io/extensions/docker/screenshots/1-containers.png",
    "https://pal.cagdas.io/extensions/docker/screenshots/2-actions.png",
    "https://pal.cagdas.io/extensions/docker/screenshots/3-logs.png",
    "https://pal.cagdas.io/extensions/docker/screenshots/4-run.png"
  ],
  "panel_screenshots": [
    "https://pal.cagdas.io/extensions/docker/screenshots/1-containers.png",
    "https://pal.cagdas.io/extensions/docker/screenshots/2-actions.png",
    "https://pal.cagdas.io/extensions/docker/screenshots/3-logs.png",
    "https://pal.cagdas.io/extensions/docker/screenshots/4-run.png"
  ],
  "bar_screenshots": [],
  "has_bar": false,
  "bar_items": [],
  "has_readme": true
}
