How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-toolkit:aws-setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill when AWS CLI credentials are needed (e.g., syncing translations to S3, accessing S3 buckets, or any `aws` command).
Use this skill when AWS CLI credentials are needed (e.g., syncing translations to S3, accessing S3 buckets, or any aws command).
cat ~/.claude/company-config.json 2>/dev/null | jq '.aws // empty'
Extract values into variables for use in subsequent steps:
profileName — the AWS CLI profile name (default: repo)ssoStartUrl — SSO portal URLssoRegion — SSO regionaccountId — AWS account IDroleName — SSO role namedefaultRegion — default AWS region for servicess3TranslationsBucket — S3 bucket for translationsIf company-config.json is missing or has no aws section, ask the user for these values.
bash ~/.claude/scripts/aws-check.sh
If this passes, skip to the task. If it fails, proceed to Step 2.
~/.aws/config existscat ~/.aws/config 2>/dev/null
If missing or the profile doesn't exist, create it using values from Step 0:
[sso-session <profileName>]
sso_start_url = <ssoStartUrl>
sso_region = <ssoRegion>
sso_registration_scopes = sso:account:access
[profile <profileName>]
sso_session = <profileName>
sso_account_id = <accountId>
sso_role_name = <roleName>
region = <defaultRegion>
Tell the user:
<ssoStartUrl> in your browserThen run the credential helper — it writes to ~/.aws/credentials which persists across all terminals and worktrees:
bash ~/.claude/scripts/aws-set-credentials.sh "<ACCESS_KEY_ID>" "<SECRET_ACCESS_KEY>" "<SESSION_TOKEN>"
Verify:
bash ~/.claude/scripts/aws-check.sh
Note: aws sso login is the standard approach but fails for some SSO configurations. The credentials-file method works reliably. Credentials expire after ~8 hours — re-run when needed.
Suggest adding to ~/.zshrc (or equivalent) so all terminals use the right profile:
echo 'export AWS_PROFILE=<profileName>' >> ~/.zshrc
TRANSLATION_SERVICE_KEY=$(grep TRANSLATION_SERVICE_API_KEY apps/web/.env.local | cut -d= -f2)
python3 scripts/sync_lokalise_translations.py \
--project-id 3907704568ac1345097c75.30587214 \
--api-key "$TRANSLATION_SERVICE_KEY" \
--s3-location <s3TranslationsBucket>
Important: The AWS env vars don't persist between shell invocations. If using temporary credentials, prepend them to the command or export them in the same && chain.
curl -s "https://<s3TranslationsBucket>.s3.<defaultRegion>.amazonaws.com/en/en.json" | python3 -c "
import sys,json
d=json.load(sys.stdin)
key='YOUR_KEY_HERE'
print(f'{key}: \"{d.get(key, \"NOT FOUND\")}\"')
"
Values come from ~/.claude/company-config.json under the aws key. If not present, ask the user or check ~/.aws/config for existing profiles.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub johwer/marketplace --plugin claude-toolkit