Do Everything with every Software, Everywhere
SAI is a command line that allows you to perfom: actions (many actions) on every software (with correct saidata), in different systems (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
- 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
- terraform
Find 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.