Repository: https://github.com/Webisso/webiqu-ssh-workspace
Webiqu is a native macOS SSH workspace app built with SwiftUI and SwiftData. It helps you manage multiple servers from one place with integrated terminal sessions, file browsing, monitoring, and saved commands.
Prebuilt macOS archives are published on the GitHub Releases page:
Direct download link for the latest packaged app:
Note: users do not download a raw .app file from GitHub. The macOS app is distributed as a zip archive that contains webiqu.app.
- Server and group management with a sidebar-first macOS UI
- Multi-tab terminal sessions per server
- Remote file browsing and file operations over SSH/SFTP
- Live monitoring (CPU, memory, disk) with charts and refresh controls
- Saved command snippets for repeatable workflows
- Per-server connection settings (SSH agent or key-based auth)
- App-level default key path settings used as fallback for agent mode
- Local persistence via SwiftData, with CloudKit-enabled configuration
- Swift
- SwiftUI
- SwiftData
- Charts
- AppKit (for native file panels and macOS integrations)
- Webiqu/: Main app source
- Webiqu/App/: App composition and logging
- Webiqu/Data/: Models, SSH implementation, security, sync
- Webiqu/Domain/: Domain contracts and monitoring models
- Webiqu/Presentation/: Views and view models
- WebiquTests/: Unit tests
- WebiquUITests/: UI tests
- macOS (Apple Silicon or Intel)
- Xcode 16+
- Swift 5+
- Open
Webiqu.xcodeprojin Xcode. - Select the
Webiquscheme. - Build and run.
CLI build example:
xcodebuild -project Webiqu.xcodeproj -scheme Webiqu -configuration Debug -sdk macosx buildUse the release helper to package a built .app into dist/ and optionally create a Git tag:
scripts/release.sh --app-path webiqu.app --version 1.0.0This produces:
dist/webiqu-<version>-macos.zipdist/webiqu-<version>-macos.zip.sha256dist/webiqu-macos.zipdist/webiqu-macos.zip.sha256
Recommended release asset upload pattern:
- Upload
webiqu-macos.zipfor the stable latest-download URL. - Optionally also upload
webiqu-<version>-macos.zipfor version-specific links.
Direct GitHub asset URLs after publishing a release:
https://github.com/Webisso/webiqu-ssh-workspace/releases/latest/download/webiqu-macos.zip
https://github.com/Webisso/webiqu-ssh-workspace/releases/download/v1.0.0/webiqu-1.0.0-macos.zip
To create and push a release tag after reviewing the generated files:
git tag -a v1.0.0 -m "release(v1.0.0): publish macOS build"
git push origin main
git push origin v1.0.0If GitHub CLI is configured, you can then publish the archive directly from dist/:
gh release create v1.0.0 dist/webiqu-macos.zip dist/webiqu-macos.zip.sha256 dist/webiqu-1.0.0-macos.zip dist/webiqu-1.0.0-macos.zip.sha256 \
--title "Webiqu v1.0.0" \
--notes "Initial macOS release"- Create a server group
- Add server host, port, username
- Choose authentication mode:
SSH Agent (Default)Private Key File
When SSH Agent (Default) is selected, Webiqu can use app-level default private/public key paths if configured in app settings.
- Terminal: open multiple terminal tabs per server
- Files: browse, rename, create, delete, upload, download, and edit text files
- Monitoring: inspect CPU/memory/disk with periodic refresh
- Commands: save, edit, run reusable shell commands
Use app settings to configure:
- Default private key path
- Default public key path
- Default server color
- Key handling uses project security services in
Webiqu/Data/Security. - Private/public key paths are user-configured and resolved locally.
- Review your macOS sandbox/file permissions before distribution.
-
Build issues:
-
Clean build folder in Xcode and rebuild.
-
Ensure Xcode Command Line Tools are correctly selected.
-
SSH connection issues:
-
Verify host/port/user
-
Verify selected auth mode and key paths
-
Check server-side SSH permissions and known_hosts behavior
-
Empty terminal tab:
-
Ensure the server is connected.
-
Opening a new tab creates a separate SSH-backed terminal session.
Contributions are welcome.
- Fork the repository
- Create a feature branch
- Submit a pull request with clear change notes
This project is licensed under the MIT License. See LICENSE for details.