Do Everything with Every Software, Everywhere
SAI is a command line tool that allows you to perfom: actions (many actions) on every software (with correct saidata), in different environments (Linux (RedHat, Debian, Suse, Arch, etc.), Windows, macOS, containers, Kubernetes, Nix... ) relying on easy to create providers that implement one or more actions.
sai <action> [software] [options]
<action>: The operation to perform on the software.
- Installation actions:
install,upgrade,uninstall - Management actions:
start,stop,restart,enable,disable - Monitoring actions:
status,monitor,observe - Troubleshooting actions:
log,check,debug,troubleshoot,trace - Information actions:
info,help,ask - Discovery actions:
list,search - Maintenance actions:
update,upgrade - Configuration actions:
apply,manage,config - Security actions:
scan,sbom(Software Bill of Materials)
-
[software]: The name of the software to manage.- Examples:
nginx,docker,opentofu,mysql,redis... every software for which there's sai data - Special software:
allrefers to all available software in the system
- Examples:
-
[options](options): The specific implementation for software actions. --provider , -p : Specify the provider to user --dry-run , --noop: Run in noop mode without doing changes --yes , -y: Assume yes (use defaults) to all prompted questions --all , -a: Try to use all available providers (may not apply for all actions)
-
Install an application and manage it:
sai install nginx sai status nginx sai start nginx sai stop nginx sai enable nginx sai disable nginx -
Check, monitor and troubleshoot:
sai check tomcat sai log tomcat sai troubleshoot tomcat sai debug tomcat sai info tomcat sai monitor tomcat sai observe tomcat sai trace tomcat -
Ask information about a software:
sai ask terraform sai help terraform sai info terraform sai config terraform sai troubleshoot terraform
All actions can be defined in a sai.yaml file that is applied with sia apply:
sai:
install:
- vscode
- git
- docker
- docker-compose
- awscli
- gcloud
- azure-cli
- kubectl
- helm
- terraformFind more examples of sai commands as code in the examples directory..
- [0.2.0] Cross-Platform Support: Works seamlessly across Linux, macOS, Windows, and containerized environments.
- [0.2.0] Error Handling: Provides meaningful error messages for unsupported actions, software, or providers.
- [0.2.0] Saidata Support: Supported software data is defined in extendable easy to manage Yaml files.
- [0.2.0] Wasm Pluggable providers: Wasm providers can be added dynamically.
- [1.0.0] Providers as data: Providers can be also implkemented via Yaml data.
- [1.0.0] sai as code: Implement apply action to perfom all the actions specified in a Yaml file.
- [1.0.0] AI Generated Software data: The saidata for supported software is generated by AI using custom fine tuned models
- [1.0.0] Automatically Tested: Saidata and implementation is automaticaally tested using a custom test framework
- [x.0.0] Providers simple: New providers can be added via just yaml files with the commands to run for supported actions
-
Clone the repository:
git clone https://github.com/example42/sai.git cd sai -
Build the project:
go build -o sai -
Run the CLI:
./sai <action> [software] [options]
Check (https://github.com/example42/sai_aidocs)[SAI DOCS] for mostly AI generated docs.
Currently available (first generation mostly close to human plans and intention):
- (https://github.com/example42/sai_aidocs/tree/main/manus/SRS) SRS - Software Requirements Specification
- (https://github.com/example42/sai_aidocs/tree/main/manus/SDD) SDD - Software Desgin Document
Contributions are welcome! Please submit issues or pull requests to improve SAI.