Mercek: A Desktop IDE for Amazon ECS
Mercek is a desktop IDE designed to simplify the management of Amazon Elastic Container Service (ECS) by aggregating resources across multiple AWS accounts and regions into a single interface. Unlike the AWS Management Console, which often requires navigating multiple pages and switching regions, Mercek provides a unified resource tree and integrated tooling for deployments, monitoring, and cost analysis.
Unified Resource Discovery and Management
Mercek allows users to browse clusters, services, and tasks across several AWS accounts and regions simultaneously. The application reads existing ~/.aws profiles, including those configured for SSO, assume-role, and MFA, ensuring that users do not need to create new credentials for the tool.
Key discovery features include:
- Multi-Account/Region View: A single tree view that lists all selected clusters and services.
- Parallel Discovery: Resource discovery runs in parallel to maintain responsiveness even in large-scale environments.
- Direct AWS Communication: The app communicates directly with AWS APIs, meaning no third-party backend or server is required to manage the data.
Deployment Tracking and Rollbacks
Mercek provides a dedicated Deployments tab to monitor the rollout state of ECS services. This view integrates the deployment circuit breaker status and the count of failed tasks, allowing operators to identify issues in real-time.
To mitigate deployment failures, the tool enables users to roll back to a previous task definition directly from the deployment screen. Additionally, users can compare a service's configuration across different environments or regions to identify drift or configuration errors.
Integrated Metrics and Cost Analysis
Mercek consolidates performance and financial data on a single screen, reducing the need to "hop" between the ECS console and CloudWatch.
Performance Monitoring
- Metric Sources: The app uses Container Insights for CPU and memory data, falling back to standard AWS/ECS metrics if Insights is disabled.
- ALB Integration: For load-balanced services, Mercek displays request counts, latency, and 5xx error rates.
- Time-Windowing: Users can select a window from one hour to seven days, with deployment markers overlaid on the charts to correlate performance shifts with specific rollouts.
Cost and Sizing
- Fargate Cost Estimation: The app estimates monthly Fargate costs based on requested CPU and memory and the number of running tasks.
- Right-Sizing Verdicts: By comparing requested resources against peak usage, Mercek provides a verdict on whether a service is over- or under-provisioned, accounting for both Spot and On-Demand pricing.
Inspection and Topology Mapping
Mercek includes deep inspection tools and an automated dependency map to visualize the infrastructure layout.
- Log Tailing: Users can tail CloudWatch logs for all tasks in a service or a specific task, featuring text filtering and log-level highlighting.
- ECS Exec: The app supports opening an interactive shell on running containers.
- Environment Inspection: Task environments are visible with secrets masked as ARNs to prevent sensitive data exposure.
- Topology Graph: Mercek automatically builds a dependency map from existing AWS data, mapping the path from the internet through the load balancer to the service, and inferring service-to-service links via environment variables in task definitions.
AI Integration via Agent Client Protocol
Mercek implements the Agent Client Protocol, allowing users to connect their own coding agents (such as Claude Code). The agent is restricted to read-only access to the AWS state; it can explain the current state or navigate the app to specific screens.
If an agent suggests a change, Mercek presents the suggestion as a diff and provides the matching AWS CLI command. The user must manually approve the change before it is applied to the AWS environment.
Background Monitoring with Sentinel
Sentinel is a background monitoring feature that raises observations when specific anomalies are occur, including:
- Running count below desired: When the number of active tasks is lower than the requested count.
- Stalled deploys: When a rollout is stuck or failed.
- ** uma Flapping tasks**: When tasks are restarting repeatedly.
- OOM kills: When a container exits with exit code 137.
Technical Implementation and Privacy
Mercek is an open-source desktop application available for macOS (Apple Silicon and Intel). Linux and Windows builds are currently on the roadmap.
To ensure security and privacy, the tool follows a local-first architecture:
- No Backend: All API calls are made from the local machine to AWS.
- No Telemetry: The application contains no analytics or "phone home" functionality.
- No Stored Secrets: Credentials are not written to disk; they are retrieved from the existing AWS credential chain.
Community Feedback
While the tool has been praised for its utility in managing ECS, some users in the community have expressed concerns regarding the use of the Electron framework, citing memory usage and a preference for native toolkits.
"I want to try this, but unfortunately there are just too many Electron applications on my computer now... Could this be made into a native application?"
Conversely, other users have noted that for a specialized tool like Mercek, the memory footprint is relatively low compared to other developer tools:
"On my M2 MacBook pro 64GB, it's sitting at 30.5 Mb of memory usage... this app amounts to just another wallpaper worth of memory which is nothing."
Other developers have noted the similarity to tools like E1S, which aims to provide a k9s-like experience for ECS.