{
  "markdown": "# Docker and Kubernetes DevKit\n\nGive Claude Code a careful, practical DevOps teammate for Docker and Kubernetes work.\n\nDocker and Kubernetes DevKit helps turn the moments that normally send you hunting through logs into a short, evidence-backed conversation: a failing build, a pod that never starts, a Service with no endpoints, a chart that is almost ready to ship, or a manifest that needs to be safe by default.\n\nIt is designed to be useful on a laptop with Docker Desktop just as much as in a production-oriented repository. It reads first, explains what it found, and asks before doing anything destructive.\n\n```mermaid\nflowchart LR\n    A[\"Your Docker or Kubernetes question\"] --> B[\"Claude Code\"]\n    B --> C[\"Docker and Kubernetes DevKit\"]\n    C --> D[\"Docker: builds, Compose, containers\"]\n    C --> E[\"Kubernetes: pods, events, manifests, RBAC\"]\n    C --> F[\"Helm: chart review and rendering\"]\n    D --> G[\"Clear diagnosis or safe next step\"]\n    E --> G\n    F --> G\n```\n\n## Install on macOS or Windows\n\nThis plugin is designed for direct use from GitHub - no marketplace approval, API key, or MCP configuration required. Download the release ZIP, unzip it, and point Claude Code at the extracted folder.\n\nFirst, make sure Claude Code is installed and current:\n\n- **macOS:** `brew install --cask claude-code`, or use Anthropic's native installer.\n- **Windows PowerShell:** `winget install Anthropic.ClaudeCode`, or use Anthropic's native installer.\n\n### Install through Claude Code\n\nFor an install that Claude Code can update later, run these commands inside a Claude Code session:\n\n```text\n/plugin marketplace add mohitkale/docker-kubernetes\n/plugin install docker-kubernetes@docker-kubernetes-marketplace\n/reload-plugins\n```\n\nChoose the install scope that suits you: **user** for every local project, **project** for collaborators, or **local** for this repository only. To get a later release, run `/plugin marketplace update docker-kubernetes-marketplace`, then use `/reload-plugins`.\n\n### macOS (Terminal)\n\n```bash\nmkdir -p \"$HOME/Downloads/claude-plugins\"\ncd \"$HOME/Downloads/claude-plugins\"\ncurl -L -o docker-kubernetes-v1.1.1.zip \\\n  https://github.com/mohitkale/docker-kubernetes/archive/refs/tags/v1.1.1.zip\nunzip docker-kubernetes-v1.1.1.zip\nclaude --plugin-dir \"$PWD/docker-kubernetes-1.1.1\"\n```\n\n### Windows (PowerShell)\n\n```powershell\n$pluginHome = Join-Path $HOME 'Downloads\\claude-plugins'\nNew-Item -ItemType Directory -Force -Path $pluginHome | Out-Null\n$zipPath = Join-Path $pluginHome 'docker-kubernetes-v1.1.1.zip'\nInvoke-WebRequest `\n  -Uri 'https://github.com/mohitkale/docker-kubernetes/archive/refs/tags/v1.1.1.zip' `\n  -OutFile $zipPath\nExpand-Archive -Path $zipPath -DestinationPath $pluginHome -Force\nclaude --plugin-dir (Join-Path $pluginHome 'docker-kubernetes-1.1.1')\n```\n\nThe plugin is active for that Claude Code session. Keep the extracted folder in a stable location and reuse the final command whenever you want it.\n\n### Load the ZIP directly (optional)\n\nClaude Code **v2.1.128 or later** can load the ZIP without extracting it:\n\n```bash\n# macOS Terminal\nclaude --plugin-dir \"$HOME/Downloads/claude-plugins/docker-kubernetes-v1.1.1.zip\"\n```\n\n```powershell\n# Windows PowerShell\nclaude --plugin-dir (Join-Path $HOME 'Downloads\\claude-plugins\\docker-kubernetes-v1.1.1.zip')\n```\n\nIf you cloned the repository instead, open a terminal at its root and run `claude --plugin-dir .`. Only download and load plugin code from a source you trust.\n\n## What you can ask for\n\n| When you say… | DevKit helps by… |\n|---|---|\n| “Why does this Docker build fail?” | Reading the build context, image metadata, logs, and Dockerfile to identify the root cause. |\n| “Add Postgres and Redis locally.” | Creating or improving a safe, health-checked Compose setup. |\n| “This pod is not starting.” | Pulling status, describe output, events, and the right logs without changing the cluster. |\n| “Make this app deployable.” | Writing production-minded Kubernetes manifests with resource limits, probes, labels, and security defaults. |\n| “Is this Helm chart ready?” | Reviewing chart metadata, templates, RBAC, resources, probes, and image practices. |\n| “Is this access too broad?” | Auditing Roles, ClusterRoles, bindings, and service-account permissions for least privilege. |\n\n## A few real-world workflows\n\n### Find a broken container quickly\n\n```text\n/docker-kubernetes:docker-debug payments-api\n```\n\nTypical response:\n\n```text\nRoot cause: the container exits because PORT is unset at startup.\n\nEvidence:\n- docker inspect shows exit code 1.\n- Container logs report: \"PORT must be set\".\n\nFix: set PORT=3000 in the runtime environment, then run the image again.\n```\n\n### Understand a pod that cannot start\n\n```text\n/docker-kubernetes:k8s-debug api-7c4d8b9f5d-xzq4p staging\n```\n\nTypical response:\n\n```text\nRoot cause: the pod cannot start because its configured command does not exist in the image.\n\nEvidence:\n- State: StartError\n- exec: \"/app/serve\": stat /app/serve: no such file or directory\n\nFix: change command/args to match the image ENTRYPOINT and CMD.\n```\n\n### Start with safer manifests\n\n```text\n/docker-kubernetes:manifest a Node API called catalog with 3 replicas and an Ingress\n```\n\nDevKit will use consistent Kubernetes labels, a pinned image tag, resource requests and limits, probes, non-root execution, and a PodDisruptionBudget when appropriate.\n\n### Check a chart before a release\n\n```text\n/docker-kubernetes:helm-review ./charts/catalog\n```\n\nThe review is read-only. It points out concerns such as `latest` tags, missing probes, broad RBAC, absent NetworkPolicies, or template patterns that make a chart hard to operate.\n\n## Commands\n\nUse commands from inside Claude Code with the `docker-kubernetes:` prefix.\n\n| Command | Use it when… |\n|---|---|\n| `/docker-kubernetes:doctor` | You want a quick local Docker and Kubernetes health check. |\n| `/docker-kubernetes:runtime-check` | You need to know which host, WSL, Docker Desktop, Kubernetes, Helm, or local-cluster path is available. |\n| `/docker-kubernetes:smoke-test` | You explicitly want to verify Docker, Compose, Helm, and kubectl locally. |\n| `/docker-kubernetes:events [namespace] [Warning\\|Normal]` | You need a recent, ordered event snapshot. |\n| `/docker-kubernetes:cluster-audit [namespace]` | You want one opt-in, read-only Docker/Kubernetes/RBAC/Helm review. |\n| `/docker-kubernetes:dockerfile [framework]` | You want a production-minded Dockerfile and `.dockerignore`. |\n| `/docker-kubernetes:compose [services]` | You want a local multi-service Compose setup. |\n| `/docker-kubernetes:docker-debug [container-or-error]` | A build, image, or container is failing. |\n| `/docker-kubernetes:k8s-debug <pod> [namespace]` | A pod or workload is not healthy. |\n| `/docker-kubernetes:manifest <description>` | You want Kubernetes YAML from a plain-English description. |\n| `/docker-kubernetes:helm-review [chart-path]` | You want a static Helm chart review. |\n| `/docker-kubernetes:rbac-review [namespace]` | You want a least-privilege RBAC audit. |\n\n## Built to be safe around real infrastructure\n\n- Diagnostic commands use read-only Docker and Kubernetes operations by default.\n- Changes such as `kubectl apply`, `delete`, `patch`, `edit`, image removal, or pruning require your explicit approval.\n- The plugin does not print values from `.env` files or Kubernetes Secrets.\n- Session hooks only look for project markers such as Dockerfiles, Compose files, charts, and manifest folders. They do not send project data to a separate service.\n- The optional smoke test creates a temporary scratch image and temporary files, then removes them. It does not apply Kubernetes resources or install a Helm release.\n\n## Optional local tools\n\nThe plugin itself has no package installation step. These tools unlock the matching capabilities:\n\n| Capability | What you need |\n|---|---|\n| Docker and Compose workflows | Docker Desktop or Docker Engine with `docker compose` |\n| Kubernetes workflows | `kubectl` and a valid context, such as Docker Desktop’s `docker-desktop` |\n| Helm rendering smoke checks | Helm on your PATH (`brew install helm` on macOS; `winget install Helm.Helm` on Windows) |\n| Hooks | Node.js on your PATH |\n\nStart with:\n\n```text\n/docker-kubernetes:runtime-check\n/docker-kubernetes:doctor\n```\n\nTo run the deliberate local verification path:\n\n```text\n/docker-kubernetes:smoke-test --target host\n```\n\n## What the smoke test proves\n\nWhen the tools are available, it checks all of the following without leaving a workload behind:\n\n1. Docker daemon access.\n2. A no-network `FROM scratch` image build, inspection, and cleanup.\n3. Compose configuration rendering.\n4. Helm linting and template rendering for a generated temporary chart.\n5. kubectl client access and local object generation with an isolated kubeconfig.\n6. Kubernetes API reachability.\n\n## Current boundaries\n\n- Helm review is intentionally static; it never runs `helm install` or `helm upgrade`.\n- The plugin does not yet include image scanning, Kustomize workflows, or Helm chart generation.\n- Windows container scenarios are not specifically tuned.\n\n## Developing the plugin\n\n```bash\nnode tests/run.js\nclaude plugin validate .\nnode bin/runtime-check.js\nnode bin/smoke-test.js --target host\n```\n\nThe offline test suite does not need Docker, Kubernetes, Helm, or a live cluster. The runtime and smoke commands are explicit opt-in checks.\n\n## Privacy and support\n\nSee [PRIVACY.md](PRIVACY.md) for the data-handling summary. For questions, feature requests, or bug reports, use the repository’s GitHub Issues page.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n",
  "bytes": 9617,
  "sha": "9ca1aa8b52649735f3d54186fcfc4a2df4b2f117f5a4ec11e6b52180f17a8802",
  "repo_slug": "mohitkale/docker-kubernetes",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_mohitkale_docker_kubernetes_docker_and_k_0be9b0c4/readme"
}