{
  "markdown": "# GCP DevKit for Claude Code\n\nGCP DevKit gives Claude Code a practical Google Cloud playbook for the moments that matter: a Cloud Run service is failing, IAM is too broad, Terraform needs to be safe by default, or a GKE workload needs a clean path to production.\n\nIt does not deploy into your account on its own. Instead, it helps you inspect, diagnose, generate, and verify with clear next steps that stay under your control.\n\n![Docker validation capture](docs/assets/docker-validation.svg)\n\n## Why install it\n\n- Get an incident-ready path for Cloud Run, GKE, Cloud Functions, Pub/Sub, and IAM failures.\n- Generate conservative Terraform with variables, labels, private defaults, and least-privilege IAM guidance.\n- Review IAM bindings and user-managed service account keys before a handoff or release.\n- Create safer Cloud Run, GKE, and Firestore starting points without having to remember every platform-specific detail.\n- Keep GCP context relevant: lightweight local hooks recognize Terraform, Cloud Run, App Engine, and Firestore artifacts in the project you opened.\n\n```mermaid\nflowchart LR\n  A[Your repository] --> B{What do you need?}\n  B -->|Investigate| C[Diagnose logs and configuration]\n  B -->|Build| D[Generate Terraform or manifests]\n  B -->|Review| E[Audit IAM or Firestore rules]\n  C --> F[Evidence and next verification]\n  D --> F\n  E --> F\n  F --> G[You choose whether to make cloud changes]\n```\n\n## What it helps with\n\n| Situation | Ask Claude Code |\n| --- | --- |\n| A Cloud Run revision is returning errors | `/gcp-devkit:gcloud-debug api in us-central1` |\n| You need a predictable Cloud Run deployment package | `/gcp-devkit:cloud-run-deploy node api in us-central1` |\n| You want to see who has risky IAM access | `/gcp-devkit:iam-audit my-project-id` |\n| You are starting a new GCP Terraform module | `/gcp-devkit:terraform-gcp Cloud Run API with Cloud SQL` |\n| A GKE workload needs Workload Identity and HTTPS | `/gcp-devkit:gke-manifest API behind a managed certificate` |\n| You need a Firestore rules review | `/gcp-devkit:firestore-rules audit firestore.rules` |\n| You want a quick environment and project check | `/gcp-devkit:doctor` then `/gcp-devkit:project` |\n\nFor a multi-step move from AWS or Azure, explicitly ask Claude to use the `gcp-devkit:migration-planner` agent. It will plan phases and tradeoffs; it does not make cloud changes.\n\n## Install\n\nGCP DevKit is a **Claude Code plugin**. It is not a Claude.ai chat attachment or an app that connects to a GCP account by itself. Install only a copy you trust, then review its source before enabling it in a sensitive environment.\n\n### Recommended: install from this GitHub marketplace\n\nIn Claude Code, run:\n\n```text\n/plugin marketplace add mohitkale/gcp-devkit\n/plugin install gcp-devkit@gcp-devkit-marketplace\n```\n\nThen start a new session or run `/reload-plugins`. Skills appear under the `gcp-devkit:` namespace.\n\n### Downloaded ZIP: macOS and Windows\n\nEach GitHub release should include a `gcp-devkit-vX.Y.Z.zip` asset. Claude Code supports loading a plugin ZIP directly for a session. This needs Claude Code 2.1.128 or later.\n\nmacOS Terminal:\n\n```bash\nclaude --plugin-dir \"$HOME/Downloads/gcp-devkit-v1.1.1.zip\"\n```\n\nWindows PowerShell:\n\n```powershell\nclaude --plugin-dir \"$HOME\\Downloads\\gcp-devkit-v1.1.1.zip\"\n```\n\nThis is the documented direct-ZIP route. Do not rely on an undocumented graphical \"upload\" flow in a Claude app, because availability can differ by platform and account. To make the plugin persistent, use the marketplace route above.\n\n### Install from a checked-out folder\n\nUseful for contributors on either platform:\n\n```bash\nclaude --plugin-dir /path/to/gcp-devkit\n```\n\nRun `/reload-plugins` after editing the local copy.\n\n## What runs locally\n\nThe plugin contains skills, three optional specialist agents, and two small Node.js hooks:\n\n| Component | Purpose | When it runs |\n| --- | --- | --- |\n| `session-start` hook | Detects common GCP project artifacts and suggests a relevant skill | Claude session start or resume |\n| `post-tool-use` hook | Reminds you to verify a Terraform, Cloud Run, GKE, IAM, or Cloud Build action | After a Bash command matching those patterns |\n| GCP commands and skills | Give Claude structured, scoped guidance | Only when you invoke or Claude selects them |\n\nThe hooks examine local filenames and Bash tool metadata. They do not operate a telemetry service and do not send data to a plugin-owned server. See [PRIVACY.md](PRIVACY.md) for the full disclosure.\n\n## Safety boundaries\n\nGCP DevKit is designed to make the safe path easy:\n\n- It never runs destructive GCP commands without your explicit approval.\n- IAM review is read-only and no longer writes policy files into your repository.\n- It never asks to display service account key contents, Secret Manager values, or environment secrets.\n- Generated Terraform stops at formatting and validation. You decide whether to run `plan`, `apply`, or `destroy`.\n- After a state-changing command, a hook asks you to verify the result instead of treating the command as successful.\n\nCloud credentials remain your responsibility. Use a least-privilege account and confirm the active project before any action that changes cloud state.\n\n## Requirements\n\n- An authenticated Claude Code installation. The release was validated with Claude Code 2.1.114 and 2.1.206.\n- Node.js 20 or another supported current Node LTS for the optional hooks.\n- `gcloud` installed and authenticated when using live GCP inspection or diagnostics.\n- Terraform when you want to format or validate Terraform output.\n- `kubectl` when you want to apply or inspect GKE manifests.\n\nYou can still use the Firestore rules guidance and generate infrastructure files without a live GCP account. The `/gcp-devkit:doctor` command tells you what is missing before you begin.\n\n## A short first run\n\n1. Open the repository you want to work on with Claude Code.\n2. Run `/gcp-devkit:doctor` to see the available toolchain and active identity.\n3. Run `/gcp-devkit:project` and confirm the target project before a deployment or IAM task.\n4. Choose one focused workflow, such as a Cloud Run diagnosis or IAM audit.\n5. Review every generated command and apply changes only when the target project and impact are correct.\n\n## Tested release behavior\n\nThis release was validated in Docker Desktop with a network-disabled Node 20 container. The check exercises the session-start hook fixtures, post-tool-use hook cases, JavaScript syntax, and manifest parsing. Claude Code 2.1.114 and 2.1.206 also validate the manifests locally.\n\nThe test does not call a live Google Cloud account. That is intentional: a distributable plugin must be safe to validate without customer credentials. Before using live diagnostics, run `/gcp-devkit:doctor` in the intended environment.\n\n## Release checklist\n\nBefore publishing a release:\n\n1. Run `claude plugin validate .claude-plugin/plugin.json --strict` and `claude plugin validate .claude-plugin/marketplace.json --strict`.\n2. Run the Docker validation command in [docs/release-checklist.md](docs/release-checklist.md).\n3. Bump the version in both `.claude-plugin/plugin.json` and `.claude-plugin/marketplace.json`.\n4. Add a dated entry to [CHANGELOG.md](CHANGELOG.md), create a `gcp-devkit--vX.Y.Z` tag with `claude plugin tag .`, and attach the verified ZIP to the GitHub release.\n5. Add the repository marketplace in a clean Claude Code profile and install the released version before announcing it.\n\n## Contributing and support\n\nPlease report issues through the repository issue tracker. Do not include credentials, service account keys, or production log payloads containing sensitive data in an issue.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n",
  "bytes": 7720,
  "sha": "c7778ce9bd9e7f07bdb4439d0936027af9695986b03bdce262b2c35cb47ddabd",
  "repo_slug": "mohitkale/gcp-devkit",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_mohitkale_gcp_devkit_gcp_devkit_c3d25314/readme"
}