Skip to content

Conversation

@louis030195
Copy link
Contributor

Summary

  • Added comprehensive software installation workflows that intelligently handle CLI and UI-based installation methods
  • Created a flexible, reusable framework for automating software installation across different platforms
  • Implemented specific workflows for common development tools

Features

Core Installation Workflow (install-software.yml)

  • Auto-detection: Automatically detects available package managers (winget, chocolatey, scoop, brew, apt, etc.)
  • Multi-layered fallback: CLI installation → Direct download → Silent installation → UI automation
  • Cross-platform support: Primary support for Windows, partial support for macOS/Linux
  • Verification methods: Command execution, registry checks, file system validation

Specific Software Workflows

  • Chrome (install-chrome.yml): Browser installation with default browser configuration
  • VS Code (install-vscode.yml): IDE installation with extensions and settings configuration
  • Node.js (install-nodejs.yml): Runtime installation with npm, yarn, and global packages
  • Python (install-python.yml): Python installation with pip packages and virtual environment setup
  • Git (install-git.yml): Version control with user configuration and SSH key generation
  • Dev Environment (install-dev-environment.yml): Batch installer for complete development setup

Key Capabilities

  • Intelligent package manager detection and selection
  • Automatic fallback to UI automation when CLI methods fail
  • Comprehensive error handling and recovery
  • Installation verification and post-install configuration
  • Support for custom UI installation steps
  • Detailed logging and progress tracking

Test Plan

  • Workflow structure validation
  • YAML syntax verification
  • Test on Windows 11 with winget
  • Test on Windows with chocolatey
  • Test UI automation fallback
  • Test batch installation with dev environment workflow
  • Verify error handling with non-existent software

Usage Examples

# Install a specific software
terminator mcp run examples/software-installer/install-vscode.yml --url http://localhost:3000

# Install complete development environment
terminator mcp run examples/software-installer/install-dev-environment.yml --url http://localhost:3000 \
  --input install_list='["git", "vscode", "nodejs", "python"]'

# Custom software installation
terminator mcp run examples/software-installer/install-software.yml --url http://localhost:3000 \
  --input software_name="7-Zip" \
  --input package_id="7zip.7zip"

Documentation

Comprehensive README included with:

  • Detailed usage instructions
  • Input variable documentation
  • Platform support matrix
  • Troubleshooting guide
  • Security considerations

🤖 Generated with Claude Code

louis030195 and others added 7 commits October 1, 2025 10:46
Added comprehensive software installation workflows that intelligently attempt CLI installation first, then fall back to UI-based installation when necessary.

Features:
- General-purpose installer that auto-detects package managers (winget, chocolatey, scoop, brew, apt, etc.)
- Specific workflows for common development tools (Chrome, VS Code, Node.js, Python, Git)
- Batch installer for complete development environment setup
- Multi-layered fallback mechanisms: CLI → Silent Install → UI Automation
- Comprehensive verification methods
- Cross-platform support (Windows primary, macOS/Linux partial)

The workflows provide a robust solution for automated software installation, handling various edge cases and installation methods to ensure successful deployment.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Replaced overcomplicated multi-file approach with a single universal-installer.yml that:
- Takes software name as input (e.g., "chrome", "vscode", "discord")
- Has built-in database of 20+ popular software
- Automatically tries CLI (winget/choco/scoop) then downloads and runs silent install
- Falls back to browser for manual download if needed

Much simpler and more practical approach.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Removed accidental test-notepad files from root
- Added proper installer execution after download
- If silent install fails, now runs the installer with UI
- Added automated clicking through installer wizard (Next, I agree, Install, Finish)
- Updated output parser to track UI installation success

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Fixed the "steamy mirror" screen artifact issue where overlay windows
were never cleaned up, leaving ghost pixels on screen.

**Root Cause:**
- Overlay windows were never destroyed (explicit comment avoiding DestroyWindow)
- Zombie overlay windows accumulated as transparent layers
- Caused screen artifacts that persisted until mouse movement

**Changes:**
- Added cleanup_overlay_window() to destroy windows via DestroyWindow API
- Call cleanup when highlight expires or is manually closed
- Clean up previous overlay before creating new ones

**Result:**
- Only one overlay window exists at a time
- All overlays properly cleaned up on expiration
- No ghost/steamy mirror effects remain

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@louis030195 louis030195 force-pushed the feat/software-installer-workflows branch from 9b9774f to c70a928 Compare October 1, 2025 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants