cloud-dev-setup
Skill0 starsChanged 3 months agoMITView on GitHub
Installs cloud CLIs on macOS - asks which of AWS, Azure, Google Cloud, Databricks, kubectl, Terraform/OpenTofu, then installs and authenticates via SSO/browser flows with named profiles, never static keys. Use for "install aws/az/gcloud/databricks CLI", "aws sso setup", "kubectl on Mac", "terraform or opentofu". Not for writing infrastructure code, deploying, Docker, or the GitHub CLI.
- Reads credentials
- Installs packages
In this repository21 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- add-skillSkill
- publish-repoSkill
- ai-dev-toolsSkill
- dev-cli-toolsSkill
- docker-on-macSkill
- dotfiles-setupSkill
- editor-setupSkill
- git-ssh-identitySkill
- homebrew-setupSkill
- language-runtimesSkill
- mac-dev-appsSkill
- mac-maintenanceSkill
- macos-defaultsSkill
- macos-dev-setupSkill
- macos-security-baselineSkill
- macos-system-prepSkill
- mobile-dev-setupSkill
- web-dev-setupSkill
- zsh-setupSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 28
Never: create long-lived static keys or write any credential into ~/.zshrc, dotfiles, or chat.
- Distinctive: line 41
Ask which of: AWS · Azure · Google Cloud · Databricks · kubectl · Terraform/OpenTofu.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Cloud Dev Setup
Installs and authenticates the cloud CLIs the user actually needs — asked first, nothing extra — with the auth patterns that keep long-lived secrets off the machine: browser/SSO flows and named profiles.
When NOT to use
- Writing Terraform/K8s manifests, deploying, debugging cloud workloads → project work
- Container runtime →
docker-on-mac gh(GitHub CLI) →dev-cli-tools/git-ssh-identity- Databricks workload development (jobs, pipelines) → per-product tools, not machine setup
Prerequisites
brew present (→ homebrew-setup).
Safety rails
- Never create long-lived static keys or write any credential into
~/.zshrc, dotfiles, or chat. Browser/SSO flows do cache short-lived OAuth tokens in each CLI's own config dir (~/.aws,~/.azure,~/.config/gcloud,~/.databrickscfg+ token cache) — that's expected; keep those dirs out of any repo and leave their permissions alone. - Install only user-selected providers.
- Multiple accounts/workspaces → named profiles from day one; never rely on a mutable default profile for anything destructive.
- Identity-verification outputs contain account IDs/tenants/emails — fine in this local session, but don't paste them onward.
Workflow
Ask which of: AWS · Azure · Google Cloud · Databricks · kubectl · Terraform/OpenTofu. Then per selection:
AWS
brew install awscli # community formula, tracks upstream closely
# (AWS's own channels: pkg installer / install script - use if policy requires vendor-official)
aws configure sso # wizard - when it asks for the profile name, set a real one (e.g. "work")
aws sso login --profile work
aws sts get-caller-identity --profile work # verifyIAM Identity Center (SSO) short-term credentials are AWS's recommended workforce auth; long-term IAM keys are explicitly "not recommended".
Azure
brew install azure-cli # Microsoft's official documented macOS method
az login # browser; subscription selector on success
az account showGoogle Cloud
Two channels — pick one, don't mix. The cask is the practical default
here; the vendor path is the arch-specific tarball from
docs.cloud.google.com/sdk/docs/install (download, extract,
./google-cloud-sdk/install.sh):
brew install --cask gcloud-cli # community cask (renamed from google-cloud-sdk)
gcloud init # auth + creates a named configuration - name it (e.g. "work")
gcloud config configurations listgcloud auth login = the CLI's own credentials; gcloud auth
application-default login = ADC for SDKs/Terraform — different stores,
teams need both more often than they think. Updates: channel A →
gcloud components update; channel B → brew upgrade --cask gcloud-cli
(avoid mixing the two update paths).
Databricks
brew tap databricks/tap
# Homebrew 6+: trust the third-party tap explicitly (older brew lacks the
# command - then the tap prompt itself is the consent step; if trust FAILS
# on brew 6, stop and investigate rather than bypassing it):
brew help trust >/dev/null 2>&1 && brew trust databricks/tap
brew install databricks/tap/databricks
# Use the EXACT workspace URL (AWS: https://<ws>.cloud.databricks.com,
# Azure: https://adb-<id>.<n>.azuredatabricks.net, GCP: https://<ws>.gcp.databricks.com):
databricks auth login --host <workspace-url> --profile work # OAuth U2M, browser
databricks auth profiles # lists profiles + validityOAuth is the recommended auth; PATs are legacy. Profiles live in
~/.databrickscfg; select with --profile <name> — with several
workspaces, always pass it explicitly.
kubectl
brew install kubectl # kubernetes.io documents brew for macOS
kubectl version --client
grep -q 'kubectl completion' ~/.zshrc || echo 'source <(kubectl completion zsh)' >> ~/.zshrcSkew rule: client within ±1 minor of the cluster. Contexts:
kubectl config get-contexts / use-context (kubectx is a nice-to-have).
Terraform / OpenTofu (neutral choice)
# Terraform (BUSL license; REMOVED from homebrew-core - tap required)
brew tap hashicorp/tap && brew install hashicorp/tap/terraform
# OpenTofu (MPL-2.0 fork; plain core formula)
brew install opentofuFact for the choice: Terraform is source-available under BUSL (IBM);
OpenTofu is MPL-2.0 under the Linux Foundation. Both maintained; pick per
org licensing/ecosystem policy. brew install terraform without the tap
no longer works — stale guides break here.
Verify
Per installed CLI, its identity command in a fresh shell:
aws sts get-caller-identity --profile <p> · az account show ·
gcloud config list · databricks auth profiles · kubectl version
--client · terraform -version/tofu -version.
Output spec
Done means: selected CLIs installed; auth-capable ones (AWS/Azure/GCloud/ Databricks) authenticated via browser/SSO with a named profile where the user has an account — client-only tools (kubectl without a cluster, terraform/tofu) verify by version instead; identity outputs shown; no long-lived static credentials created and nothing secret placed in shell files or dotfiles.
Gotchas
- Old scripts using
brew install terraformor caskgoogle-cloud-sdkfail — the formula was removed and the cask renamed (gcloud-cli). aws sso loginsessions expire (hours) — re-login is normal, not breakage; long-lived keys are the wrong fix.- brew-cask gcloud +
gcloud components update= dual ownership drift; choose one updater. - Databricks CLI is 1.x now — docs/snippets mentioning
v0.2xxbehavior are dated but compatible;databricks -vto confirm. - Corporate proxies/VPNs break browser SSO flows — device-code variants
(
az login --use-device-code,aws sso login --use-device-code) are the workaround.
Does 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.

