A powerful, plugin-based CLI tool designed for cloud engineers.
$ pip install toast-cli
$ toast --help
$ toast cdw # Navigate workspace directories
$ toast ctx # Manage Kubernetes contexts
$ toast dot # Manage .env.local files
$ toast env # Manage AWS profiles
$ toast git # Manage Git repositories
$ toast region # Set AWS region
Toast-cli is a Python-based CLI tool that provides various utility commands for AWS and Kubernetes management. The architecture follows a plugin-based design pattern, allowing for easy extension of functionality through the addition of new plugins.
Easily extend functionality by adding new plugins without modifying core code.
Seamlessly manage AWS regions and identity.
Quickly switch between Kubernetes contexts and manage clusters.
Simplify Git operations within your workspace structure.
pip install git+https://github.com/opspresso/toast-cli.git
git clone https://github.com/opspresso/toast-cli.git
cd toast-cli
pip install -e .
Toast-cli features a modular plugin architecture. Here are the available plugins:
Show AWS caller identity information
toast am
Navigate to workspace directories
toast cdw
Manage Kubernetes contexts
toast ctx
Manage .env.local files with AWS SSM integration
toast dot ls
toast dot up
toast dot down
Manage AWS profiles
toast env
Manage Git repositories
toast git repo_name clone
toast git repo_name rm
Set AWS region
toast region
Toast-cli follows a plugin-based architecture that makes it easy to extend and maintain.
Toast-cli Plugin Architecture
toast-cli/
├── setup.py # Package setup script
├── setup.cfg # Package configuration
├── pyproject.toml # Build system requirements
├── MANIFEST.in # Additional files to include
├── VERSION # Version information
├── README.md # Project documentation
├── ARCHITECTURE.md # Architecture documentation
├── LICENSE # License information
└── toast/ # Main package
├── __init__.py # Package initialization and CLI entry point
├── __main__.py # Entry point for running as a module
├── helpers.py # Helper functions and custom UI elements
└── plugins/ # Plugin modules
├── __init__.py
├── base_plugin.py
├── am_plugin.py
├── cdw_plugin.py
├── ctx_plugin.py
├── dot_plugin.py
├── env_plugin.py
├── git_plugin.py
├── region_plugin.py
└── utils.py
To add a new plugin:
plugins
directoryBasePlugin
execute
and optionally get_arguments
)name
and help
class variablesThe plugin will be automatically discovered and loaded when the application starts.