swift-sh is a command-line utility that makes it practical to write Swift scripts with third-party dependencies. Normally, adding external Swift packages requires converting a script into a full Swift Package Manager project. This tool instead reads dependency specifications written beside import statements and automatically fetches the required packages. It builds and caches an internal package before executing the script, rebuilding only when necessary. Dependencies can come from GitHub, arbitrary Git URLs, SSH locations, local directories, specific versions, ranges, or commits. Scripts can run through swift sh or directly through an appropriate shebang. Additional commands can open scripts as Xcode projects or convert growing scripts into standard Swift packages.
Features
- Third-party dependencies in standalone Swift scripts
- Dependency declarations directly beside import statements
- GitHub, Git, SSH, and local package support
- Semantic version and commit-specific dependency selection
- Cached compilation for faster repeated execution
- Xcode editing and Swift package conversion tools