A Python-based CLI utility with a plugin architecture for AWS, Kubernetes, Git, and more
Project description
toast-cli
_ _ _ _
| |_ ___ __ _ ___| |_ ___| (_)
| __/ _ \ / _` / __| __|__ / __| | |
| || (_) | (_| \__ \ ||___| (__| | |
\__\___/ \__,_|___/\__| \___|_|_|
Toast is a Python-based CLI utility with a plugin architecture that simplifies the use of CLI tools for AWS, Kubernetes, Git, and more.
Key Features
- Plugin-based architecture for easy extensibility
- Dynamic command discovery and loading
- AWS Features
- IAM Identity Checking (
toast am) - AWS Profile Management (
toast env) - AWS Region Management (
toast region)
- IAM Identity Checking (
- Workspace Features
- Directory Navigation (
toast cdw)
- Directory Navigation (
- Environment Management
- .env.local file management with AWS SSM integration (
toast dot)
- .env.local file management with AWS SSM integration (
- Kubernetes Features
- Context Switching (
toast ctx)
- Context Switching (
- Git Features
- Git Repository Management (
toast git)
- Git Repository Management (
Plugin Architecture
Toast uses a plugin-based architecture powered by Python's importlib and pkgutil modules:
- Each command is implemented as a separate plugin
- Plugins are automatically discovered and loaded at runtime
- New functionality can be added without modifying existing code
See ARCHITECTURE.md for detailed information about the design.
Installation
Requirements
- Python 3.6+
- Click package
- External tools used by various plugins:
- fzf: Interactive selection in terminal
- jq: JSON processing for formatted output
- aws-cli: AWS command line interface
- kubectl: Kubernetes command line tool
Installation Methods
# Install from PyPI
pip install toast-cli
# Update to latest version
pip install --upgrade toast-cli
# Install specific version
pip install toast-cli==3.0.0
# Install development version from GitHub
pip install git+https://github.com/opspresso/toast-cli.git
# Install in development mode from local clone
git clone https://github.com/opspresso/toast-cli.git
cd toast-cli
pip install -e .
Creating Symbolic Link (Optional)
If toast command is not available in your PATH after installation:
# Create a symbolic link to make it available system-wide
sudo ln -sf $(which toast) /usr/local/bin/toast
Usage
# View available commands
toast --help
# Run a specific command
toast am # Show AWS identity
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 # Manage AWS region
Extending with Plugins
To add a new plugin:
- Create a new Python file in the
pluginsdirectory - Define a class that extends
BasePlugin - Implement the required methods (execute and optionally get_arguments)
- Set the name and help class variables
Example plugin:
from plugins.base_plugin import BasePlugin
import click
class MyPlugin(BasePlugin):
name = "mycommand"
help = "Description of my command"
@classmethod
def execute(cls, **kwargs):
click.echo("My custom command execution")
Aliases
alias t='toast'
# Navigate workspace directories
c() {
cd "$(toast cdw)"
}
# Common Command Aliases
alias m='toast am' # Show AWS identity
alias x='toast ctx' # Manage Kubernetes contexts
alias d='toast dot' # Manage .env.local files
alias e='toast env' # Manage AWS profiles
alias g='toast git' # Manage Git repositories
alias r='toast region' # Manage AWS region
License
This project is licensed under the GNU General Public License v3.0.
Contributing
Bug reports, feature requests, and pull requests are welcome through the GitHub repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file toast_cli-3.1.5.tar.gz.
File metadata
- Download URL: toast_cli-3.1.5.tar.gz
- Upload date:
- Size: 28.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c81f3b897a5b533b2f3737cb7f61a5a7f112fa56d71260e9cad524b9a673a14
|
|
| MD5 |
73c66c7ffb96ae1b7da28e5b7128d89c
|
|
| BLAKE2b-256 |
d1434fcb1a9915296dea2beeed1043b5b50384dd64dfa6d5b7b4ce76f348202d
|
File details
Details for the file toast_cli-3.1.5-py3-none-any.whl.
File metadata
- Download URL: toast_cli-3.1.5-py3-none-any.whl
- Upload date:
- Size: 27.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e852ac7329024ad2bee7651cbe1b334e7f99d84fb5c030bcb96acb593099b9ad
|
|
| MD5 |
4879084b245f096b2edce5e42e43f671
|
|
| BLAKE2b-256 |
60275b765154938a50f8b1ddd05c26c62b634f0213141efcfcd9b59b2f418a0b
|