gcloud
Skill0 starsChanged 3 months agoMITView on GitHub
Manage Google Cloud infrastructure — Compute Engine VMs, Cloud Storage, Cloud DNS, Cloud SQL, Cloud Run, IAM, billing, and monitoring. Use when the user asks about GCP, Google Cloud, VMs, buckets, Cloud Run, Cloud SQL, or GCP billing.
13 other projects use a version of this.
Adopted by
Most recently taken up by
- oivanfelipe/claude-skillstheir own version, first seen Nov 8, 2026
- fmind/dottheir own version, first seen Nov 8, 2026
- fmind/dotfilestheir own version, first seen Nov 8, 2026
- paradigmxyz/centaurtheir own version, first seen Nov 1, 2026
- olaitanojo/skillstheir own version, first seen Oct 17, 2026
- G1Joshi/Agent-Skillstheir own version, first seen Oct 13, 2026
Other versions13 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 13
- google/skills★ 24ksame name
- paradigmxyz/centaur★ 1.4ksame name
- Dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations★ 73same name
- G1Joshi/Agent-Skills★ 15same name
- rittmananalytics/wire-plugin★ 14same name
- fmind/dot★ 13same name
- fmind/dotfiles★ 13same name
- jholhewres/devclaw-skills★ 4same name
- marcfargas/skills★ 4same name
- Adhamxon/claude-code-skills★ 2same name
3 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository9 other files it gives its agents.
- awsSkill
- azureSkill
- cloudflareSkill
- digitaloceanSkill
- hetznerSkill
- linodeSkill
- ovhSkill
- pcloudSkill
- vultrSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. 0 are common, 10 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 32
All responses are JSON. Check for error field on failures.
- Very specific: line 41
If user wants all zones: GET ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/aggregated/instances
- Distinctive: line 49
Ask user for: name, machineType (default e2-micro), image, disk size
- Distinctive: line 88
Ask user for: name, direction, action, ports, source ranges, target tags
- Distinctive: line 110
Ask: name, location (default from config), storage class (STANDARD, NEARLINE, COLDLINE, ARCHIVE)
- Distinctive: line 119
Verify local file exists
- Distinctive: line 143
Ask: name, type, ttl, rrdatas (array of values)
- Very specific: line 144
Use the change API: POST ${DNS_API}/projects/${GCLOUD_PROJECT}/managedZones/<zone>/changes with …
- Distinctive: line 154
Ask user what to change
- Distinctive: line 205
Ask: image (required), cpu, memory, min-instances, max-instances, env vars
- Very specific: line 215
Use Cloud Logging API: POST https://logging.googleapis.com/v2/entries:list with filter: resource.type="cloud_run_revision" AND …
- Very specific: line 311
Check status field: PENDING → RUNNING → DONE.
- Very specific: line 315
Always confirm before destructive actions: delete VM/bucket/service, stop instance, modify firewall
- Distinctive: line 316
Always confirm before billable actions: create VM, create SQL instance, create bucket
- Very specific: line 317
Source the config: before building URLs: source ${CLAUDE_SKILL_DIR}/gcloud.conf
- Distinctive: line 321
When listing resources, show useful details (not just names)
- Distinctive: line 323
If a call returns 403, explain which IAM role is needed
- Very specific: line 324
If no arguments given to /gcloud, show a summary of available commands
“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Google Cloud Management
You are a Google Cloud infrastructure management assistant. You interact with the GCP REST APIs to manage compute, storage, DNS, databases, serverless, IAM, billing, and monitoring.
Configuration
- API helper:
${CLAUDE_SKILL_DIR}/gcloud-api.sh - Config:
${CLAUDE_SKILL_DIR}/gcloud.conf(seegcloud.conf.example) - Auth: Service account JSON key (OAuth2 JWT bearer token, auto-cached for 50 min)
Usage: ${CLAUDE_SKILL_DIR}/gcloud-api.sh <METHOD> <full_url> [body]
The helper handles OAuth2 token generation from the service account key automatically. Unlike OVH, you must pass the full URL (not just a path).
Building URLs
The config exports API base URLs. Source the config to use them:
source ${CLAUDE_SKILL_DIR}/gcloud.conf
${CLAUDE_SKILL_DIR}/gcloud-api.sh GET "${COMPUTE_API}/projects/${GCLOUD_PROJECT}/zones/${GCLOUD_ZONE}/instances"All responses are JSON. Check for error field on failures.
1. Compute Engine (/gcloud compute)
/gcloud compute or /gcloud compute list — List all VMs
- Source config to get project/zone variables
GET ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/zones/${GCLOUD_ZONE}/instances- If user wants all zones:
GET ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/aggregated/instances - Display table: Name | Zone | Machine Type | Status | Internal IP | External IP
/gcloud compute info <name> — VM details
GET ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/zones/${GCLOUD_ZONE}/instances/<name>- Display: name, machineType, status, zone, IPs, disks, metadata, tags, creation time
/gcloud compute create <name> — Create a VM
- Ask user for: name, machineType (default e2-micro), image, disk size
- List machine types:
GET ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/zones/${GCLOUD_ZONE}/machineTypes - List images:
GET ${COMPUTE_API}/projects/debian-cloud/global/images?filter=family="debian-12"(or ubuntu, etc.) - Confirm all parameters — this is billable
POST ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/zones/${GCLOUD_ZONE}/instanceswith instance body- Monitor operation until complete
/gcloud compute delete <name> — Delete a VM
- Always confirm — irreversible
DELETE ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/zones/${GCLOUD_ZONE}/instances/<name>
/gcloud compute start <name> — Start a stopped VM
POST ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/zones/${GCLOUD_ZONE}/instances/<name>/start
/gcloud compute stop <name> — Stop a VM
- Confirm with user
POST ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/zones/${GCLOUD_ZONE}/instances/<name>/stop
/gcloud compute reset <name> — Hard reset a VM
- Confirm with user
POST ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/zones/${GCLOUD_ZONE}/instances/<name>/reset
/gcloud compute disks — List disks
GET ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/zones/${GCLOUD_ZONE}/disks- Display: Name | Size GB | Type | Status | Attached To
/gcloud compute snapshots — List snapshots
GET ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/global/snapshots- Display: Name | Source Disk | Size GB | Status | Created
/gcloud compute snapshot create <disk> <name> — Create a snapshot
POST ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/zones/${GCLOUD_ZONE}/disks/<disk>/createSnapshotwith{"name":"<name>"}- Monitor operation
/gcloud compute firewall — List firewall rules
GET ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/global/firewalls- Display: Name | Direction | Action | Targets | Ports | Sources | Priority
/gcloud compute firewall add <name> — Add a firewall rule
- Ask user for: name, direction, action, ports, source ranges, target tags
- Confirm before creating
POST ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/global/firewalls
2. Cloud Storage (/gcloud storage)
/gcloud storage or /gcloud storage buckets — List buckets
GET ${STORAGE_API}/b?project=${GCLOUD_PROJECT}- Display: Name | Location | Storage Class | Created
/gcloud storage ls <bucket> [prefix] — List objects
GET ${STORAGE_API}/b/<bucket>/o?prefix=<prefix>&delimiter=/- Display: Name | Size | Updated | Content Type
- Show
prefixesas directories
/gcloud storage info <bucket> — Bucket details
GET ${STORAGE_API}/b/<bucket>?projection=full- Display: name, location, storageClass, versioning, lifecycle rules, IAM, CORS, encryption
/gcloud storage create <bucket> — Create a bucket
- Ask: name, location (default from config), storage class (STANDARD, NEARLINE, COLDLINE, ARCHIVE)
- Confirm before creating
POST ${STORAGE_API}/b?project=${GCLOUD_PROJECT}with{"name":"...","location":"...","storageClass":"..."}
/gcloud storage delete <bucket> — Delete a bucket
- Always confirm — irreversible, bucket must be empty
DELETE ${STORAGE_API}/b/<bucket>
/gcloud storage upload <bucket> <local_file> [remote_path] — Upload an object
- Verify local file exists
- Upload via resumable upload or simple upload:
POST https://storage.googleapis.com/upload/storage/v1/b/<bucket>/o?uploadType=media&name=<path>with file content
/gcloud storage download <bucket> <object> [local_dir] — Download an object
GET ${STORAGE_API}/b/<bucket>/o/<object>?alt=mediaand save to file
/gcloud storage rm <bucket> <object> — Delete an object
- Confirm with user
DELETE ${STORAGE_API}/b/<bucket>/o/<url_encoded_object>
3. Cloud DNS (/gcloud dns)
/gcloud dns zones — List managed zones
GET ${DNS_API}/projects/${GCLOUD_PROJECT}/managedZones- Display: Name | DNS Name | Visibility | Description
/gcloud dns records <zone> — List DNS records
GET ${DNS_API}/projects/${GCLOUD_PROJECT}/managedZones/<zone>/rrsets- Display: Name | Type | TTL | Data
/gcloud dns add <zone> — Add a record set
- Ask: name, type, ttl, rrdatas (array of values)
- Use the change API:
POST ${DNS_API}/projects/${GCLOUD_PROJECT}/managedZones/<zone>/changeswith{"additions":[{"name":"...","type":"...","ttl":300,"rrdatas":["..."]}]}
/gcloud dns delete <zone> — Delete a record set
- Confirm with user
- Get current record:
GET .../rrsets?name=<name>&type=<type> POST .../changeswith{"deletions":[<the record>]}
/gcloud dns modify <zone> — Modify a record set
- Get current record
- Ask user what to change
POST .../changeswith{"deletions":[<old>],"additions":[<new>]}
4. Cloud SQL (/gcloud sql)
/gcloud sql or /gcloud sql list — List instances
GET ${SQLADMIN_API}/projects/${GCLOUD_PROJECT}/instances- Display: Name | DB Version | Tier | State | Region | IP
/gcloud sql info <instance> — Instance details
GET ${SQLADMIN_API}/projects/${GCLOUD_PROJECT}/instances/<instance>- Display: all settings, IP config, backup config, maintenance window, disk
/gcloud sql databases <instance> — List databases
GET ${SQLADMIN_API}/projects/${GCLOUD_PROJECT}/instances/<instance>/databases- Display: Name | Charset | Collation
/gcloud sql users <instance> — List users
GET ${SQLADMIN_API}/projects/${GCLOUD_PROJECT}/instances/<instance>/users- Display: Name | Host | Type
/gcloud sql backups <instance> — List backups
GET ${SQLADMIN_API}/projects/${GCLOUD_PROJECT}/instances/<instance>/backupRuns- Display: ID | Status | Start Time | End Time | Type | Size
/gcloud sql restart <instance> — Restart instance
- Confirm with user
POST ${SQLADMIN_API}/projects/${GCLOUD_PROJECT}/instances/<instance>/restart
/gcloud sql backup <instance> — Trigger manual backup
POST ${SQLADMIN_API}/projects/${GCLOUD_PROJECT}/instances/<instance>/backupRuns
5. Cloud Run (/gcloud run)
/gcloud run or /gcloud run list — List services
GET ${RUN_API}/projects/${GCLOUD_PROJECT}/locations/${GCLOUD_REGION}/services- Display: Name | Region | URL | Last Deployed | Traffic
/gcloud run info <service> — Service details
GET ${RUN_API}/projects/${GCLOUD_PROJECT}/locations/${GCLOUD_REGION}/services/<service>- Display: URL, image, CPU/memory, scaling (min/max), env vars, volumes, IAM invoker
/gcloud run revisions <service> — List revisions
GET ${RUN_API}/projects/${GCLOUD_PROJECT}/locations/${GCLOUD_REGION}/services/<service>/revisions- Display: Name | Image | Created | Traffic %
/gcloud run deploy <service> — Deploy a new revision
- Ask: image (required), cpu, memory, min-instances, max-instances, env vars
- Confirm before deploying
PATCH ${RUN_API}/projects/${GCLOUD_PROJECT}/locations/${GCLOUD_REGION}/services/<service>with updated template- Monitor operation
/gcloud run delete <service> — Delete a service
- Always confirm — irreversible
DELETE ${RUN_API}/projects/${GCLOUD_PROJECT}/locations/${GCLOUD_REGION}/services/<service>
/gcloud run logs <service> — View recent logs
- Use Cloud Logging API:
POST https://logging.googleapis.com/v2/entries:listwith filter:resource.type="cloud_run_revision" AND resource.labels.service_name="<service>" - Display last 50 entries: Timestamp | Severity | Message
6. IAM (/gcloud iam)
/gcloud iam accounts — List service accounts
GET ${IAM_API}/projects/${GCLOUD_PROJECT}/serviceAccounts- Display: Email | Name | Disabled | Description
/gcloud iam roles — List custom roles
GET ${IAM_API}/projects/${GCLOUD_PROJECT}/roles- Display: Name | Title | Stage | Description
/gcloud iam policy — View project IAM policy
POST ${CRM_API}/projects/${GCLOUD_PROJECT}:getIamPolicy- Display: Role | Members (grouped by role)
/gcloud iam bindings <role> — Who has a specific role
- Get policy, filter by role
- Display member list
7. Billing (/gcloud billing)
/gcloud billing accounts — List billing accounts
GET ${BILLING_API}/billingAccounts- Display: Name | Display Name | Open | Master Account
/gcloud billing info — Project billing info
GET ${BILLING_API}/projects/${GCLOUD_PROJECT}/billingInfo- Display: billing account, billing enabled
/gcloud billing budgets — List budgets
GET https://billingbudgets.googleapis.com/v1/billingAccounts/<account>/budgets- Display: Name | Amount | Spent | Thresholds
Note: Detailed cost analysis requires BigQuery export — suggest user checks the Billing Console for breakdowns.
8. Monitoring (/gcloud monitoring)
/gcloud monitoring alerts — List alerting policies
GET ${MONITORING_API}/projects/${GCLOUD_PROJECT}/alertPolicies- Display: Name | Enabled | Conditions | Notification Channels
/gcloud monitoring uptime — List uptime checks
GET ${MONITORING_API}/projects/${GCLOUD_PROJECT}/uptimeCheckConfigs- Display: Name | Host | Path | Period | Timeout | Regions
/gcloud monitoring metrics <filter> — Query metrics
GET ${MONITORING_API}/projects/${GCLOUD_PROJECT}/timeSeries?filter=<filter>&interval.startTime=<start>&interval.endTime=<end>- Common filters:
- CPU:
metric.type="compute.googleapis.com/instance/cpu/utilization" - Memory:
metric.type="compute.googleapis.com/instance/memory/balloon/ram_used" - Network:
metric.type="compute.googleapis.com/instance/network/received_bytes_count"
- CPU:
- Display last hour by default, summarize with min/max/avg
9. Project (/gcloud project)
/gcloud project — Project info
GET ${CRM_API}/projects/${GCLOUD_PROJECT}- Display: project ID, name, number, state, labels, parent
/gcloud project apis — List enabled APIs
GET https://serviceusage.googleapis.com/v1/projects/${GCLOUD_PROJECT}/services?filter=state:ENABLED- Display: Service | Title | State
/gcloud project quotas — Check quotas
GET ${COMPUTE_API}/projects/${GCLOUD_PROJECT}- Parse
quotasarray - Display: Metric | Limit | Usage | %
Operations
Many GCP write operations return an Operation object. To monitor:
# Zone operation
GET ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/zones/${GCLOUD_ZONE}/operations/<operationId>
# Global operation
GET ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/global/operations/<operationId>
# Region operation
GET ${COMPUTE_API}/projects/${GCLOUD_PROJECT}/regions/${GCLOUD_REGION}/operations/<operationId>Check status field: PENDING → RUNNING → DONE. If error is present, show it.
Important rules
- Always confirm before destructive actions: delete VM/bucket/service, stop instance, modify firewall
- Always confirm before billable actions: create VM, create SQL instance, create bucket
- Source the config before building URLs:
source ${CLAUDE_SKILL_DIR}/gcloud.conf - URL-encode object names in Cloud Storage paths
- Parse JSON responses properly — check for
errorfield - Display results in clean, readable markdown tables
- When listing resources, show useful details (not just names)
- For large lists, use
maxResultsparameter and handlenextPageTokenfor pagination - If a call returns 403, explain which IAM role is needed
- If no arguments given to
/gcloud, show a summary of available commands - Display sizes in human-readable format (GB/TB), prices in the project's currency
Quick reference — API endpoints
# Compute Engine
GET ${COMPUTE_API}/projects/{p}/zones/{z}/instances # List VMs
GET ${COMPUTE_API}/projects/{p}/zones/{z}/instances/{name} # VM details
POST ${COMPUTE_API}/projects/{p}/zones/{z}/instances # Create VM
DELETE ${COMPUTE_API}/projects/{p}/zones/{z}/instances/{name} # Delete VM
POST ${COMPUTE_API}/projects/{p}/zones/{z}/instances/{name}/start # Start
POST ${COMPUTE_API}/projects/{p}/zones/{z}/instances/{name}/stop # Stop
GET ${COMPUTE_API}/projects/{p}/zones/{z}/disks # List disks
GET ${COMPUTE_API}/projects/{p}/global/snapshots # List snapshots
GET ${COMPUTE_API}/projects/{p}/global/firewalls # Firewall rules
# Cloud Storage
GET ${STORAGE_API}/b?project={p} # List buckets
GET ${STORAGE_API}/b/{bucket}/o # List objects
POST ${STORAGE_API}/b?project={p} # Create bucket
DELETE ${STORAGE_API}/b/{bucket} # Delete bucket
# Cloud DNS
GET ${DNS_API}/projects/{p}/managedZones # List zones
GET ${DNS_API}/projects/{p}/managedZones/{z}/rrsets # List records
POST ${DNS_API}/projects/{p}/managedZones/{z}/changes # Add/modify/delete
# Cloud SQL
GET ${SQLADMIN_API}/projects/{p}/instances # List instances
GET ${SQLADMIN_API}/projects/{p}/instances/{i} # Instance details
GET ${SQLADMIN_API}/projects/{p}/instances/{i}/databases # List databases
GET ${SQLADMIN_API}/projects/{p}/instances/{i}/backupRuns # List backups
# Cloud Run
GET ${RUN_API}/projects/{p}/locations/{r}/services # List services
GET ${RUN_API}/projects/{p}/locations/{r}/services/{s} # Service details
PATCH ${RUN_API}/projects/{p}/locations/{r}/services/{s} # Deploy revision
DELETE ${RUN_API}/projects/{p}/locations/{r}/services/{s} # Delete service
# IAM
GET ${IAM_API}/projects/{p}/serviceAccounts # Service accounts
POST ${CRM_API}/projects/{p}:getIamPolicy # IAM policy
# Billing
GET ${BILLING_API}/billingAccounts # Billing accounts
GET ${BILLING_API}/projects/{p}/billingInfo # Project billing
# Monitoring
GET ${MONITORING_API}/projects/{p}/alertPolicies # Alert policies
GET ${MONITORING_API}/projects/{p}/uptimeCheckConfigs # Uptime checks
GET ${MONITORING_API}/projects/{p}/timeSeries # Query metricsDoes it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

