A sleek and powerful macOS application designed to help you manage, schedule, and execute Python scripts with ease. Built with SwiftUI, this application provides a modern interface for handling multiple Python scripts, complete with real-time execution monitoring and automated scheduling capabilities.
Python Scripts Manager is a native macOS application that streamlines the process of managing and executing Python scripts. It provides an intuitive interface for running scripts, monitoring their output in real-time, scheduling automated executions, and managing multiple scripts simultaneously through an elegant terminal-like interface.
- 📁 Easy script import through drag-and-drop or file picker
- 🗂 Organized script listing with detailed information
- ✏️ Custom naming and organization of scripts
- 🗑 Simple script removal (non-destructive)
▶️ One-click script execution- ⏹ Immediate script termination
- 👁 Real-time output monitoring
- ⌨️ Interactive input support for scripts requiring user interaction
- 🎯 Support for Control+C to terminate running scripts
- 📟 Multi-tab terminal interface
- 🔄 Real-time output streaming
- 📝 Command history
- 🎨 Monospaced font support
- 💻 Built-in terminal commands (help, clear, list, run, stop)
- ⏰ Flexible scheduling options:
- One-time execution
- Daily runs
- Weekly runs on selected days
- 🕒 Custom time selection
- 📅 Next run time preview
- 🔄 Automatic rescheduling for recurring tasks
- 🎨 Native macOS look and feel
- 🌙 System-native dark mode support
- 💨 Smooth animations and transitions
- 🖱 Context-aware controls
- ⌨️ Keyboard shortcuts support
- 💾 Automatic state persistence
- 📊 Execution history tracking
- 🔒 Secure script reference storage
-
macOS System
- macOS 14.0 (Sonoma) or later
-
Python Installation
- Python 3.x installed on your system
- The application automatically detects Python installations in common locations:
/opt/homebrew/bin/python3/usr/local/bin/python3/usr/bin/python3/usr/bin/python
-
Xcode (for development only)
- Xcode 13.0 or later
- Swift 5.5 or later
- Download the .dmg file from the repository
- Mount the DMG file by double-clicking it
- Drag Python Scripts Manager into your Applications folder
- Eject the DMG
- When first launching, you may need to right-click and select "Open" to bypass Gatekeeper
- Grant necessary permissions when prompted
Python_Scripts_Manager/
├── App/
│ ├── Python_Scripts_ManagerApp.swift # Main app entry point
│ ├── AppDelegate.swift # App delegate handling
│ ├── AppState.swift # Global app state
│ └── ContentView.swift # Main content view
├── Models/
│ ├── Script.swift # Script model
│ ├── ScriptSchedule.swift # Scheduling model
│ └── TerminalTab.swift # Terminal tab model
├── ViewModels/
│ ├── ScriptListViewModel.swift # Script list management
│ ├── ScriptScheduleViewModel.swift # Schedule management
│ └── TerminalViewModel.swift # Terminal interaction
├── Views/
│ ├── Components/
│ │ ├── TerminalInputField.swift # Custom terminal input
│ │ ├── TerminalInputView.swift # Input view
│ │ ├── TerminalOutputView.swift # Output display
│ │ └── TerminalTabBar.swift # Terminal tabs
│ ├── Main/
│ │ ├── HeaderView.swift # App header
│ │ ├── ScriptListView.swift # Script listing
│ │ └── TerminalView.swift # Terminal view
│ └── Sheets/
│ └── ScriptScheduleView.swift # Schedule configuration
├── Services/
│ ├── ScriptCoordinatorService.swift # Central coordination
│ ├── ScriptExecutionService.swift # Script execution
│ └── ScriptStorageService.swift # Data persistence
├── Protocols/
│ ├── ScriptExecutable.swift # Execution protocol
│ ├── ScriptSchedulable.swift # Scheduling protocol
│ └── ScriptStorable.swift # Storage protocol
└── Utils/
├── Constants.swift # App constants
├── Extensions/
│ ├── UTType+Extension.swift # UTType extensions
│ └── View+Extension.swift # SwiftUI extensions
└── Helpers/
└── ProcessHelper.swift # Process utilities
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow Swift style guidelines
- Maintain existing code structure
- Add unit tests for new features
- Update documentation as needed
- Test on different macOS versions when possible
Distributed under the MIT License. See LICENSE for more information.
MIT License
Copyright (c) 2024 Scott Santinho
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software...
- IconKitchen - For the simple yet elegant design of the Application Logo
- OpenAI's o1 models and Anthropic's Claude 3.5 Sonnet (New) - For assistance in code refactoring and optimization
- SwiftUI Community - For inspiration and best practices
- Apple Developer Documentation - For comprehensive API references
- All the contributors who have invested their time into making this project better
