A Stream Deck plugin for monitoring AWS services, starting with CodePipeline.
It renders stage-by-stage status directly on the key and supports fast actions for refresh, AWS Console open, and optional CloudWatch log access.
Order: Not Configured -> Loading -> Partially Complete -> Fully Complete
- See deployment status without switching tabs.
- Read stage-level result at a glance (
Succeeded/Failed/InProgress). - Keep a live operational signal on your Stream Deck.
- Real-time CodePipeline stage monitoring
- Visual key rendering with status icons and timestamp footer
- Status transition animation (
0.3sloading transition on state change) - Long press (
1.3s) to open pipeline in AWS Console - Double-click to open CloudWatch Log Group (optional)
- Debug simulation mode (
Pipeline Name = debug) - Configurable polling timeout (
Polling Max (minutes)) - Independent
Pipeline RegionandLog Group Region
- Stream Deck software
6.5+ - Node.js
20 - macOS
12+or Windows10+ - AWS credentials with CodePipeline read access
git clone https://github.com/PhantasWeng/streamdeck-aws-monitor
cd streamdeck-aws-monitor
npm install
npm build:bundle
npx streamdeck install com.phantas-weng.aws-monitor.sdPlugin- Open Stream Deck and drag CodePipeline action to a key.
- Fill settings in Property Inspector and save.
- Use key interactions:
- Short press: Refresh Status
- Double-click: Open CloudWatch Log Group (when configured)
- Long press (
1.3s): Open CodePipeline in AWS Console
| Field | Required | Description |
|---|---|---|
AWS_ACCESS_KEY_ID |
Yes (except debug) | AWS access key |
AWS_SECRET_ACCESS_KEY |
Yes (except debug) | AWS secret key |
Pipeline Name |
Yes | CodePipeline name; set debug to enable simulation mode |
Pipeline Region |
Yes (except debug) | Region for CodePipeline API calls |
Display Name |
No | Custom key title |
Log Group Name |
No | CloudWatch log group for double-click action |
Log Group Region |
No | Region for CloudWatch log URL; defaults to pipeline region |
Polling Max (minutes) |
No | Polling timeout; default 30 |
Set Pipeline Name to debug.
Behavior:
- Starts with three loading stages
- Simulates partial and full completion states
- Uses the same rendering and transition logic as normal mode
- Stops polling when all succeeded or timeout is reached
Minimum policy example:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["codepipeline:GetPipelineState"],
"Resource": "arn:aws:codepipeline:*:*:*"
}
]
}Run watch mode:
yarn watchRun Stream Deck in debug mode (macOS):
open -a "Elgato Stream Deck" --args -debugProject structure:
aws-monitor/
├── src/
│ ├── actions/codepipeline.ts
│ └── plugin.ts
├── com.phantas-weng.aws-monitor.sdPlugin/
│ ├── manifest.json
│ ├── ui/codepipeline.html
│ └── imgs/
├── scripts/
├── package.json
└── rollup.config.mjs
Use:
yarn buildWhat it does:
- Runs
build:bundle - Shows current plugin version from
manifest.json - Prompts for next version
- Packs plugin into
releases/ - Creates git tag
v<version>
Notes:
- Build stops if tag already exists.
- Tag push is manual:
git push origin <tag>Regenerate README screenshot assets:
yarn screenshots:key-statesThis regenerates docs/images/key-states/*.png, including overview.png.
- Key stays in
NOT CONFIGURED: verify required fields are saved. - Double-click does nothing:
check
Log Group NameandLog Group Region. - No updates after completion:
polling intentionally stops when all stages are
Succeeded; short-press to refresh.
Issues and pull requests are welcome.
Recommended flow:
- Fork the repo
- Create a feature branch
- Make changes and validate behavior on Stream Deck
- Open a pull request with context and screenshots
MIT
