[](https://github.com/s00d/switchshuttle)
[](https://github.com/s00d/switchshuttle/blob/main/LICENSE)
[](https://github.com/s00d/switchshuttle/releases)
[](https://github.com/s00d/switchshuttle/releases)
[](https://github.com/s00d/switchshuttle/issues)
[](https://github.com/s00d/switchshuttle/stargazers)
[](https://www.donationalerts.com/r/s00d88)

# SwitchShuttle
**π Cross-platform terminal command manager with global hotkeys**
---
## β¨ What is SwitchShuttle?
SwitchShuttle is a powerful cross-platform system tray application that revolutionizes how you manage and execute terminal commands. Built with modern technologies (Rust + Tauri + Vue.js), it provides a sleek interface for organizing, customizing, and quickly accessing your most-used terminal operations.
### π― Key Features
- **π₯οΈ Multi-Platform Support** - Works seamlessly on macOS, Windows, and Linux
- **β‘ Global Hotkeys** - Execute commands instantly from anywhere with keyboard shortcuts
- **π¨ Multiple Terminal Support** - iTerm, Terminal, Warp, Alacritty, Hyper, and more
- **π Smart Organization** - Create nested submenus for better command organization
- **π§ Dynamic Inputs** - Interactive prompts for commands that need user input
- **π Multiple Execution Modes** - Run in current window, new tab, or new window
- **π Auto-Start** - Launch at system startup for instant access
- **π¨ Modern UI** - Beautiful, intuitive interface built with Vue.js
- **π» Command Line Interface** - Execute commands directly from terminal with CLI
- **βοΈ Configuration Management** - Enable/disable configurations without deleting them
- **π Switch Commands** - Toggle system features with background execution
- **π Monitor Commands** - Real-time system resource monitoring with visual indicators
- **π
Scheduled Commands** - Automate tasks with cron expressions
- **π― Template System** - Pre-built command templates for common workflows
## π₯οΈ User Interface Overview
SwitchShuttle provides a modern, intuitive interface with several key components:
### ποΈ Main Interface Components
#### 1. **Configuration Editor**
- **Visual JSON Editor** - Edit configurations with syntax highlighting and validation
- **Template System** - Import pre-built command templates for common workflows
- **Real-time Validation** - Instant feedback on configuration errors
- **Auto-save** - Changes are automatically saved as you type
- **Configuration Management** - Enable/disable configurations without deleting them
- **Search and Filter** - Quickly find specific configurations
- **Duplicate Configurations** - Create copies of existing configurations for testing
#### 2. **Command Management**
- **Command Builder** - Create commands with visual form interface
- **Hotkey Configuration** - Set global shortcuts for instant command execution
- **Icon Selector** - Choose emoji icons for better visual organization
- **Input Fields** - Configure dynamic input prompts for interactive commands
- **Nested Submenus** - Organize commands in hierarchical structures
- **Command Validation** - Real-time validation of command syntax
#### 3. **Settings Panel**
- **Terminal Selection** - Choose your preferred terminal application
- **Launch Mode** - Configure how commands are executed (current/new tab/new window)
- **Theme Settings** - Customize the application appearance
- **Auto-start Configuration** - Enable/disable system startup
- **Global Hotkey Settings** - Configure system-wide menu shortcuts
#### 4. **System Tray Menu**
- **Quick Access** - Right-click tray icon for instant command access
- **Status Indicators** - Visual feedback for switch commands and monitoring
- **Nested Menus** - Organized command hierarchy for easy navigation
- **Global Hotkeys** - Keyboard shortcuts for immediate command execution
- **Real-time Monitoring** - Live system resource indicators
### π¨ Interface Features
#### **Visual Command Builder**
```json
{
"name": "π Start Development Server",
"command": "npm run dev",
"hotkey": "Ctrl+Shift+D",
"icon": "π",
"background": false,
"inputs": {
"port": "3000",
"host": "localhost"
}
}
```
#### **Template System**
SwitchShuttle includes pre-built templates for common development workflows:
- **Development** - Git operations, build tools, testing
- **DevOps** - Docker, Kubernetes, server management
- **Database** - MySQL, PostgreSQL, MongoDB operations
- **Cloud** - AWS, Azure, Google Cloud commands
- **Security** - Network scanning, vulnerability assessment
- **Monitoring** - System resources, logs, metrics
- **Utility** - File operations, system tools
- **Scheduler** - Cron jobs and automated tasks
#### **Smart Organization**
- **Nested Submenus** - Organize commands in logical groups
- **Icon Support** - Visual identification with emoji icons
- **Hotkey Management** - Global shortcuts for instant access
- **Status Indicators** - Real-time feedback for switch commands
- **Search Functionality** - Quick command discovery
## π Security Manager
SwitchShuttle includes a comprehensive Security Manager that protects your system from potentially harmful commands and provides fine-grained control over command execution.
### π‘οΈ Security Features
#### **Command Validation**
- **Length Limits**: Maximum command length (1000 characters) and input length (500 characters) prevent overly long commands
- **Blocked Commands**: Define a list of dangerous commands that should never be executed
- **Suspicious Patterns**: Use regex patterns to detect and block potentially harmful command patterns
- **Real-time Validation**: Commands are validated during editing to ensure safety
#### **Security Settings**
- **Enable/Disable Security**: Toggle security features on or off as needed
- **Custom Block Lists**: Add specific commands to the blocked commands list
- **Pattern Matching**: Define regex patterns to catch suspicious command structures
- **Length Restrictions**: Configure maximum lengths for commands and user inputs
#### **How It Works**
1. **Editor Validation**: SecurityManager validates commands in the configuration editor before saving
2. **Pattern Matching**: Commands are checked against blocked patterns and suspicious regex patterns
3. **Length Validation**: Commands and inputs are verified against maximum length limits
4. **Block List Check**: Commands are compared against the user-defined blocked commands list
5. **Safe Configuration**: Only validated configurations are allowed to be saved and used
## π Quick Start
### Download & Install
#### Option 1: Homebrew (macOS - Recommended)
```bash
# Install via Homebrew
brew tap s00d/switchshuttle
brew install --cask switchshuttle
```
#### Option 2: Manual Download
1. **Download** the latest release for your platform from [GitHub Releases](https://github.com/s00d/switchshuttle/releases)
2. **Install** the application
3. **Launch** SwitchShuttle - it will appear in your system tray
4. **Right-click** the tray icon to access the menu
### First Configuration
1. **Open Configuration Editor** - Click "Edit Config" in the system tray menu
2. **Choose Terminal** - Select your preferred terminal application
3. **Add Commands** - Use the visual editor or import templates
4. **Set Hotkeys** - Configure global shortcuts for quick access
5. **Save and Restart** - Your commands are now available in the tray menu
### Interface Walkthrough
#### **Step 1: Configuration Editor**
- Open SwitchShuttle and navigate to the "Editor" tab
- Choose your terminal application (iTerm, Terminal, Warp, etc.)
- Set the launch mode (current window, new tab, or new window)
- Configure global hotkeys for menu access
#### **Step 2: Adding Commands**
- Click "Add Command" to create a new command
- Fill in the command details:
- **Name**: Display name for the command
- **Command**: The actual terminal command to execute
- **Hotkey**: Global shortcut (optional)
- **Icon**: Emoji icon for visual identification
- **Background**: Whether to run in background
- **Inputs**: Dynamic input fields for interactive commands
#### **Step 3: Using Templates**
- Click "Import Template" to access pre-built command collections
- Browse categories like Development, DevOps, Database, etc.
- Select and import the templates you need
- Customize the imported commands as needed
#### **Step 4: System Tray Access**
- Right-click the SwitchShuttle tray icon
- Browse your organized command menu
- Use global hotkeys for instant command execution
- Monitor system status with real-time indicators
#### **Step 5: Advanced Features**
- **Switch Commands**: Toggle system features with visual status indicators
- **Monitor Commands**: Real-time system resource monitoring
- **Scheduled Commands**: Automate tasks with cron expressions
- **Nested Menus**: Organize commands in hierarchical structures
## π₯οΈ Command Line Interface (CLI)
SwitchShuttle also provides a powerful command-line interface for quick command execution without opening the GUI.
### CLI Usage
#### Execute Commands
```bash
# Execute by command ID
switch-shuttle cmd_8
# Execute by command name (case-insensitive)
switch-shuttle "Example Command"
```
#### List All Commands
```bash
# Show all available commands with their IDs
switch-shuttle --list
# or
switch-shuttle -l
```
#### Search Commands
```bash
# Search for commands containing specific text
switch-shuttle --search "git"
# or
switch-shuttle -s "docker"
```
### Running CLI on Different Operating Systems
#### macOS
```bash
# If installed via Homebrew
switch-shuttle --list
# If installed manually
/Applications/switch-shuttle.app/Contents/MacOS/SwitchShuttle --list
# Create an alias for easier access
echo 'alias switch-shuttle="/Applications/switch-shuttle.app/Contents/MacOS/SwitchShuttle"' >> ~/.zshrc
source ~/.zshrc
```
#### Windows
```bash
# If installed via installer
"C:\Program Files\SwitchShuttle\switch-shuttle.exe" --list
# If installed via winget or chocolatey
switch-shuttle --list
# Add to PATH for easier access
# Add "C:\Program Files\SwitchShuttle" to your system PATH
```
#### Linux
```bash
# If installed via package manager
switch-shuttle --list
# If installed manually
./switch-shuttle --list
# Make executable and add to PATH
chmod +x switch-shuttle
sudo mv switch-shuttle /usr/local/bin/
```
### CLI Examples
```bash
# Quick git operations
switch-shuttle "git status"
switch-shuttle "git pull"
# Development workflows
switch-shuttle "npm run dev"
switch-shuttle "docker-compose up"
# List all available commands
switch-shuttle --list
# Find commands related to database
switch-shuttle --search "database"
```
### CLI Features
- **π Fast Execution** - Run commands instantly from terminal
- **π Smart Search** - Find commands by ID or name
- **π Command Listing** - View all available commands
- **β‘ No GUI Required** - Perfect for automation and scripts
- **π Exit After Execution** - Clean terminal experience
## π Configuration Guide
### Basic Structure
SwitchShuttle uses JSON configuration files stored in:
- **macOS/Linux**: `~/.config/switch-shuttle/`
- **Windows**: `C:\Users\