/ | / | / |
_______ $$ | ______ __ __ ____$$ | ______ ______ _$$ |_ ______
/ | $$ | / \ / | / | / $$ | / \ / \ / $$ | / \
/$$$$$$$/ $$ | /$$$$$$ | $$ | $$ | /$$$$$$$ | /$$$$$$ | $$$$$$ | $$$$$$/ /$$$$$$ |
$$ | $$ | $$ | $$ | $$ | $$ | $$ | $$ | $$ | $$ | / $$ | $$ | __ $$ $$ |
$$ \_____ $$ | $$ \__$$ | $$ \__$$ | $$ \__$$ | $$ \__$$ | /$$$$$$$ | $$ |/ | $$$$$$$$/
$$ | $$ | $$ $$/ $$ $$/ $$ $$ | $$ $$ | $$ $$ | $$ $$/ $$ |
$$$$$$$/ $$/ $$$$$$/ $$$$$$/ $$$$$$$/ $$$$$$$ | $$$$$$/ $$$$/ $$$$$$$/
/ \__$$ |
$$ $$/
$$$$$$/
cloudgate
A terminal-based application that unifies multi-cloud operations across AWS, Azure, and GCP.
Where your clouds converge.

Features
-
AWS Integration
- Multi-account/region management
📋 Available AWS Services & Operations
| Service |
Operation |
Description |
| CodePipeline |
|
|
|
Pipeline Status |
View status of all pipelines and their stages |
|
Pipeline Approvals |
List, approve, or reject pending manual approvals |
|
Start Pipeline |
Trigger pipeline execution with latest commit or specific revision |
| Lambda |
|
|
|
Function Status |
View all Lambda functions with runtime and last update info
Function Details View: Select any function to inspect detailed configuration including memory, timeout, architecture, and other key attributes |
Operations can be performed using any configured AWS profile and region (one active profile/region at a time)
Multi-account aggregation for services will be coming in the future
-
Terminal UI
- Fast, keyboard-driven interface
- Context-aware navigation
- Visual feedback and safety controls
- Formatted display of timestamps and resource sizes
- Vim-style navigation ('-' for backwards navigation, 'k/j' for up/down navigation, etc.)
-
Coming Soon
- Azure integration
- GCP support
- Additional AWS services (S3, EC2, etc.)
Installation
Quick Install / Upgrade
Linux/macOS:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/HenryOwenz/cloudgate/main/scripts/install.sh)"
Windows (PowerShell):
Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/HenryOwenz/cloudgate/main/scripts/install.ps1'))
These scripts will automatically download and install the latest version of cloudgate, handling upgrades cleanly if you already have it installed.
From Source
git clone https://github.com/HenryOwenz/cloudgate.git
cd cloudgate
make build
make install # Installs as 'cg' in your $GOPATH/bin
Requirements
- Go 1.22+
- AWS credentials configured in
~/.aws/credentials or ~/.aws/config
Usage
cg # Launch the application
Navigation
| Key |
Action |
| ↑/↓ or k/j |
Navigate options |
| Enter |
Select/Confirm |
| Esc/- |
Go back/Cancel |
| q |
Quit application |
| Ctrl+c |
Force quit |
| g/G |
Jump to top/bottom |
| u/d |
Half page up/down |
| b/f |
Page up/down |
Note: Vim-style navigation keys (g, G, u, d, etc.) work in table views but are passed through as text when in input mode. Use Esc to exit text input mode.
Development
Testing
make test # Run all tests
make test-unit # Run unit tests only
make test-integration # Run integration tests only
make test-coverage # Generate coverage report
CI/CD
This project uses GitHub Actions for continuous integration:
- Automated builds on each push and pull request
- Unit and integration tests
- Code linting with golangci-lint
- Test coverage reporting
- Automatic testing of Dependabot PRs
Architecture
cloudgate uses a dual-layer architecture:
- Provider layer: Abstracts cloud provider APIs
- UI layer: Handles user interaction and workflow
The application follows a modular design pattern that makes it easy to add new cloud services and operations. Each service is implemented as a separate module with clear interfaces, allowing for independent development and testing.
Dependency Management
The project uses two complementary approaches to dependency management:
1. Manual Updates via Make Targets
For direct control over dependency updates:
Update to latest patch versions and verify build:
make update-deps
Update to latest patch versions only:
make update-deps-patch
Update to latest minor versions:
make update-deps-minor
Update specific package to latest major version:
make update-deps-major PKG=github.com/example/package
2. Automated Updates via Dependabot
The project uses GitHub Dependabot to automatically create pull requests for dependency updates:
- Weekly checks for Go module updates
- Monthly checks for GitHub Actions updates
- Automatic testing of dependency updates
- Grouped updates to reduce PR noise
- Safety limits on open PRs to prevent overwhelming the repository
Dependabot configuration can be found in .github/dependabot.yml.
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature)
- Run tests (
make test)
- Commit your changes (
git commit -m 'Add some amazing feature')
- Push to the branch (
git push origin feature/amazing-feature)
- Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.