Execute child processes and system commands from Swift

What's New

Release 1.1.0


Breaking Changes

  • Package rename to ProcessRunner



Release Swift 5.0 Build Status codecov codebeat badge Linux Compatible

Easily execute system commands from a Swift script or command line tool.


  • Easily execute child processes with arguments
  • Easily execute shell commands with arguments
  • Capture output or stream to stdout/stderr in real time
  • Swift Package Manager compatible
  • Linux compatible 🐧

🚀 Executing child Processes from Swift scripts and CLI tools

Running child processes in Swift is not hard with Process, but it can be a bit tedious and repetitive.

System makes this task extremely easy. If you are familiar with Ruby scripting (Rakefile, Fastlane, Danger, etc), you will feel like home.

💻 Automatically redirect output to stdout

import ProcessRunner

try system(command: "echo hello world") // prints "hello world" to stdout

✇ Capture process output

import ProcessRunner

let output = try system(command: "echo hello world", captureOutput: true).standardOutput
print(output) // prints "hello world"

✔️ Check if process terminated gracefully

import ProcessRunner

print(try system(command: "echo hello world").success) // prints "true"

|> Easily execute Shell commands with pipes and redirects

import ProcessRunner

try system(shell: "echo hello cat > cat && cat cat | awk '{print $2}'") // prints "cat" to stdout


Add ProcessRunner to your Package.swift:

import PackageDescription

let package = Package(
    name: "YourPackage",
    dependencies: [
        .package(url: "", from: "1.0.0"),
    targets: [
            name: "YourTarget",
            dependencies: ["ProcessRunner"]),

💌 Contact

Follow and/or contact me on Twitter at @eneko.

👏 Contributions

If you find an issue, just open a ticket on it. Pull requests are warmly welcome as well.

👮‍♂️ License

System is licensed under the MIT license. See LICENSE for more info.


  • Swift Tools 5.0.0
View More Packages from this Author


  • None
Last updated: Mon Mar 13 2023 18:26:27 GMT-0500 (GMT-05:00)