agentleFS
sentineldesksentineldesk/agent/skills/aws-cli/SKILL.md

aws-cli

Skill0 starsChanged 3 months agoApache-2.0View on GitHub

Drive the AWS CLI from this desktop — profiles and regions, EC2, S3, IAM, logs, ECS and RDS — with the query and pagination flags that keep a result readable instead of dumping megabytes of JSON. Use when the task names AWS, an S3 bucket, an EC2 instance, CloudWatch, or awscli itself.

  • Reads credentials

7 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use skill-creator.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • SentrySkill

    skill-creator

    Create new agent skills following the Agent Skills specification. Use when asked to "create a skill", "add a new skill", "write a skill", "make a skill", "build a skill", or scaffold a new skill with SKILL.md. Guides through requirements, writing, registration, and verification.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

2 rules. 0 are common, 0 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 7 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Check the artifact: aws s3 ls s3://bucket/key for a non-zero size after an upload.

    line 61
  2. Very specific:

    If a key must be rotated or entered, that is the person's to type — ask_human, per the rule in your system prompt.

    line 94

“Common” is measured: kept by at least 6 in 10 of the 7 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Say which account and region before you do anything

run_command   aws sts get-caller-identity
run_command   aws configure list

One call, and it prevents the mistake that matters. Almost everything in AWS is regional: a resource that "does not exist" is usually in a region you are not looking at. --region explicitly on anything important beats trusting the profile, and --profile <name> when there is more than one account.

Install with install_packages awscli where it is packaged, or the vendor v2 installer as a job. aws --version tells you which you have — v1 and v2 differ in output paging and in s3 behaviour.

Do not let the CLI fill your context

The default output is JSON and some of it is enormous. Three flags turn a megabyte into an answer, and using them is most of what makes this pleasant:

--query    a JMESPath expression, applied server-side-ish (client, but before you see it)
--output   text | table | json
--max-items / --no-paginate
run_command  aws ec2 describe-instances \
   --query 'Reservations[].Instances[].{ID:InstanceId,State:State.Name,IP:PrivateIpAddress,Name:Tags[?Key==`Name`]|[0].Value}' \
   --output table

That is the shape to reach for: name the fields you want. describe-instances with no query is thousands of lines you then page through from a spill locator.

The CLI opens a pager. In a non-interactive tool call that hangs. Set AWS_PAGER="" — run_command "AWS_PAGER='' aws ..." — or add --no-cli-pager. This is the first thing that goes wrong for people here.

S3

aws s3 (high level: ls, cp, sync) for files; aws s3api for anything about the bucket itself (policies, versioning, encryption).

  • Any real cp/sync is a job. job_start, then job_wait; a wait that times out has not cancelled the transfer.
  • --dryrun on sync before the real one, always. sync with --delete removes things on the destination that are not on the source, and people run it with the arguments the wrong way round exactly once.
  • Check the artifact: aws s3 ls s3://bucket/key for a non-zero size after an upload. "Completed" is not the same as "the object is there and right".
  • A public bucket is a finding. aws s3api get-public-access-block --bucket X and get-bucket-policy are the two calls that answer it.

IAM, read-only until told otherwise

aws iam list-users, get-account-authorization-details (large — query it), aws iam simulate-principal-policy to answer "can this role do that" without changing anything.

Creating or attaching a policy is a change with security consequences: say what it grants and confirm before you run it. AdministratorAccess attached to solve a permissions error is the wrong fix and it stays wrong afterwards.

Logs

run_command  aws logs tail /aws/lambda/fn --since 1h --format short
run_command  aws logs tail /aws/lambda/fn --follow    ← a JOB, never returns

--since first, always: a log group with no time bound will happily return more than you want to pay for.

Credentials

aws configure writes ~/.aws/credentials, mode 0600. An access key never goes in a run_command argument — it would be in the conversation, the transcript and the action log permanently. Prefer, in order: an instance role (nothing to store), IAM Identity Center (aws sso login, which is a device-code flow a person completes), then a long-lived key.

If a key must be rotated or entered, that is the person's to type — ask_human, per the rule in your system prompt. And a key found lying in a file or an environment dump is a finding to report, not a convenience to use.

Things that cost, and teardown

run-instances, create-db-instance, NAT gateways and load balancers bill from the moment they exist. Say so before creating one, tag it so it can be found again (--tag-specifications), and when the task was a test, offer the teardown in the same breath as the result.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

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.