Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

A CLI tool for navigating AWS ECS clusters interactively.

![lazy-ecs demo](images/lazy-ecs-demo.jpg)
![lazy-ecs demo](demo/lazy-ecs-demo.gif)

## Why I Built This

Expand Down
40 changes: 40 additions & 0 deletions demo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Demo Generation

Generate animated GIF demos of lazy-ecs using asciinema recordings.

## Generate GIF

```bash
# Download and extract Noto Emoji fonts (full font directory needed for emoji support)
curl -L https://github.com/googlefonts/noto-emoji/archive/refs/tags/v2.047.tar.gz -o /tmp/noto-emoji.tar.gz
tar -xzf /tmp/noto-emoji.tar.gz -C /tmp

# Generate GIF with Docker (mount /tmp which contains the extracted fonts)
docker run --rm -v $PWD:/data -v /tmp:/fonts \
ghcr.io/asciinema/agg:latest \
--font-dir /fonts \
--font-size 13 \
--theme dracula \
/data/demo/lazy-ecs-demo.cast /data/demo/lazy-ecs-demo.gif
```

## Record New Demo

```bash
# Install asciinema
brew install asciinema

# Record session
asciinema rec demo.cast

# Run lazy-ecs and navigate
# When done, Ctrl+D to stop

# Preview
asciinema play demo.cast
```

## Files

- `lazy-ecs-demo.cast` - Asciinema recording (anonymized)
- `lazy-ecs-demo.gif` - Generated animated demo
93 changes: 93 additions & 0 deletions demo/lazy-ecs-demo.cast
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
{"version":3,"term":{"cols":120,"rows":35,"type":"xterm-256color","version":"iTerm2 3.6.2","theme":{"fg":"#c7c7c7","bg":"#000000","palette":"#000000:#b93019:#52c037:#c7c53e:#0c24c0:#ba3ec1:#53c3c6:#c7c7c7:#686868:#f0776d:#8df77a:#fffc7f:#6a71f7:#f17ff9:#8efafe:#ffffff"}},"timestamp":1759852367,"env":{"SHELL":"/bin/zsh"}}
[0.384133, "o", "\u001b[1;36m🚀 Welcome to lazy-ecs!\u001b[0m\r\n"]
[0.00011, "o", "\u001b[2mInteractive AWS ECS cluster navigator\u001b[0m\r\n\r\n"]
[0.07731, "o", "\u001b[?25l"]
[0.085545, "o", "\u001b[32m⠋\u001b[0m \u001b[36m⠦\u001b[0m"]
[0.085389, "o", "\r\u001b[2K\u001b[32m⠙\u001b[0m \u001b[36m⠧\u001b[0m"]
[0.084801, "o", "\r\u001b[2K\u001b[32m⠹\u001b[0m \u001b[36m⠇\u001b[0m"]
[0.002736, "o", "\r\u001b[2K\u001b[32m⠹\u001b[0m \u001b[36m⠇\u001b[0m\r\n\u001b[?25h\r\u001b[1A\u001b[2K"]
[0.006031, "o", "\u001b[?12l\u001b[?25h"]
[0.006858, "o", "\u001b[6n"]
[0.00237, "o", "\u001b[?2004h\u001b[?1l\u001b[?25l\u001b[0m\u001b[?7l\u001b[0m\u001b[J\u001b[0;38;5;51;1m?\u001b[0;1m Select an ECS cluster: \u001b[0m(Use shortcuts or arrow keys)\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m1) production-web-main-ecs-cluster\u001b[0m\r\r\n\u001b[0m 2) staging-web-main-ecs-cluster\u001b[0m\r\r\n\u001b[0m q) ❌ Exit (q)\u001b[17D\u001b[3A\u001b[54C\u001b[?7h\u001b[0m"]
[0.023964, "o", "\u001b[?7l\u001b[?7h\u001b[0m"]
[2.000957, "o", "\u001b[?7l\u001b[54D\u001b[0m\u001b[J\u001b[0;38;5;51;1m?\u001b[0;1m Select an ECS cluster: \u001b[0;38;5;51;1mproduction-web-main-ecs-cluster\u001b[63D\u001b[0m\r\r\n\u001b[J\u001b[?7h\u001b[0m\u001b[?2004l\u001b[?12l\u001b[?25h"]
[0.000852, "o", "\r\n\u001b[32m✅ Selected cluster: production-web-main-ecs-cluster\u001b[0m\r\n"]
[0.000068, "o", "\u001b[?25l"]
[0.083203, "o", "\u001b[32m⠋\u001b[0m \u001b[36m⠼\u001b[0m"]
[0.085378, "o", "\r\u001b[2K\u001b[32m⠙\u001b[0m \u001b[36m⠴\u001b[0m"]
[0.068973, "o", "\r\u001b[2K\u001b[32m⠙\u001b[0m \u001b[36m⠦\u001b[0m\r\n\u001b[?25h\r\u001b[1A\u001b[2K"]
[0.010399, "o", "\u001b[6n"]
[0.002037, "o", "\u001b[?2004h\u001b[?1l\u001b[?25l\u001b[0m\u001b[?7l\u001b[0m\u001b[J\u001b[0;38;5;51;1m?\u001b[0;1m Select a service: \u001b[0m(Use shortcuts or arrow keys)\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m1) ✅ production-web-lab-service (1/1)\u001b[0m\r\r\n\u001b[0m 2) ✅ production-web-admin-service (1/1)\u001b[0m\r\r\n\u001b[0m b) ⬅️ Back to cluster selection (b)\u001b[0m\r\r\n\u001b[0m q) ❌ Exit (q)\u001b[17D\u001b[4A\u001b[49C\u001b[?7h\u001b[0m"]
[0.020947, "o", "\u001b[?7l\u001b[?7h\u001b[0m"]
[2.773708, "o", "\u001b[?7l\u001b[49D\u001b[0m\u001b[J\u001b[0;38;5;51;1m?\u001b[0;1m Select a service: \u001b[0;38;5;51;1m✅ production-web-lab-service (1/1)\u001b[62D\u001b[0m\r\r\n\u001b[J\u001b[?7h\u001b[0m\u001b[?2004l\u001b[?12l\u001b[?25h"]
[0.000878, "o", "\r\n\u001b[32m✅ Selected service: production-web-lab-service\u001b[0m\r\n"]
[0.000049, "o", "\u001b[?25l"]
[0.085537, "o", "\u001b[32m⠋\u001b[0m \u001b[36m⠹\u001b[0m"]
[0.085355, "o", "\r\u001b[2K\u001b[32m⠙\u001b[0m \u001b[36m⠸\u001b[0m"]
[0.073082, "o", "\r\u001b[2K\u001b[32m⠙\u001b[0m \u001b[36m⠼\u001b[0m\r\n\u001b[?25h\r\u001b[1A\u001b[2K"]
[0.008246, "o", "\u001b[6n"]
[0.002234, "o", "\u001b[?2004h\u001b[?1l\u001b[?25l\u001b[0m\u001b[?7l\u001b[0m\u001b[J\u001b[0;38;5;51;1m?\u001b[0;1m Select action for service 'production-web-lab-service': \u001b[0m(Use shortcuts or arrow keys)\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m1) ✅ v2258 production-web-lab (a34d59d7) - main-6b4a93a - 16:51:37\u001b[0m\r\r\n\u001b[0m 2) 📋 Show service events\u001b[0m\r\r\n\u001b[0m 3) 📊 Show metrics\u001b[0m\r\r\n\u001b[0m 4) 🌐 Open in AWS console\u001b[0m\r\r\n\u001b[0m 5) 🚀 Force new deployment\u001b[0m\r\r\n\u001b[0m b) ⬅️ Back to cluster selection (b)\u001b[0m\r\r\n\u001b[0m q) ❌ Exit (q)\u001b[17D\u001b[7A\u001b[94C\u001b[?7h\u001b[0m"]
[0.023867, "o", "\u001b[?7l\u001b[?7h\u001b[0m"]
[3.563184, "o", "\u001b[?7l\u001b[0m\r\r\n\u001b[0m 1) ✅ v2258 production-web-lab (a34d59d7) - main-6b4a93a - 16:51:37\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m2) 📋 Show service events\u001b[2A\u001b[66C\u001b[?7h\u001b[0m"]
[0.555314, "o", "\u001b[?7l\u001b[0m\r\r\n\r\r\n\u001b[0m 2) 📋 Show service events\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m3) 📊 Show metrics\u001b[3A\u001b[73C\u001b[?7h\u001b[0m"]
[0.747826, "o", "\u001b[?7l\u001b[94D\u001b[0m\u001b[J\u001b[0;38;5;51;1m?\u001b[0;1m Select action for service 'production-web-lab-service': \u001b[0;38;5;51;1m📊 Show metrics\u001b[80D\u001b[0m\r\r\n\u001b[J\u001b[?7h\u001b[0m\u001b[?2004l\u001b[?12l\u001b[?25h"]
[0.000612, "o", "\u001b[?25l"]
[0.08557, "o", "\u001b[32m⠋\u001b[0m \u001b[36m⠧\u001b[0m"]
[0.085328, "o", "\r\u001b[2K\u001b[32m⠙\u001b[0m \u001b[36m⠇\u001b[0m"]
[0.053898, "o", "\r\u001b[2K\u001b[32m⠙\u001b[0m \u001b[36m⠇\u001b[0m\r\n\u001b[?25h\r\u001b[1A\u001b[2K"]
[0.000344, "o", "\r\n\u001b[1;36mMetrics for service \u001b[0m\u001b[1;36m'production-web-lab-service'\u001b[0m\u001b[1;36m \u001b[0m\u001b[1;36m(\u001b[0m\u001b[1;36mlast hour\u001b[0m\u001b[1;36m)\u001b[0m\u001b[1;36m:\u001b[0m\r\n"]
[0.000174, "o", "CPU: Current: \u001b[1;36m0.4\u001b[0m% | Avg: \u001b[1;36m0.8\u001b[0m% | Peak: \u001b[1;36m11.8\u001b[0m% | Low: \u001b[1;36m0.1\u001b[0m%\r\n"]
[0.000168, "o", "Memory: Current: \u001b[1;36m14.1\u001b[0m% | Avg: \u001b[1;36m14.0\u001b[0m% | Peak: \u001b[1;36m14.1\u001b[0m% | Low: \u001b[1;36m14.0\u001b[0m%\r\n"]
[0.000045, "o", "\u001b[?25l"]
[0.085533, "o", "\u001b[32m⠋\u001b[0m \u001b[36m⠏\u001b[0m"]
[0.085453, "o", "\r\u001b[2K\u001b[32m⠙\u001b[0m \u001b[36m⠙\u001b[0m"]
[0.062036, "o", "\r\u001b[2K\u001b[32m⠙\u001b[0m \u001b[36m⠙\u001b[0m\r\n\u001b[?25h\r\u001b[1A\u001b[2K"]
[0.007999, "o", "\u001b[6n"]
[0.002117, "o", "\u001b[?2004h\u001b[?1l\u001b[?25l\u001b[0m\u001b[?7l\u001b[0m\u001b[J\u001b[0;38;5;51;1m?\u001b[0;1m Select action for service 'production-web-lab-service': \u001b[0m(Use shortcuts or arrow keys)\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m1) ✅ v2258 production-web-lab (a34d59d7) - main-6b4a93a - 16:51:37\u001b[0m\r\r\n\u001b[0m 2) 📋 Show service events\u001b[0m\r\r\n\u001b[0m 3) 📊 Show metrics\u001b[0m\r\r\n\u001b[0m 4) 🌐 Open in AWS console\u001b[0m\r\r\n\u001b[0m 5) 🚀 Force new deployment\u001b[0m\r\r\n\u001b[0m b) ⬅️ Back to cluster selection (b)\u001b[0m\r\r\n\u001b[0m q) ❌ Exit (q)\u001b[17D\u001b[7A\u001b[94C\u001b[?7h\u001b[0m"]
[0.019872, "o", "\u001b[?7l\u001b[?7h\u001b[0m"]
[2.389296, "o", "\u001b[?7l\u001b[94D\u001b[0m\u001b[J\u001b[0;38;5;51;1m?\u001b[0;1m Select action for service 'production-web-lab-service': \u001b[0;38;5;51;1m✅ v2258 production-web-lab (a34d59d7) - main-6b4a93a - 16:51:37\u001b[136D\u001b[0m\r\r\n\u001b[J\u001b[?7h\u001b[0m\u001b[?2004l\u001b[?12l\u001b[?25h"]
[0.000674, "o", "\u001b[?25l"]
[0.085558, "o", "\u001b[32m⠋\u001b[0m \u001b[36m⠸\u001b[0m"]
[0.085414, "o", "\r\u001b[2K\u001b[32m⠙\u001b[0m \u001b[36m⠼\u001b[0m"]
[0.064913, "o", "\r\u001b[2K\u001b[32m⠙\u001b[0m \u001b[36m⠴\u001b[0m\r\n\u001b[?25h\r\u001b[1A\u001b[2K"]
[0.000231, "o", "\r\n\u001b[1;36mTask Details: production-web-lab\u001b[0m\r\n"]
[0.000186, "o", "\u001b[2m================================================================================\u001b[0m\r\n"]
[0.000222, "o", "\u001b[37mTask ARN: arn:aws:ecs:eu-central-\u001b[0m\u001b[1;92m1:3544\u001b[0m\u001b[37m69016206:task/production-web-main-ecs-cluster/a34d59d7e3a141c6b30f9d1b5882e0c8\u001b[0m\r\n"]
[0.000094, "o", "\u001b[37mTask Definition: production-web-l\u001b[0m\u001b[1;92mab:2258\u001b[0m\r\n"]
[0.000077, "o", "\u001b[37mStatus: RUNNING\u001b[0m\r\n"]
[0.000124, "o", "\u001b[32mVersion: ✅ Desired version\u001b[0m\r\n"]
[0.000147, "o", "\u001b[37mCreated: \u001b[0m\u001b[1;36m2025\u001b[0m\u001b[37m-\u001b[0m\u001b[1;36m10\u001b[0m\u001b[37m-\u001b[0m\u001b[1;36m07\u001b[0m\u001b[37m \u001b[0m\u001b[1;92m16:51:37\u001b[0m\u001b[37m UTC\u001b[0m\r\n"]
[0.000128, "o", "\u001b[37mStarted: \u001b[0m\u001b[1;36m2025\u001b[0m\u001b[37m-\u001b[0m\u001b[1;36m10\u001b[0m\u001b[37m-\u001b[0m\u001b[1;36m07\u001b[0m\u001b[37m \u001b[0m\u001b[1;92m16:52:49\u001b[0m\u001b[37m UTC\u001b[0m\r\n"]
[0.000129, "o", "\r\n\u001b[1;36mContainers \u001b[0m\u001b[1;36m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;36m)\u001b[0m\u001b[1;36m:\u001b[0m\r\n"]
[0.000523, "o", "┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━┳━━━━━━━━┓\r\n┃\u001b[1;35m \u001b[0m\u001b[1;35mName \u001b[0m\u001b[1;35m \u001b[0m┃\u001b[1;35m \u001b[0m\u001b[1;35mImage \u001b[0m\u001b[1;35m \u001b[0m┃\u001b[1;35m \u001b[0m\u001b[1;35mCPU\u001b[0m\u001b[1;35m \u001b[0m┃\u001b[1;35m \u001b[0m\u001b[1;35mMemory\u001b[0m\u001b[1;35m \u001b[0m┃\r\n┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━╇━━━━━━━━┩\r\n│\u001b[36m \u001b[0m\u001b[36mhedera-lab\u001b[0m\u001b[36m \u001b[0m│\u001b[33m \u001b[0m\u001b[33m123456789012.dkr.ecr.us-east-1.amazonaws.com/hedera-lab:main-6b4a93a\u001b[0m\u001b[33m \u001b[0m│\u001b[32m \u001b"]
[0.00001, "o", "[0m\u001b[32m512\u001b[0m\u001b[32m \u001b[0m│\u001b[34m \u001b[0m\u001b[34m2048 \u001b[0m\u001b[34m \u001b[0m│\r\n└────────────┴─────────────────────────────────────────────────────────────────────────┴─────┴────────┘\r\n"]
[0.000186, "o", "\u001b[2m================================================================================\u001b[0m\r\n"]
[0.008367, "o", "\u001b[6n"]
[0.004882, "o", "\u001b[?2004h\u001b[?1l\u001b[?25l\u001b[0m\u001b[?7l\u001b[0m\u001b[J\u001b[0;38;5;51;1m?\u001b[0;1m Select a feature for this task: \u001b[0m(Use shortcuts or arrow keys)\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m1) Show task details\u001b[0m\r\r\n\u001b[0m 2) Show task history and failures\u001b[0m\r\r\n\u001b[0m 3) Compare task definitions\u001b[0m\r\r\n\u001b[0m 4) 🌐 Open in AWS console\u001b[0m\r\r\n\u001b[0m 5) Show logs (tail) for container 'hedera-lab'\u001b[0m\r\r\n\u001b[0m 6) Show environment variables for 'hedera-lab'\u001b[0m\r\r\n\u001b[0m 7) Show secrets for 'hedera-lab'\u001b[0m\r\r\n\u001b[0m 8) Show port mappings for 'hedera-lab'\u001b[0m\r\r\n\u001b[0m 9) Show volume mounts for 'hedera-lab'\u001b[0m\r\r\n\u001b[0m b) ⬅️ Back to service selection (b)\u001b[0m\r\r\n\u001b[0m q) ❌ Exit (q)\u001b[17D\u001b[11A\u001b[63C\u001b[?7h\u001b[0m"]
[0.023151, "o", "\u001b[?7l\u001b[?7h\u001b[0m"]
[1.82853, "o", "\u001b[?7l\u001b[0m\r\r\n\u001b[0m 1) Show task details\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m2) Show task history and failures\u001b[2A\u001b[27C\u001b[?7h\u001b[0m"]
[0.361336, "o", "\u001b[?7l\u001b[0m\r\r\n\r\r\n\u001b[0m 2) Show task history and failures\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m3) Compare task definitions\u001b[3A\u001b[33C\u001b[?7h\u001b[0m"]
[1.089755, "o", "\u001b[?7l\u001b[63D\u001b[0m\u001b[J\u001b[0;38;5;51;1m?\u001b[0;1m Select a feature for this task: \u001b[0;38;5;51;1mCompare task definitions\u001b[58D\u001b[0m\r\r\n\u001b[J\u001b[?7h\u001b[0m\u001b[?2004l\u001b[?12l\u001b[?25h"]
[0.000751, "o", "\r\n\u001b[1;36mComparing task definition: production-web-l\u001b[0m\u001b[1;92mab:2258\u001b[0m\r\n"]
[0.000114, "o", "\u001b[2m================================================================================\u001b[0m\r\n"]
[0.00011, "o", "\u001b[?25l"]
[0.045075, "o", "\u001b[32m⠋\u001b[0m \u001b[36m⠧\u001b[0m\r\n\u001b[?25h\r\u001b[1A\u001b[2K"]
[0.008764, "o", "\u001b[6n"]
[0.002499, "o", "\u001b[?2004h\u001b[?1l\u001b[?25l\u001b[0m\u001b[?7l\u001b[0m\u001b[J\u001b[0;38;5;51;1m?\u001b[0;1m Select revision to compare with v2258: \u001b[0m(Use shortcuts or arrow keys)\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m1) Revision 2258 (current)\u001b[0m\r\r\n\u001b[0m 2) Revision 2257\u001b[0m\r\r\n\u001b[0m 3) Revision 2256\u001b[0m\r\r\n\u001b[0m 4) Revision 2255\u001b[0m\r\r\n\u001b[0m 5) Revision 2254\u001b[0m\r\r\n\u001b[0m 6) Revision 2253\u001b[0m\r\r\n\u001b[0m 7) Revision 2252\u001b[0m\r\r\n\u001b[0m 8) Revision 2251\u001b[0m\r\r\n\u001b[0m 9) Revision 2250\u001b[0m\r\r\n\u001b[0m 0) Revision 2249\u001b[0m\r\r\n\u001b[0m b) ⬅️ Back (b)\u001b[0m\r\r\n\u001b[0m q) ❌ Exit (q)\u001b[17D\u001b[12A\u001b[70C\u001b[?7h\u001b[0m"]
[0.018445, "o", "\u001b[?7l\u001b[?7h\u001b[0m"]
[0.860123, "o", "\u001b[?7l\u001b[0m\r\r\n\u001b[0m 1) Revision 2258 (current)\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m2) Revision 2257\u001b[2A\u001b[51C\u001b[?7h\u001b[0m"]
[0.237424, "o", "\u001b[?7l\u001b[0m\r\r\n\r\r\n\u001b[0m 2) Revision 2257\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m3) Revision 2256\u001b[3A\u001b[51C\u001b[?7h\u001b[0m"]
[0.228482, "o", "\u001b[?7l\u001b[0m\r\r\n\r\r\n\r\r\n\u001b[0m 3) Revision 2256\u001b[0m\r\r\n\u001b[0;38;5;51;1m » \u001b[0;38;5;51m4) Revision 2255\u001b[4A\u001b[51C\u001b[?7h\u001b[0m"]
[0.322958, "o", "\u001b[?7l\u001b[70D\u001b[0m\u001b[J\u001b[0;38;5;51;1m?\u001b[0;1m Select revision to compare with v2258: \u001b[0;38;5;51;1mRevision 2255\u001b[54D\u001b[0m\r\r\n\u001b[J\u001b[?7h\u001b[0m\u001b[?2004l\u001b[?12l\u001b[?25h"]
[0.000571, "o", "\u001b[?25l"]
[0.085466, "o", "\u001b[32m⠋\u001b[0m \u001b[36m⠏\u001b[0m"]
[0.024712, "o", "\r\u001b[2K\u001b[32m⠋\u001b[0m \u001b[36m⠏\u001b[0m\r\n\u001b[?25h\r\u001b[1A\u001b[2K"]
[0.000224, "o", "\r\n\u001b[1;36m📊 Comparing: production-web-lab:v2258 → v2255\u001b[0m\r\n"]
[0.000115, "o", "\u001b[2m================================================================================\u001b[0m\r\n"]
[0.000131, "o", "\u001b[33mFound \u001b[0m\u001b[1;36m1\u001b[0m\u001b[33m changes:\u001b[0m\r\n\r\n"]
[0.000243, "o", "\u001b[1;33m🐳 Image changed for \u001b[0m\u001b[32m'hedera-lab'\u001b[0m\u001b[1;33m:\u001b[0m\r\n"]
[0.000174, "o", "\u001b[31m - \u001b[0m\u001b[1;36m123456789012.\u001b[0m\u001b[31mdkr.ecr.eu-central-\u001b[0m\u001b[1;36m1.\u001b[0m\u001b[31mamazonaws.com/hedera-lab:main-6b4a93a\u001b[0m\r\n"]
[0.000132, "o", "\u001b[32m + \u001b[0m\u001b[1;36m123456789012.\u001b[0m\u001b[32mdkr.ecr.eu-central-\u001b[0m\u001b[1;36m1.\u001b[0m\u001b[32mamazonaws.com/hedera-lab:main-4316cb3\u001b[0m\r\n"]
[0.00015, "o", "\r\n\u001b[2m================================================================================\u001b[0m\r\n"]
[0.009813, "o", "\u001b[6n"]
[2.0, "o", ""]
Binary file added demo/lazy-ecs-demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading