Your agent has hands.
Now you have eyes.

Your AI agent can change your infrastructure faster than you can read its diffs. stackcanvas is the missing supervision surface: a live local map of your Terraform estate where you see what the agent is about to do — and approve it — before it happens.

$ claude mcp add stackcanvas -- npx -y stackcanvas
the problem

Text is a terrible supervision surface for infrastructure.

Agents made infra changes more frequent and each change less legible. A 400-line terraform plan hides the one thing that matters: what this change touches around itself. So you either slow the agent down — or rubber-stamp it.

terraform plan · 402 lineswhere is the danger?
~ resource "aws_instance" "web" {
    instance_type = "t3.micro" -> "t3.large"
    ebs_optimized = false -> true
~ resource "aws_lb_target_group" "app" {
    deregistration_delay = 300 -> 30
    health_check { interval = 30 -> 10 }
+ resource "aws_security_group_rule" "tmp" {
    cidr_blocks = ["10.0.0.0/8"]
- resource "aws_db_instance" "prod" {
    engine = "postgres" # DESTROYED
~ resource "aws_ecs_service" "api" {
    desired_count = 2 -> 4
    launch_type = "FARGATE"
+ resource "aws_cloudwatch_log_group" "api" {
    retention_in_days = 14
~ resource "aws_route53_record" "www" {
    ttl = 300 -> 60
Line 214 of 402 deletes your production database. Honest question: were you going to catch it?
the same plan on the canvasseen in one second
vpc web update db_prod delete log_group create
A red node with edges is impossible to scroll past. Comprehension at the speed of sight.
the loop

You see. You draw. The agent codes.

stackcanvas is an MCP tool built for Claude Code (Cursor/Windsurf reported working as standard MCP clients; Claude Code is the CI-verified path). It contains zero code generators — the agent you already pay for writes all the HCL, in your repo's style.

01 / watch

The map lives by itself

State changes on disk → the canvas redraws over WebSocket. Plan diffs render as color: create, update, delete, replace — with attribute-level detail in the inspector.

02 / draw

Gestures become intent

Drag a resource from the palette, pull an edge to a node, write a wish like small, no multi-AZ. Send to agent ships a strict intent — exact addresses, zero ambiguity — straight into the agent's loop.

03 / approve

Nothing applies without you

The agent writes HCL, runs terraform plan, the canvas shows the diff. The canvas has no terraform-apply control — the Send-to-agent button only proposes; your agent executes, and only when you say so.

stackcanvas demo: the canvas updates live as the agent builds infrastructure, a dragged resource becomes an intent, Send to agent ships it to the agent
local-first, by construction

Trusting us is not required.

Every platform that can "show and steer" your infra wants your prod credentials in their cloud. stackcanvas structurally can't leak what it never has.

127.0.0.1 only

The server binds to localhost. Not "behind a login" — physically unreachable from outside. No cloud backend for your data — the only thing we run is an opt-in, allowlisted telemetry counter.

Zero credentials

It reads your local state and plan files. No AWS keys, no tokens, nothing to hand over, nothing to breach.

Secrets masked

Everything Terraform marks sensitive becomes ••• inside the parser — before it ever reaches the UI.

Agent-only execution

The canvas proposes; your agent executes. MIT-licensed, open source, opt-in anonymous telemetry — fully documented.