██╗███╗ ██╗██╗ ██╗ ██████╗ ██╗ ██╗ ██╗███████╗██╗ ██╗
██║████╗ ██║██║ ██║██╔═══██╗██║ ██║ ██║██╔════╝╚██╗██╔╝
██║██╔██╗ ██║██║ ██║██║ ██║██║ ██║ ██║█████╗ ╚███╔╝
██║██║╚██╗██║╚██╗ ██╔╝██║ ██║██║ ╚██╗ ██╔╝██╔══╝ ██╔██╗
██║██║ ╚████║ ╚████╔╝ ╚██████╔╝███████╗ ╚████╔╝ ███████╗██╔╝ ██╗
╚═╝╚═╝ ╚═══╝ ╚═══╝ ╚═════╝ ╚══════╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝
Windows System Administration Toolkit
A comprehensive Windows system administration toolkit built with Node.js and bun, providing an easy-to-use terminal user interface for common system maintenance tasks.
- Update Winget, NPM, Scoop, Chocolatey packages
- Check for available updates across all package managers
- Update PowerShell modules
- Bulk update operations
- Clear system caches and temporary files
- Memory optimization and cleanup
- Startup program management
- Program uninstallation
- Ping tests with customizable hosts
- Internet speed testing (via speedtest-cli integration)
- DNS configuration management
- Driver update checking and installation
- System restore point creation and management
- Registry-based configuration management
- Responsive CLI with chalk + ora animations
- Smooth menu navigation (number hotkeys, arrow keys)
- Progress indicators and status updates
- Real-time visual feedback
- Plugin extensibility system
- Persistent user configuration (settings, preferences, paths)
- Install plugins from official repository or custom GitHub repos
- Create and share custom plugins
- Plugin CLI management commands:
involvex-cli --plugins list- List installed pluginsinvolvex-cli --plugins install <name|url>- Install pluginsinvolvex-cli --plugins update [name]- Update pluginsinvolvex-cli --plugins remove <name>- Remove plugins
- Built-in plugins for common tasks
- Full plugin API with access to all services
- Windows 10/11
- Node.js 16.0 or higher
- Administrator privileges for some operations
npm install -g @involvex/involvex-cli- Clone or download this repository
- Navigate to the project directory
- Install dependencies:
bun install- Make the script executable (optional):
chmod +x index.jsnode index.js
# or if installed globally
involvex-cliinvolvex-cli --help # Show help information
involvex-cli --version # Show version information
involvex-cli --plugins list # List installed plugins
involvex-cli --plugins install <name|url> # Install a plugin
involvex-cli --plugins update [name] # Update plugins
involvex-cli --plugins remove <name> # Remove a plugin- Number keys (1-5): Direct menu item selection
- Arrow keys (↑/↓): Navigate menu items
- Space/Enter: Select highlighted item
- Q key: Quit instantly
- Ctrl+C: Emergency exit
involvex-cli --plugins listFrom official repository:
involvex-cli --plugins install discord-rpc
involvex-cli --plugins install system-monitorFrom custom GitHub repository:
involvex-cli --plugins install https://raw.githubusercontent.com/user/repo/main/plugins/my-plugin/index.js# Update all plugins
involvex-cli --plugins update
# Update specific plugin
involvex-cli --plugins update discord-rpcinvolvex-cli --plugins remove discord-rpcInvolveX CLI stores user preferences and configuration in a persistent configuration file located at ~/.involvex-cli/config.json (on Windows: C:\Users\{USER}\AppData\Roaming\involvex-cli\config.json).
Access configuration through the Settings menu in the CLI:
- Auto-update: Enable/disable automatic package updates (default:
true) - Theme: Choose between
darkorlighttheme (default:dark) - Log Level: Set verbosity level (
debug,info,warn,error, default:info) - Config Path: Custom configuration directory (default:
~/.involvex-cli)
{
"autoUpdate": true,
"theme": "dark",
"logLevel": "info",
"configPath": "~/.involvex-cli"
}The ConfigurationManager service handles all configuration I/O:
const configManager = new ConfigurationManager(logService);
await configManager.initializeAsync();
const config = configManager.getConfig();
configManager.setAutoUpdate(false);
await configManager.saveConfigAsync();The CLI includes extensible plugin system. See plugins/README.md for:
- Available plugins - Built-in and official plugins
- Plugin installation - How to install and manage plugins
- Create custom plugins - Full plugin development guide
- Plugin repository - Official GitHub repository
- discord-rpc - Display CLI status in Discord
- system-monitor - Real-time system monitoring
- process-manager - Advanced process management
- service-manager - Windows service utilities
- network-tools - Network diagnostics and tools
- speed-test - Internet speed testing with detailed metrics
For full plugin documentation, see PLUGIN_DEVELOPMENT.md
The speed-test plugin provides internet speed testing capabilities directly from the CLI:
- Download/Upload speeds - Measured in Mbps with optional MBps conversion
- Ping latency - Network responsiveness measurement
- Formatted results - Color-coded output with styled tables
- JSON export - Machine-readable output for scripting
speedtest-cliorspeedtestcommand-line tool must be installed- Active internet connection for testing
Access from the main menu or invoke directly in future versions with:
involvex-cli --speed-testResults are displayed with:
- Color-coded performance indicators (green/yellow/red based on speed)
- Server information and test timestamp
- Dual format output (Mbps and MBps)
- Use number keys (1-5) for quick menu selection
- Use arrow keys (↑/↓) to navigate menu items
- Press Space or Enter to select highlighted item
- Press Q to quit or Ctrl+C to force exit
- Enable or disable the plugin from
Settings → Discord RPCdirectly inside the CLI - Default Application ID:
1438575785228242994 - Discord Public Key:
fe1dca8f9e7f55080493178e503508b0fd4380c4831186ec5d536c61d942ad6d - Status updates include randomly generated memes such as “Generated 256 cups of coffee ☕”
- Official artwork (logo, banner, cover image) is available inside the
assets/directory and is published with the documentation site
- Modern Windows package manager from Microsoft
- Supports app updates and installations
- Updates global npm packages
- Manages Node.js development tools
- Command-line installer for Windows
- Lightweight package manager
- Popular Windows package manager
- Extensive package repository
- Updates PowerShell modules and cmdlets
- Supports both Windows PowerShell and PowerShell Core
- Operating System: Windows 10/11
- Runtime: Node.js 16.0 or higher
- Permissions: Administrator privileges required for some operations
- Terminal: Interactive terminal emulator (Command Prompt, PowerShell, Windows Terminal)
- LogService: Centralized logging functionality
- ConfigService: YAML-based configuration management
- PackageManagerService: Multi-package manager support
- NetworkService: Ping and speed test capabilities
- CacheService: System cache management
- StartupService: Startup program management
- UninstallerService: Program uninstallation
- DnsService: DNS configuration
- DriverService: Driver update management
- SystemRestoreService: System restore point management
- Built with Blessed.js for terminal UI
- Modular dialog system
- Progress indicators and loading screens
- Keyboard-driven navigation
The application stores configuration in:
%APPDATA%\InvolveX\config.yaml
Default configuration includes:
- Enabled package managers
- Update settings
- UI preferences
- Logging configuration
Logs are stored in:
./logs/update.log
All operations are logged with timestamps for troubleshooting and audit purposes.
involvex_cli_js/
├── index.js # Main application entry point
├── package.json # Node.js dependencies and scripts
├── services/ # Core service modules
│ ├── LogService.js
│ ├── ConfigService.js
│ ├── PackageManagerService.js
│ ├── NetworkService.js
│ ├── CacheService.js
│ ├── StartupService.js
│ ├── UninstallerService.js
│ ├── DnsService.js
│ ├── DriverService.js
│ └── SystemRestoreService.js
├── logs/ # Application logs
└── README.md # This file
- Create new service in
services/directory - Implement required methods
- Add menu integration in
index.js - Update configuration if needed
- Test functionality
- blessed: Terminal UI framework
- commander: Command-line argument parsing
- chalk: Terminal text styling
- ora: Loading spinners
- inquirer: Interactive prompts
- fs-extra: Enhanced file system operations
- js-yaml: YAML configuration parsing
"InvolveX CLI requires an interactive terminal"
- Run in Command Prompt, PowerShell, or Windows Terminal
- Avoid running in IDE terminals or CI/CD environments
"Administrator privileges required"
- Some operations require elevated permissions
- Run as administrator for DNS changes, system restore, etc.
"Package manager not found"
- Ensure package managers are installed
- Check PATH environment variable
Enable debug logging by modifying the LogService configuration.
- Fork the repository
- Create a feature branch
- Make changes and test thoroughly
- Submit a pull request
MIT License - see LICENSE file for details.
For issues, questions, or contributions:
- GitHub Issues: Report bugs and request features
- GitHub Discussions: Ask questions and get help
- Terms of Service: https://involvex.github.io/Involvex-Cli/#terms-of-service
- Privacy Policy: https://involvex.github.io/Involvex-Cli/#privacy-policy
- Initial JavaScript port from C# version
- Complete feature parity with original application
- Blessed.js-based terminal user interface
- All core services implemented
- Multi-package manager support
- System administration tools
- Original C# version by InvolveX
- Blessed.js for terminal UI capabilities
- Node.js community for excellent tooling