Agent Toolkit for AWS is a collection of AWS-supported MCP servers, skills, plugins, commands, and hooks that help AI coding agents build, deploy, and manage applications on AWS. It is used by developers working with AWS services through agents such as Claude Code, Codex, Cursor, and Kiro. The catalogue entries are the toolkit's own agent extensions for AWS development and operations.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add aws/agent-toolkit-for-aws --skill heroku-to-awsgit clone --depth 1 https://github.com/aws/agent-toolkit-for-awsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/aws/agent-toolkit-for-aws/heroku-to-aws)<a href="https://agentmods.dev/skills/aws/agent-toolkit-for-aws/heroku-to-aws"><img src="https://agentmods.dev/badge/skills/aws/agent-toolkit-for-aws/heroku-to-aws/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/aws/agent-toolkit-for-aws/heroku-to-aws"><img src="https://agentmods.dev/badge/skills/aws/agent-toolkit-for-aws/heroku-to-aws.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00242 | $0.06619 |
| Opus 5.5 | $0.00097 | $0.02648 |
| Sonnet 5.5 | $0.00048 | $0.01324 |
| Haiku 4.5 | $0.00024 | $0.00662 |
Grade A, and why
heroku-to-aws scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 362 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Heroku-to-AWS Migration Skill
The skill base directory is given in the "Base directory for this skill: X" line the
harness emits at load time. Call it <SKILL_BASE>. The report validator lives at
<SKILL_BASE>/scripts/validate-heroku-migration-report.py — resolve it relative to
<SKILL_BASE>, never assume a plugin-root scripts/ directory, since a standalone
npx skills add --skill heroku-to-aws install carries only this skill's own
directory tree, not the plugin's top-level scripts/.
Optional usage telemetry
Before starting or resuming, load references/vendored/telemetry/PROTOCOL.md and
run its read-only status check. Use the returned reporting mode rather than the
model's identity. Complete the existing notice exchange only when that protocol
requires it; unavailable or declined telemetry never blocks this skill.
Philosophy
- Full platform exit by default: Heroku is in sustaining engineering (KTLO) — stability and support only, no new investment. Enterprise contracts are no longer sold to new customers. This skill assumes complete departure from Heroku (compute, data, and add-ons) within a user-defined window. Do not recommend indefinite continued use of Heroku.
- PaaS-to-PaaS by default, recommendation-shaped: Elastic Beanstalk (Docker platform, AL2023) is the default compute target because it preserves Heroku's managed platform model (source deployment, platform-managed environments, and lower operational burden than direct container orchestration). Clarify presents a per-formation compute recommendation before asking for confirmation. Fargate remains the override for direct container control and is used automatically for horizontally scaled non-web processes that EB SingleInstance cannot preserve; EKS remains the override for teams with Kubernetes expertise. ECS Express Mode may be mentioned only as a forward-look for the Fargate override path, not as a replacement for the EB default. Do not recommend AWS App Runner (no longer accepting new customers as of April 2026).
- Interim cutover is bounded: If a user chooses data-first migration (database on AWS, app temporarily on Heroku), treat this as a bounded phase (weeks, not quarters). Require a target exit date and surface KTLO platform risk warnings.
- Re-platform by default: Select AWS services that match Heroku workload types (e.g., Dynos → Elastic Beanstalk, Heroku Postgres → RDS/Aurora, Heroku Redis → ElastiCache, Kafka → MSK).
- Dev sizing unless specified: Default to development-tier capacity (e.g., db.t4g.micro, single AZ). Upgrade only on user direction.
- No human one-time migration costs: Do not present human labor, professional services, or people-time work as dollar estimates or "one-time migration cost" budget categories. Vendor charges grounded in data (for example Heroku invoice line items in the infra estimate when billing exists) are allowed.
- Live-first discovery, read-only and consent-gated: The user's authenticated Heroku CLI is a first-class discovery source — most startups have no
heroku_*Terraform, and the account is authoritative for what actually runs. Live capture is strictly read-only (an exact-command allowlist of list/info commands), requires explicit consent, never captures config var values (key names only), and never extracts the API token. Terraform files (.tfwithheroku_*resources) and repo artifacts (Procfile, app.json) remain fully supported; when both live and Terraform data exist, live wins for current state, Terraform supplements structure and provenance, and disagreements are surfaced as drift — never silently resolved. - Flat resource model: Heroku resources are organized per-app without dependency graphs or clustering. No topological sorting, typed edges, or cluster formation logic. Resources are processed as a flat list in input order.
- Deterministic mappings: Core services use fixed lookup tables (Dyno Type Table, Postgres Plan Table, Redis Plan Table, Kafka Plan Table). Common add-ons use the Fast-Path Table. Unknown add-ons hit the specialist gate.
- DMS has Heroku constraints: AWS DMS cannot perform continuous replication (CDC) with Heroku Postgres because Heroku does not grant the REPLICATION role. DMS is for one-time bulk migration with a cutover window only. The skill must surface this constraint when DMS is selected.
- What-if after Estimate: After costs are computed, SAs can enter an optional what-if workshop sidebar (
references/phases/workshop/workshop.md) to change region, HA, compute target, or CPU architecture (x86 vs Graviton), refresh Design + Estimate, and compare up to 5 priced scenarios — without re-running Discover. Rates are cache-based (us-east-1 anchor; regional deltas are noted qualitatively). Workshop arch defaults to x86_64 here (EB tables historically x86-first).
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- knowledge/design/dyno-eb-sizing.json 4.4 KB
- knowledge/design/dyno-fargate-sizing.json 4.3 KB
- knowledge/design/eks-pod-sizing.json 9.1 KB
- knowledge/design/fast-path-addons.json 2.6 KB
- knowledge/design/kafka-msk-sizing.json 3.7 KB
- knowledge/design/postgres-rds-sizing.json 10 KB
- knowledge/design/redis-elasticache-sizing.json 4.7 KB
- knowledge/estimate/estimate-defaults.json 4.2 KB
- references/phases/clarify/clarify-assemble.md 12 KB
- references/phases/clarify/clarify-interview.md 55 KB
- references/phases/clarify/clarify.md 3.7 KB
- references/phases/design/design-assemble.md 4.8 KB
- references/phases/design/design-eks.md 5.8 KB
- references/phases/design/design-mapping.md 30 KB
- references/phases/design/design.md 5.6 KB
- references/phases/discover/discover-assemble.md 7.0 KB
- references/phases/discover/discover-billing.md 14 KB
- references/phases/discover/discover-live-capture.md 12 KB
- references/phases/discover/discover-live.md 12 KB
- references/phases/discover/discover-terraform.md 19 KB
- references/phases/discover/discover.md 8.7 KB
- references/phases/estimate/estimate-assemble.md 27 KB
- references/phases/estimate/estimate-cost-engine.md 55 KB
- references/phases/estimate/estimate.md 5.1 KB
- references/phases/feedback/feedback-assemble.md 1.1 KB
- references/phases/feedback/feedback-collect.md 5.4 KB
- references/phases/feedback/feedback.md 2.5 KB
- references/phases/generate/generate-assemble.md 14 KB
- references/phases/generate/generate-docs.md 117 KB
- references/phases/generate/generate-eks.md 14 KB
- references/phases/generate/generate-report.md 20 KB
- references/phases/generate/generate-terraform.md 108 KB
- references/phases/generate/generate.md 15 KB
- references/phases/workshop/workshop-assemble.md 2.3 KB
- references/phases/workshop/workshop-compare.md 2.1 KB
- references/phases/workshop/workshop-refresh.md 7.1 KB
- references/phases/workshop/workshop-sheet.md 3.2 KB
- references/phases/workshop/workshop.md 9.0 KB
- references/shared/application-source-contract.md 10 KB
- references/shared/application-source-contract.schema.json 29 KB
- references/shared/heroku-pricing-cache.md 17 KB
- references/shared/README.md 2.7 KB
- references/shared/report-decision-core.md 5.0 KB
- references/shared/schema-discover-heroku.md 28 KB
- references/shared/schema-workshop-scenarios.md 4.0 KB
- references/vendored/dsl/INTERPRETER.md 52 KB
- references/vendored/estimate/complexity-tiers.json 1.3 KB
- references/vendored/estimate/estimation-infra.schema.json 4.0 KB
- references/vendored/estimate/pricing-mode.md 3.1 KB
- references/vendored/estimate/ri-sp-eligibility.md 20 KB
- references/vendored/pricing/aws-infra-pricing.json 21 KB
- references/vendored/README.md 2.1 KB
- references/vendored/state/phase-status.schema.json 3.5 KB
- references/vendored/telemetry/cli.py 1.4 KB runs code
- references/vendored/telemetry/consent/accept.py 2.0 KB runs code
- references/vendored/telemetry/consent/cli.py 2.7 KB runs code
- references/vendored/telemetry/consent/notice.py 2.3 KB runs code
- references/vendored/telemetry/consent/opt_out.py 1.8 KB runs code
- references/vendored/telemetry/consent/record.py 6.6 KB runs code
- references/vendored/telemetry/metric_emission/client.py 11 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago Changed · +7 lines ab7765df4aeb
- 13d ago Changed · +16 lines f04678096880
- 14d ago Changed · +2 lines 0e624bf1d97c
- 16d ago Changed 1d755a2bd24e
- 20d ago First seen · 337 lines · 242 tokens per session scan A fa3b5dadec46
heroku-to-aws is a skill published in the GitHub repository aws/agent-toolkit-for-aws (2,886 stars, last pushed yesterday), licensed Apache-2.0. It adds 242 tokens to every session and 6,619 once invoked, about $0.0010 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-26.
Other skills, from other repositories
gke-compute-classes
Configures, optimizes, and troubleshoots GKE ComputeClasses. Use when configuring Spot VMs with on-demand fallback, targeting specific accelerators (GPUs/TPUs) or machine families, restricting ComputeClass access, or debugging pending pods related to node pool auto-creation. Do not use for cluster-level Node Auto…
gke-reliability
Improves GKE workload reliability, using PDBs, health probes, and topology spread constraints. Use when configuring GKE workload reliability, setting up PDBs, or configuring GKE health probes (liveness, readiness, startup). Don't use for generating K8s YAML manifests (use gke-manifest-generation) or disaster recovery…
gke-workload-security
Audits, configures, and hardens workload-level security controls for Google Kubernetes Engine (GKE) applications and namespaces. Covers running security audits (auditcluster.sh), enforcing Network Policies (default-deny and Dataplane V2 logging), isolating high-risk pods inside GKE Sandbox (gVisor), enforcing Pod…
cloud-architect
Designs cloud architectures, creates migration plans, generates cost optimization recommendations, and produces disaster recovery strategies across AWS, Azure, and GCP. Use when designing cloud architectures, planning migrations, or optimizing multi-cloud deployments. Invoke for Well-Architected Framework, cost…
nemo-automodel-launcher-config
Configure NeMo AutoModel job launches for interactive runs, Slurm clusters, and SkyPilot cloud execution.
azure-mgmt-botservice-dotnet
Azure Resource Manager SDK for Bot Service in .NET. Management plane operations for creating and managing Azure Bot resources, channels (Teams, DirectLine, Slack), and connection settings. Triggers: "Bot Service", "BotResource", "Azure Bot", "DirectLine channel", "Teams channel", "bot management .NET", "create bot".