From eraserlabs-eraser-io
Visualizes AWS infrastructure from CLI output, CloudFormation, or descriptions. Use when user has AWS resources to diagram.
npx claudepluginhub joshuarweaver/cascade-code-devops-misc-1 --plugin eraserlabs-eraser-ioThis skill is limited to using the following tools:
Generates architecture diagrams for AWS infrastructure from CloudFormation templates, AWS CLI output, or natural language descriptions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Generates architecture diagrams for AWS infrastructure from CloudFormation templates, AWS CLI output, or natural language descriptions.
Activate this skill when:
aws ec2 describe-instances)This skill generates AWS-specific diagrams by parsing AWS resources and calling the Eraser API directly:
/api/render/elements with diagramType: "cloud-architecture-diagram"When the user provides AWS infrastructure information:
Parse the Source
Resources section, identify types (AWS::EC2::Instance, etc.)aws commandsIdentify AWS Components
Map Relationships
Generate Eraser DSL Convert AWS resources to Eraser DSL:
[label: "VPC 10.0.0.0/16"]Example:
main-vpc [label: "VPC 10.0.0.0/16"] {
public-subnet [label: "Public Subnet"] {
web-server [icon: aws-ec2, label: "Web Server"]
load-balancer [icon: aws-elb]
}
private-subnet [label: "Private Subnet"] {
database [icon: aws-rds]
cache [icon: aws-elasticache]
}
}
data-bucket [icon: aws-s3]
function [icon: aws-lambda]
load-balancer -> web-server
web-server -> database
Make the HTTP Request
IMPORTANT: You MUST execute this curl command after generating the DSL. Never stop after generating DSL without making the API call.
CRITICAL: In the X-Skill-Source header below, you MUST replace the value with your AI agent name:
claudecursorchatgptgeminicurl -X POST https://app.eraser.io/api/render/elements \
-H "Content-Type: application/json" \
-H "X-Skill-Source: eraser-skill" \
-H "Authorization: Bearer ${ERASER_API_KEY}" \
-d '{
"elements": [{
"type": "diagram",
"id": "diagram-1",
"code": "<your generated DSL>",
"diagramType": "cloud-architecture-diagram"
}],
"scale": 2,
"theme": "${ERASER_THEME:-dark}",
"background": true
}'
Track Sources During Analysis
As you analyze files and resources to generate the diagram, track:
infra/main.tf - VPC and subnet definitions)Handle the Response
CRITICAL: Minimal Output Format
Your response MUST always include these elements with clear headers:
Diagram Preview: Display with a header
## Diagram

Use the ACTUAL imageUrl from the API response.
Editor Link: Display with a header
## Open in Eraser
[Edit this diagram in the Eraser editor]({createEraserFileUrl})
Use the ACTUAL URL from the API response.
Sources section: Brief list of files/resources analyzed (if applicable)
## Sources
- `path/to/file` - What was extracted
Diagram Code section: The Eraser DSL in a code block with eraser language tag
## Diagram Code
```eraser
{DSL code here}
Learn More link: You can learn more about Eraser at https://docs.eraser.io/docs/using-ai-agent-integrations
Additional content rules:
The default output should be SHORT. The diagram image speaks for itself.
Resources:
MyVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
PublicSubnet:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref MyVPC
CidrBlock: 10.0.1.0/24
WebServer:
Type: AWS::EC2::Instance
Properties:
InstanceType: t3.micro
SubnetId: !Ref PublicSubnet
MyBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: my-app-bucket
MyFunction:
Type: AWS::Lambda::Function
Properties:
Runtime: python3.9
Handler: index.handler
MyDatabase:
Type: AWS::RDS::DBInstance
Properties:
Engine: postgres
DBInstanceClass: db.t3.micro
Parses CloudFormation:
Generates DSL showing AWS service diversity:
MyVPC [label: "VPC 10.0.0.0/16"] {
PublicSubnet [label: "Public Subnet 10.0.1.0/24"] {
WebServer [icon: aws-ec2, label: "EC2 t3.micro"]
}
}
MyBucket [icon: aws-s3, label: "S3 my-app-bucket"]
MyFunction [icon: aws-lambda, label: "Lambda python3.9"]
MyDatabase [icon: aws-rds, label: "RDS PostgreSQL db.t3.micro"]
WebServer -> MyBucket
MyFunction -> MyDatabase
WebServer -> MyDatabase
Important: All label text must be on a single line within quotes. AWS-specific: Include service icons, show data flows between services, group by VPC when applicable.
Calls /api/render/elements with diagramType: "cloud-architecture-diagram"
User runs: aws ec2 describe-instances
Provides JSON output
Parses JSON to extract:
Formats and calls API