Official agent skill

AWS SDK JS V3 Usage

by aws in aws/agent-toolkit-for-aws

AWS SDK for JavaScript v3 development patterns. An agent skill from aws/agent-toolkit-for-aws.

OfficialApache-2.0Auto-check passedDatabases

Install AWS SDK JS V3 Usage

skills CLI
$ npx skills add aws/agent-toolkit-for-aws --skill aws-sdk-js-v3-usage -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install aws/agent-toolkit-for-aws aws-sdk-js-v3-usage --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/aws/agent-toolkit-for-aws.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/core-skills/aws-sdk-js-v3-usage .claude/skills/aws-sdk-js-v3-usage && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
aws-sdk-js-v3-usage
GitHub stars
2.8k
Token cost
~2.2k tokens
SKILL.md length
433 words
Files
12 (incl. references)
Skills in repo
138
Repo updated
First seen
Licence
Apache-2.0

At a glance

AWS SDK for JavaScript v3 development patterns. An agent skill from aws/agent-toolkit-for-aws.

  • Writing JavaScript
  • SKILL.md covers Package Structure, Two Client Styles, Client Configuration and Credentials, plus 12 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • TypeScript code that uses AWS services via @aws-sdk/ packages (aws-sdk-js-v3)

What it does

AWS SDK JS V3 Usage is an agent skill from aws/agent-toolkit-for-aws, published by the product's own GitHub organization. AWS SDK for JavaScript v3 development patterns. Use when writing JavaScript or TypeScript code that uses AWS services via @aws-sdk/ packages (aws-sdk-js-v3), or when asked about schemas, runtime validation, serialization, or code generation in the context of the JS/TS AWS SDK.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including reference files (for example `references/clients.md`, `references/credentials.md` and `references/dynamodb.md`).

It sits in Databases, covering File uploads and storage. It works with Amazon Web Services, JavaScript, Amazon DynamoDB and TypeScript. The repository describes itself as: Official, AWS-supported MCP servers, skills, and plugins to help AI agents build on AWS. The licence is Apache-2.0.

When your agent uses it

  • Writing JavaScript
  • TypeScript code that uses AWS services via @aws-sdk/ packages (aws-sdk-js-v3)
  • Asked about schemas
  • Runtime validation

Example prompts

  • “/aws-sdk-js-v3-usage”

Requirements

  • Node.js

What it can do on your machine

Read from SKILL.md and the folder at commit 188af2f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

AWS SDK JS V3 Usage loads about 2.2k tokens when it runs, and up to ~8.4k if it reads all its reference files. Until then it costs about 75 tokens; SKILL.md has 433 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from aws/agent-toolkit-for-aws at commit 188af2f, republished under its Apache-2.0 licence (© aws). 433 words, ~2,171 tokens.

Download SKILL.mdSave it as .claude/skills/aws-sdk-js-v3-usage/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.
name
aws-sdk-js-v3-usage
description
AWS SDK for JavaScript v3 development patterns. Use when writing JavaScript or TypeScript code that uses AWS services via @aws-sdk/* packages (aws-sdk-js-v3), or when asked about schemas, runtime validation, serialization, or code generation in the context of the JS/TS AWS SDK.

Do not use emojis in any code, comments, or output when this skill is active.

AWS SDK for JavaScript v3

Package Structure

  • @aws-sdk/client-* — one per service, generated by smithy-typescript; one-to-one with AWS services and operations
  • @aws-sdk/lib-* — higher-level helpers (e.g. lib-dynamodb, lib-storage)
  • @aws-sdk/* (no prefix) — utility packages (mostly internal; don't import deep paths)

Always import from the package root:

js
import { S3Client } from "@aws-sdk/client-s3"; // correct
// NOT: import { S3Client } from "@aws-sdk/client-s3/dist-cjs/S3Client"

Two Client Styles

Bare-bones (preferred — smaller bundle):

js
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
const client = new S3Client({ region: "us-east-1" });
const output = await client.send(new GetObjectCommand({ Bucket: "b", Key: "k" }));

Aggregated (v2-style but NOT v2, larger bundle):

js
import { S3 } from "@aws-sdk/client-s3";
const client = new S3({ region: "us-east-1" });
const output = await client.getObject({ Bucket: "b", Key: "k" });

Client Configuration

No global config in v3 — pass config to each client. region is always required; set it explicitly or via AWS_REGION env var.

js
const config = { region: "us-east-1", maxAttempts: 5 };
const s3 = new S3Client(config);
const dynamo = new DynamoDBClient(config);

Do not read or mutate client.config after instantiation — it is a resolved form (e.g. region becomes an async function). See references/effective-practices.md.

For HTTP handler (NodeHttpHandler from @smithy/node-http-handler), retry strategy, endpoint details, logging, FIPS, dual-stack, protocol selection, and S3-specific options → see references/clients.md.

Credentials

All providers from @aws-sdk/credential-providers. Credentials are lazy and cached per client until ~5 min before expiry.

js
// Default chain (env → ini → IMDS/ECS) — use in most Node.js apps
const client = new S3Client({ credentials: fromNodeProviderChain() });

// Assume role (NOTE: fromTemporaryCredentials is correct for STS AssumeRole)
const client = new S3Client({
  credentials: fromTemporaryCredentials({ params: { RoleArn: "arn:aws:iam::123456789012:role/MyRole" } }),
});

// Named profile
const client = new S3Client({ profile: "my-profile" });

Share credentials and socket pool across multi-region clients:

js
const east = new S3Client({ region: "us-east-1" });
const { credentials, requestHandler } = east.config;
const west = new S3Client({ region: "us-west-2", credentials, requestHandler });

For all providers (Cognito, SSO, web identity, custom chains, STS region priority) → see references/credentials.md.

Streams (e.g. S3 GetObject Body)

Always read or discard streaming responses — unread streams leave sockets open (socket exhaustion):

js
const { Body } = await client.send(new GetObjectCommand({ Bucket: "b", Key: "k" }));
const str = await Body.transformToString();       // read as string
const bytes = await Body.transformToByteArray();  // read as Uint8Array
// or discard:
await (Body.destroy?.() ?? Body.cancel?.());

Streams can only be read once.

Paginators

Use paginate* functions instead of manual token handling:

js
import { DynamoDBClient, paginateListTables } from "@aws-sdk/client-dynamodb";

const client = new DynamoDBClient({});

const tableNames = [];
for await (const page of paginateListTables({ client }, {})) {
  // page contains a single paginated output.
  tableNames.push(...page.TableNames);
}

DynamoDB DocumentClient

Use @aws-sdk/lib-dynamodb to work with native JS types instead of AttributeValues:

js
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
import { DynamoDBDocumentClient, GetCommand, PutCommand } from "@aws-sdk/lib-dynamodb";

const client = DynamoDBDocumentClient.from(new DynamoDBClient({}));
await client.send(new PutCommand({ TableName: "T", Item: { id: "1", name: "Alice" } }));
const { Item } = await client.send(new GetCommand({ TableName: "T", Key: { id: "1" } }));

For marshall options, large numbers (NumberValue), pagination, and aggregated client → see references/dynamodb.md.

S3: Presigned URLs, Multipart Upload, Waiters

js
// Presigned GET URL
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
const url = await getSignedUrl(client, new GetObjectCommand({ Bucket: "b", Key: "k" }), { expiresIn: 3600 });

// Multipart upload (large files / streams)
import { Upload } from "@aws-sdk/lib-storage";
const upload = new Upload({ client, params: { Bucket: "b", Key: "k", Body: stream } });
await upload.done();

// Waiters
import { waitUntilObjectExists } from "@aws-sdk/client-s3";
await waitUntilObjectExists({ client, maxWaitTime: 120 }, { Bucket: "b", Key: "k" });

For presigned POST, signed headers, waiter options → see references/s3.md.

Show full SKILL.md (184 more words)Show less

Error Handling

js
import { S3ServiceException } from "@aws-sdk/client-s3";

try {
  await client.send(new GetObjectCommand({ Bucket: "b", Key: "k" }));
} catch (e) {
  if (e?.$metadata) {
    // SDK service error — has $metadata.httpStatusCode, e.name, e.$response
    console.error(e.name, e.$metadata.httpStatusCode);
  }
}

Check e.name or instanceof for specific error types. See references/error-handling.md for full patterns.

For runtime validation, serialization to non-default formats, or questions about what schemas are in jsv3 → see references/schemas.md.

Performance: Parallel Workloads

js
// Configure maxSockets to match your parallel batch size
const client = new S3Client({
  requestHandler: { httpsAgent: { maxSockets: 50 } },
  cacheMiddleware: true, // skip if using custom middleware
});

Streaming deadlock warning: with limited sockets, don't await the request and stream body separately — chain them. See references/performance.md.

Middleware

Add custom logic to all commands on a client:

js
client.middlewareStack.add(
  (next, context) => async (args) => {
    console.log(context.commandName, args.input);
    const result = await next(args);
    return result;
  },
  { name: "MyMiddleware", step: "build", override: true }
);

Steps (in order): initialize → serialize → build → finalizeRequest → deserialize

Abort Controller

js
const { AbortController } = require("@aws-sdk/abort-controller");
const { S3Client, CreateBucketCommand } = require("@aws-sdk/client-s3");

const abortController = new AbortController();
const client = new S3Client(clientParams);

const requestPromise = client.send(new CreateBucketCommand(commandParams), {
  abortSignal: abortController.signal,
});

// The request will not be created if abortSignal is already aborted.
// The request will be destroyed if abortSignal is aborted before response is returned.
abortController.abort();

// This will fail with "AbortError" as abortSignal is aborted.
await requestPromise;

Lambda Best Practices

Initialize clients outside the handler (container reuse), make API calls inside. For one-time async setup, use a lazy init flag inside the handler:

js
import { S3Client } from "@aws-sdk/client-s3";

const client = new S3Client({}); // outside — reused across invocations

let ready = false;
export const handler = async (event) => {
  if (!ready) { await prepare(); ready = true; } // lazy one-time setup inside handler
  // ... API calls here
};

See references/lambda.md for Lambda layers and versioning.

Node.js Version Requirements

  • v3.968.0+ requires Node.js >= 20
  • v3.723.0+ requires Node.js >= 18

TypeScript

Response fields are typed as T | undefined by default. Use AssertiveClient from @smithy/types to remove | undefined, or NodeJsClient / BrowserClient to narrow streaming blob types. See references/typescript.md.

SigV4a (S3 Multi-Region Access Points)

S3 MRAP and certain other features require SigV4a. You must install and side-effect-import exactly one of:

  • @aws-sdk/signature-v4-crt — Node.js only, better performance
  • @aws-sdk/signature-v4a — Node.js + browsers, pure JS
js
import "@aws-sdk/signature-v4a"; // side-effect only — no exported values needed

See references/sigv4a.md for full details and MRAP ARN format.

© aws, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 11 other files (references) in skills/core-skills/aws-sdk-js-v3-usage of aws/agent-toolkit-for-aws.

  • SKILL.md
  • references/clients.md
  • references/credentials.md
  • references/dynamodb.md
  • references/effective-practices.md
  • references/error-handling.md
  • references/lambda.md
  • references/performance.md
  • references/s3.md
  • references/schemas.md
  • references/sigv4a.md
  • references/typescript.md

Open the folder on GitHubat commit 188af2f

Compare with similar skills

AWS SDK JS V3 Usage next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

AWS SDK JS V3 Usage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
AWS SDK JS V3 Usage this skillaws/agent-toolkit-for-aws2.8k—~2.2kAutomated safety check: PassApache-2.0
AWS CLI Beastgiuseppe-trisciuoglio/developer-kit355—~1.7kAutomated safety check: NotesMIT
Amplify Workflowawslabs/agent-plugins915—~3.2kAutomated safety check: PassApache-2.0
AWSkid-sid/claude-spellbook189—~4.9kAutomated safety check: WarnMIT
Implementdynamodb-toolbox/dynamodb-toolbox2k—~1.8kAutomated safety check: PassMIT
Plandynamodb-toolbox/dynamodb-toolbox2k—~1.5kAutomated safety check: PassMIT

Similar skills

  • AWS CLI Beast

    giuseppe-trisciuoglio/developer-kit

    Provides advanced AWS CLI patterns for managing EC2, Lambda, S3, DynamoDB, RDS, VPC, IAM, and CloudWatch.

    355 GitHub stars~1.7k tokensUpdated 28 days ago
    DatabasesAuto-check: notes
  • Amplify Workflow

    awslabs/agent-plugins

    Official

    Build and deploy full-stack web and mobile apps with AWS Amplify Gen2 (TypeScript code-first).

    915 GitHub stars~3.2k tokensUpdated 2 days ago
    MobileAuto-check passed
  • AWS

    kid-sid/claude-spellbook

    A skill your agent uses when writing boto3 or AWS SDK v3 code — configuring IAM auth, reading/writing S3, designing DynamoDB access patterns, writing Lambda handlers, processing SQS batches, or…

    189 GitHub stars~4.9k tokensUpdated 2 mo ago
    DatabasesAuto-check: warnings
  • Implement

    dynamodb-toolbox/dynamodb-toolbox

    Implement a planned DynamoDB-Toolbox feature end-to-end and open a pull request.

    2k GitHub stars~1.8k tokensUpdated 5 days ago
    DatabasesAuto-check passed
  • Plan

    dynamodb-toolbox/dynamodb-toolbox

    Write the technical implementation strategy for a spec'd DynamoDB-Toolbox task.

    2k GitHub stars~1.5k tokensUpdated 5 days ago
    DatabasesAuto-check passed
  • Spec

    dynamodb-toolbox/dynamodb-toolbox

    Formalise a product spec for a DynamoDB-Toolbox task — interview, codebase analysis, and Notion write-back.

    2k GitHub stars~1.2k tokensUpdated 5 days ago
    DatabasesAuto-check passed

More from aws/agent-toolkit-for-aws

All 138 skills in this repo
  • Agent Advisor

    aws/agent-toolkit-for-aws

    Official

    Entry point for AI-agent work on AWS: pick a runtime, plan a migration for existing workloads, and build an executable POC — one phased flow.

    2.8k GitHub stars~4.9k tokensUpdated today
    Auto-check passed
  • Agents Build

    aws/agent-toolkit-for-aws

    Official

    A skill your agent uses to extend an existing agent project with memory, app integration, VPC, multi-agent, migration, model, browser, code interpreter, payments, or resource removal.

    2.8k GitHub stars~2.3k tokensUpdated today
    Auto-check: notes
  • Launch With AWS

    aws/agent-toolkit-for-aws

    Official

    Migrates vibe-coded web applications to AWS. An agent skill from aws/agent-toolkit-for-aws.

    2.8k GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • Official

    Deploy an event-driven workflow that routes S3 uploads to either Lambda or Fargate via Step Functions based on file size.

    2.8k GitHub stars~4k tokensUpdated today
    Auto-check passed
  • AWS Marketplace Metering

    aws/agent-toolkit-for-aws

    Official

    Deploys, queries, and debugs AWS Marketplace usage-based (PAYG) metering — the pipeline (ResolveCustomer, BatchMeterUsage, EventBridge via SAM) and querying/debugging metering records, statuses…

    2.8k GitHub stars~18k tokensUpdated today
    Auto-check passed
  • Agents Pay

    aws/agent-toolkit-for-aws

    Official

    A skill your agent uses when THIS agent needs to pay for x402-protected content at runtime: hitting a paywall mid-task, settling it via AgentCore Payments, and applying operator-defined spend limits.

    2.8k GitHub stars~6.5k tokensUpdated today
    Auto-check: notes

Questions about AWS SDK JS V3 Usage

What does AWS SDK JS V3 Usage do?

AWS SDK for JavaScript v3 development patterns. An agent skill from aws/agent-toolkit-for-aws. AWS SDK JS V3 Usage is an agent skill from aws/agent-toolkit-for-aws, published by the product's own GitHub organization. AWS SDK for JavaScript v3 development patterns.

When should I use AWS SDK JS V3 Usage?

AWS SDK JS V3 Usage fits situations like: writing JavaScript; typeScript code that uses AWS services via @aws-sdk/ packages (aws-sdk-js-v3); asked about schemas; runtime validation.

How do I install AWS SDK JS V3 Usage in Claude Code?

Run `npx skills add aws/agent-toolkit-for-aws --skill aws-sdk-js-v3-usage -a claude-code`. Or copy the skill folder (skills/core-skills/aws-sdk-js-v3-usage in aws/agent-toolkit-for-aws) into .claude/skills/aws-sdk-js-v3-usage in your project. Claude Code loads it when a task matches its description.

How do I install AWS SDK JS V3 Usage in Codex?

Run `npx skills add aws/agent-toolkit-for-aws --skill aws-sdk-js-v3-usage -a codex`. Or copy the skill folder (skills/core-skills/aws-sdk-js-v3-usage in aws/agent-toolkit-for-aws) into .agents/skills/aws-sdk-js-v3-usage in your project. Codex loads it when a task matches its description.

Can I use AWS SDK JS V3 Usage in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aws/agent-toolkit-for-aws --skill aws-sdk-js-v3-usage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/aws-sdk-js-v3-usage, .gemini/skills/aws-sdk-js-v3-usage, .github/skills/aws-sdk-js-v3-usage and .opencode/skills/aws-sdk-js-v3-usage in your project.

What does AWS SDK JS V3 Usage need to run?

SKILL.md names no scripts, command-line tools or credentials: AWS SDK JS V3 Usage is instructions for the agent only. Our summary lists: Node.js.

Does AWS SDK JS V3 Usage access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is AWS SDK JS V3 Usage safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does AWS SDK JS V3 Usage use?

AWS SDK JS V3 Usage is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does AWS SDK JS V3 Usage use?

About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.2k tokens, read only when the agent opens those files.

What are the alternatives to AWS SDK JS V3 Usage?

Skills that share tags, products or a category with AWS SDK JS V3 Usage: AWS CLI Beast (giuseppe-trisciuoglio/developer-kit, 355 stars), Amplify Workflow (awslabs/agent-plugins, 915 stars), AWS (kid-sid/claude-spellbook, 189 stars) and Implement (dynamodb-toolbox/dynamodb-toolbox, 2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains AWS SDK JS V3 Usage?

aws (a GitHub organization, an official publisher) maintains it in aws/agent-toolkit-for-aws, which has 2,825 GitHub stars. The repository holds 138 skills in this directory. The repository was last updated on October 7, 2026.

Source: aws/agent-toolkit-for-aws on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.