Skip to main content
image gif

GOATSHELL

7 Clouds & 1 Shell

Installation

Manual Installation

  1. Create a virtual environment. We will call it prod:
    python3 -m venv ~/prod
    
  2. Activate virtual environment:
    cd ~/prod && source bin/activate
    
  3. Clone the repo:
    git clone git@github.com:stacksc/goat.git
    
  4. Install all required packages with 1 script from the main repository:
    cd ~/prod/goat && ./bulk.sh --action rebuild --target all
    

PIP installation (stable)

  1. Install the following packages from pypi:
    pip install goatshell goaat --force-reinstall
    
  2. Type the following command to launch goatshell:
    goatshell
    
┌───────────────────────────────────────────────────────────────────────────────────────────────────────| GOAT INTERFACE |───────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                     Purpose: Cloud Wrapper                                                                                                     │
│                                                                                             TIP: resource completion coming soon!                                                                                              │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
┌──────────────────| Hotkeys |───────────────────┐┌──────────────────| Commands |──────────────────┐
│[F8]  Toggle Provider                           ││e|exit    : exit shell                          │
│[F9]  Toggle Profile                            ││c|clear   : clear screen                        │
│[F10] Toggle VIM                                ││h|help    : display usage                       │
│[F12] Toggle Safety Mode                        ││history   : shell history                       │
│[TAB] Fuzzy Complete                            ││cloud     : cloud details                       │
└────────────────────────────────────────────────┘└────────────────────────────────────────────────┘
[oci:DEFAULT]>

(back to top)

Contacts

Christopher Stacks - centerupt@gmail.com

Mechanics

The project is built with dependecies such as aws2, oci-cli, az-cli.
However, other cloud providers are configured to work but NOT packaged with the project such as ibmcloud, gcloud, and Alibaba cloud.

Each time the first token is passed (i.e. cloud provider) a function will verify if the command is avialable.
This keeps the command line clean with the cloud providers you only work with.

The following cloud providers are currently supported:
image
The latest goat-shell version holds all JSON data per cloud, correctly nested based on the cloud provider.

Toolbar

The toolbar will refresh after hitting the ENTER key or with specific hotkeys.

The toolbar is updated appropriately based on what command you ran. Once you run a command, the toolbar is refreshed with your current cloud.

The profile is updated dynamically based on your current cloud and you have the ability to toggle profiles for any cloud.

goat>
Current Cloud: AWS  F8 Usage F10 Toggle Profile: CENTERUPT F12 Quit

Toggle

The only toggle currently supported is profile switching. Everything else is dynamic based on first token.

Cloud CLI Options

# Name Status Additional Info
1 OCI-CLI Default / Supported
2 AWS Default / Supported
3 AZ Default / Supported
4 GCLOUD Supported / Manual Installation Installation Guide
5 ALIYUN Supported / Manual Installation Installation Guide
6 IBMCLOUD Supported / Manual Installation Installation Guide
7 OVHCLOUD & AI Supported / Manual Installation Installation Guide

Newly Improved Interface Now Available

image

Once the relative CLI is installed, the goatshell application will recognize that it is available & syntax completion will be provided.
The project is packaged with cloud provider JSON files which get refreshed automatically per major release with dynamic CLI scrapers.

As the first token is passed (i.e. cloud provider) it directs the goatshell application to the correct JSON file.

Metadata

Release files for goatshell 2024.7.16.1622

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for goatshell 2024.7.16.1622
File Size Uploaded Provenance
goatshell-2024.7.16.1622.tar.gz 3.4 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for goatshell 2024.7.16.1622
File Interpreter ABI Platform
goatshell-2024.7.16.1622-py3-none-any.whl Python 3 none any Details

Total release size: 6.9 MB

Release files / goatshell-2024.7.16.1622.tar.gz

Download URL goatshell-2024.7.16.1622.tar.gz
Size 3.4 MB
Tags Source
SHA-256 checksum
How to use checksums
8458e60eaa7c743469862887f6688855496fdec9a3fbeac20f3a11f7a42725f8
BLAKE2b-256 checksum
How to use checksums
81f0034aac6677af638482df047b93e8a0890175595ffa7489b985c6b448ebc3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Release files / goatshell-2024.7.16.1622-py3-none-any.whl

Download URL goatshell-2024.7.16.1622-py3-none-any.whl
Size 3.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
be2f195d7efe1facb3b8304781277c43882b248abb5f5eebff4c131d397d186a
BLAKE2b-256 checksum
How to use checksums
ba1d2e0a8487b11cd9fb72543fdcee37b495ab8149c1bf96d92e2a4382b4d2d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Security for goatshell 2024.7.16.1622

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page