gcp
Use when a tool needs a Google Cloud service account (Google Play publishing, RevenueCat purchase validation, Firebase, any Google API), when checking which…
Skill by tirupati17
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/tirupati17-gcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, cloud
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/gcp
What's inside
- Skill name
gcp- Description
- Use when a tool needs a Google Cloud service account (Google Play publishing, RevenueCat purchase validation, Firebase, any Google API), when checking which service account and project credentials belong to and what roles they hold, enabling an API, listing or creating service account keys, or when a Google API call fails with 403, SERVICE_DISABLED or a permission that "should" already be granted.
- License
- MIT
- Instructions
- 42 lines in SKILL.md · view on GitHub
Before installing
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Files (1)
- SKILL.md
SKILL.md (first lines)
# Google Cloud: identity, APIs, service accounts ## Credentials `cpm creds setup gcp` asks for each one: | Name | Where to get it | |---|---| | `GCP_PROJECT_ID` | The project **id** (not the display name or number), top of the console. `--gcp-project` overrides per call. | | `GCP_SERVICE_ACCOUNT_JSON` | IAM & Admin > Service accounts > the account > Keys > Add key > **JSON**. Downloaded once. `cpm creds` copies it to `~/.config/cpm/<project>/keys/` (0600). An OAuth client JSON (`"installed"`/`"web"`) looks similar and is refused. | Tokens are signed locally (RS256) with the `cryptography` package if installed, otherwise the `openssl` binary. No gcloud needed; if you have it, `gcloud auth list` and `gcloud config list` answer the "which identity" question for your user. ## Commands ```bash cpm gcp whoami # service account, key's home project, target project, roles held cpm gcp whoami --offline # key file only, no network cpm gcp apis # enabled APIs cpm gcp apis enable androidpublisher # dry run; add --commit cpm gcp service-accounts # accounts in the project cpm gcp service-accounts keys <email> # user-managed keys and their ages cpm gcp service-accounts key-create <email> --commit --save-as PLAY_SERVICE_ACCOUNT_JSON ``` `key-create` never prints the key. It lands in the credentials folder and, with `--save-as`, its path is stored under that name for the tool that needs it. ## Traps - **403 "API has not been used in project N" although it is enabled.** API enablement and quota belong to the project that **owns the service account**, not the one you are working in. `whoami` shows both. Enable the API there. The first APIs of a fresh project (Service Usage, Cloud Resource Manager) must be enabled from the console, because the account cannot call the API that would enable them. - **Play: catalog reads work, purchase validation keeps failing.** Play Console splits a service account's access into **App permissions** (add the app) and **Account permissions** (financial data, order management). Granting only one side leaves reads green and validation red, which looks like propagation delay but never clears. Real propagation can take up to 36 hours; a missing app entry never resolves. - **Play: the service account must be invited in Play Console** (Users and permissions), not only given IAM roles, and the Google Play Android Developer API must be on in its project. - **Real-time notifications silently absent.** The role picker lists **Pub/Sub Lite Editor** beside **Pub/Sub Editor**; only Pub/Sub Editor (or Publisher on the topic, for the Play publisher account) works. - **Key creation refused by policy.** `iam.disableServiceAccountKeyCreation` is on by default for newer organizations; an org admin must relax it for the project, or use keyless auth where the consumer supports it. - **Keys pile up.** Ten user-managed keys per account is the cap. `service-accounts keys` shows ages; delete what no tool uses. A key is a long-lived password: one per consumer, never in git. - **Changes applied to the wrong place.** Before any write with a CLI (gcloud, a database CLI, a hosting CLI), check which user and org it is logged into; a machine logged into a personal or sandbox org will happily apply migrations or roles there. `whoami` does this for the service account. - **IAM changes are not instant.** New roles can take a few minutes; retry before rewriting anything.
From tirupati17/cpm, MIT.
More from tirupati17/cpm
- 0.565score
google-ads
tirupati17
Use when checking or changing Google Ads from the terminal (campaign spend, clicks and conversions, pausing or enabling a campaign, changing a daily budget…
SkillAFreshness: AClaude Code +9 - 0.565score
amplitude
tirupati17
Use when listing or checking Amplitude Experiment feature flags, turning a flag on or off (kill switch, rollout), shipping code that is gated behind a new…
SkillAFreshness: AClaude Code +9 - 0.565score
appstore-release
tirupati17
Use when shipping an iOS app to App Store review (archive, upload, attach the build, write What's New, submit), updating localized descriptions, keywords or…
SkillAFreshness: AClaude Code +9 - 0.565score
onesignal
tirupati17
Use when sending a push notification to a specific user, a list of users, a segment or everyone; when checking how many devices can receive push or whether…
SkillAFreshness: AClaude Code +9 - 0.565score
play-release
tirupati17
Use when publishing an Android app to Google Play (upload an AAB to internal, alpha, beta or production, staged rollout), when changing the Play listing text…
SkillAFreshness: AClaude Code +9 - 0.565score
revenuecat
tirupati17
Use when checking subscription metrics (MRR, revenue, active subscriptions, trials), looking up why a specific user does or does not have Pro, granting…
SkillAFreshness: AClaude Code +9 - 0.560score
cpm-learn
tirupati17
Use right after finishing a task that took real effort against an external service or API (a store console, billing, ads, analytics, push, cloud) and that is…
SkillAFreshness: AClaude Code +9 - 0.560score
service-task
tirupati17
One sentence an agent can match against a request.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 27, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/tirupati17/cpm
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from tirupati17
- 0.565score
google-ads
tirupati17
Use when checking or changing Google Ads from the terminal (campaign spend, clicks and conversions, pausing or enabling a campaign, changing a daily budget…
SkillAFreshness: AClaude Code +9 - 0.565score
amplitude
tirupati17
Use when listing or checking Amplitude Experiment feature flags, turning a flag on or off (kill switch, rollout), shipping code that is gated behind a new…
SkillAFreshness: AClaude Code +9 - 0.565score
appstore-release
tirupati17
Use when shipping an iOS app to App Store review (archive, upload, attach the build, write What's New, submit), updating localized descriptions, keywords or…
SkillAFreshness: AClaude Code +9 - 0.565score
onesignal
tirupati17
Use when sending a push notification to a specific user, a list of users, a segment or everyone; when checking how many devices can receive push or whether…
SkillAFreshness: AClaude Code +9 - 0.565score
play-release
tirupati17
Use when publishing an Android app to Google Play (upload an AAB to internal, alpha, beta or production, staged rollout), when changing the Play listing text…
SkillAFreshness: AClaude Code +9 - 0.565score
revenuecat
tirupati17
Use when checking subscription metrics (MRR, revenue, active subscriptions, trials), looking up why a specific user does or does not have Pro, granting…
SkillAFreshness: AClaude Code +9
Cite this page
gcp skill. Agent Mart. https://agentmart.dev/skills/tirupati17-gcp (last updated 2026-10-24)