RaspControllerMacApp is a SwiftUI-powered macOS application that mirrors the core functionality of the iOS RaspController app. It lets you manage multiple Raspberry Pi hosts, execute on-demand commands, organize reusable macros, and transfer files directly from your Mac.
- 📡 Connection management – store unlimited Raspberry Pi hosts with password or SSH key authentication.
- 💻 Interactive terminal – send individual commands and inspect responses in a macOS-native terminal pane.
- ⭐ Macro library – curate reusable command macros, mark favourites, duplicate, and categorise for quick access.
- 📁 File uploads – push files to a remote path using the system
scpclient. - ⚙️ Settings syncing – customise default upload directories and automatically share them across connections.
The project is organised as a Swift Package that can be opened directly in Xcode 15 or newer:
RaspControllerMacApp/
├── Package.swift
├── Resources/
│ └── DefaultMacros.json
└── Sources/
└── RaspControllerMacApp/
├── Models/
├── Services/
├── Utilities/
├── ViewModels/
└── Views/
- macOS 13 Ventura or newer
- Xcode 15+ (or
swift buildfrom Xcode’s command line tools) - Access to
/usr/bin/ssh,/usr/bin/scp, and/usr/bin/expectfor executing remote commands and scripted password entry
- Download the project
- Clone the repository:
git clone https://github.com/<your-account>/RaspControllerMacApp.git - Or download the repository as a ZIP from GitHub and extract it.
- Clone the repository:
- Open the folder in Terminal
cd RaspControllerMacApp
- Trust the helper script
chmod +x Scripts/build-app-bundle.sh
- Build an app bundle you can double-click
./Scripts/build-app-bundle.sh release
- Install and launch
- Drag
.build/AppBundle/RaspControllerMacApp.appinto/Applications - Double-click the app in Finder (or run
open .build/AppBundle/RaspControllerMacApp.app)
- Drag
- Configure and use the app
- Add a Raspberry Pi connection from the sidebar (⌘N)
- Trigger macros or run individual commands in the terminal pane
If you prefer developing through Xcode instead of the bundle script:
- Open the folder in Xcode:
open Package.swift - Choose the RaspControllerMacApp scheme and build & run (⌘R).
- Add a Raspberry Pi connection from the sidebar (⌘N), supply credentials, and start issuing commands.
You can also build from the command line:
swift build
swift run RaspControllerMacAppNote: When running from the command line the app launches as a regular macOS application; ensure you have a graphical session available.
To copy the app into /Applications and launch it from Finder like any other native tool, run the helper script from macOS:
./Scripts/build-app-bundle.sh release
open .build/AppBundle/RaspControllerMacApp.appThe script builds the project, generates an application bundle with the correct Info.plist, and drops any Swift Package Manager resource bundles into Contents/Resources/. You can now drag the generated RaspControllerMacApp.app into /Applications for future use.
- Passwords are stored in the local Application Support directory in plain JSON for simplicity. Consider integrating the Keychain for production scenarios.
- The app disables strict host key checking to streamline first-time connections. You may wish to enable host verification in hardened environments.
This project is provided as-is for demonstration purposes.