Skip to content

cloudgate is a Terminal Application that unifies your multi-cloud operations across AWS, Azure, and GCP.

License

Notifications You must be signed in to change notification settings

HenryOwenz/cloudgate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

            /  |                             /  |                         /  |              
   _______  $$ |   ______    __    __    ____$$ |   ______     ______    _$$ |_      ______  
  /       | $$ |  /      \  /  |  /  |  /    $$ |  /      \   /      \  / $$   |    /      \ 
 /$$$$$$$/  $$ | /$$$$$$  | $$ |  $$ | /$$$$$$$ | /$$$$$$  |  $$$$$$  | $$$$$$/    /$$$$$$  |
 $$ |       $$ | $$ |  $$ | $$ |  $$ | $$ |  $$ | $$ |  $$ |  /    $$ |   $$ | __  $$    $$ |
 $$ \_____  $$ | $$ \__$$ | $$ \__$$ | $$ \__$$ | $$ \__$$ | /$$$$$$$ |   $$ |/  | $$$$$$$$/ 
 $$       | $$ | $$    $$/  $$    $$/  $$    $$ | $$    $$ | $$    $$ |   $$  $$/  $$       |
   $$$$$$$/ $$/   $$$$$$/    $$$$$$/    $$$$$$$/   $$$$$$$ |  $$$$$$/     $$$$/     $$$$$$$/ 
                                                  /  \__$$ |                              
                                                  $$    $$/                               
                                                   $$$$$$/                                

cloudgate

A terminal-based application that unifies multi-cloud operations across AWS, Azure, and GCP.

Where your clouds converge.

Latest Release Lint Test Build Dependabot Status Go ReportCard

cloudgate Demo

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
    Execute Function Invoke Lambda functions directly with custom payload and view execution results

    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

Command Line Options

Option Description
cg --upgrade or cg -u Upgrade cloudgate to the latest version
cg upgrade Upgrade cloudgate to the latest version (alternative syntax)
cg --version or cg -v Display the current version of cloudgate
cg version Display the current version of cloudgate (alternative syntax)

Navigation

🎮 Keyboard Navigation Commands
Key Action
↑/↓ or j/k Navigate up/down
←/→ or h/l Previous/Next page (in paginated views)
Enter Select/Confirm
Esc or - Go back/Cancel
q Quit application
Ctrl+c Force quit
g Jump to top
G Jump to bottom
Home/End Jump to top/bottom (alternative)
u or Ctrl+u Half page up
d or Ctrl+d Half page down
b or PgUp Page up
f or PgDown Page down
/ Search (in paginated views)
i Enter input mode (in Lambda execution view)

Note: Vim-style navigation keys (j, k, h, l, g, G, 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.

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Run tests (make test)
  4. Commit your changes (git commit -m 'Add some amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

cloudgate is a Terminal Application that unifies your multi-cloud operations across AWS, Azure, and GCP.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages