Understanding when to use each tool will help you choose the right installation and workflow for your needs.
SAI executes software management actions using provider-based configurations and saidata files.
✅ Use SAI when you need to:
- Install, configure, or manage software on systems
- Execute automated deployment workflows
- Run software management actions in CI/CD pipelines
- Apply consistent software configurations across environments
- Manage software lifecycle (install, update, remove)
- Work with existing saidata from the saidata repository
📦 Installation:
pip install sai-
Production Deployments
sai install nginx sai configure postgresql --config prod.yaml
-
CI/CD Pipelines
# .github/workflows/deploy.yml - name: Install dependencies run: sai install --from requirements.sai.yaml
-
Infrastructure Automation
sai apply --config infrastructure.yaml --dry-run sai apply --config infrastructure.yaml
-
System Administration
sai list installed sai update --all sai remove obsolete-package
- Lightweight: Minimal dependencies
- Fast: Quick installation and execution
- Stable: Production-ready
- Consumer: Uses existing saidata
- Runtime: Designed for execution environments
SAIGEN generates, validates, and manages software metadata (saidata) files using AI and repository data.
✅ Use SAIGEN when you need to:
- Create new saidata files for software packages
- Generate metadata from package repositories
- Validate and test saidata files
- Update existing saidata with new information
- Build software catalogs and inventories
- Contribute to the saidata repository
📦 Installation:
pip install saigen
# Or with AI features
pip install saigen[llm,rag]-
Creating New Saidata
saigen generate nginx --provider apt saigen generate docker --provider brew
-
Batch Generation
saigen batch generate --from package-list.txt saigen batch generate --provider apt --category web-servers
-
Validation and Testing
saigen validate nginx.yaml saigen test nginx.yaml --mcp-server test-server -
Repository Management
saigen repo update apt saigen repo cache --all saigen repo search nginx
-
Metadata Updates
saigen update nginx.yaml --refresh-urls saigen update --all --check-versions
- Feature-rich: Comprehensive generation capabilities
- AI-powered: Uses LLMs for intelligent generation
- Developer-focused: Built for metadata creation
- Producer: Creates new saidata
- Development: Designed for authoring environments
✅ Use sai[generation] when you need to:
- Develop and test saidata in the same environment
- Iterate quickly between generation and execution
- Validate saidata by actually running it
- Work on saidata contributions with immediate testing
📦 Installation:
pip install sai[generation]# 1. Generate new saidata
saigen generate myapp --provider apt
# 2. Validate the generated file
saigen validate myapp.yaml
# 3. Test execution with SAI
sai install myapp --dry-run
# 4. Refine and regenerate if needed
saigen update myapp.yaml --add-action configure
# 5. Test again
sai install myapp --dry-run
# 6. Execute for real
sai install myapp| Scenario | Tool | Installation |
|---|---|---|
| Deploy software in production | SAI | pip install sai |
| CI/CD pipeline execution | SAI | pip install sai |
| Create new saidata files | SAIGEN | pip install saigen |
| Validate saidata | SAIGEN | pip install saigen |
| Contribute to saidata repo | SAIGEN | pip install saigen[llm] |
| Local development & testing | Both | pip install sai[generation] |
| Full development environment | Both | pip install saigen[all] |
| System administration | SAI | pip install sai |
| Metadata management | SAIGEN | pip install saigen |
Needs: Execute software deployments reliably Uses: SAI only
pip install saiNeeds: Create and validate saidata files Uses: SAIGEN with AI features
pip install saigen[llm,rag]Needs: Both execution and generation for testing Uses: SAI with generation support
pip install sai[generation]Needs: Manage software across systems Uses: SAI only
pip install saiNeeds: Build software catalogs and automation Uses: Both tools separately
pip install sai saigen| Aspect | SAI | SAIGEN |
|---|---|---|
| Purpose | Execute actions | Generate metadata |
| Role | Consumer | Producer |
| Environment | Production | Development |
| Dependencies | Minimal | Comprehensive |
| Speed | Fast | Moderate |
| AI Features | No | Yes (optional) |
| Primary Users | Operators | Contributors |
| Output | System changes | YAML files |
Start with SAI if:
- You just want to use existing saidata
- You're deploying to production
- You need minimal dependencies
Start with SAIGEN if:
- You want to create new saidata
- You're contributing to the project
- You need metadata generation
Use both if:
- You're developing saidata
- You need the complete toolkit
- You want maximum flexibility
For more help, see: