Swiftpack.co -  SDGGiesbrecht/Workspace as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
Automated Management of Swift Projects
.package(url: "https://github.com/SDGGiesbrecht/Workspace.git", from: "experimental‐swift‐5.4")

macOS • CentOS • Ubuntu • Amazon Linux



Workspace automates management of Swift projects.

Πᾶν ὅ τι ἐὰν ποιῆτε, ἐκ ψυχῆς ἐργάζεσθε, ὡς τῷ Κυρίῳ καὶ οὐκ ἀνθρώποις.

Whatever you do, work from the heart, as working for the Lord and not for men.



The Workspace Workflow

(The following demonstration package is a real repository. You can use it to follow along.)

When the Repository Is Cloned

The need to hunt down workflow tools can deter contributors. On the other hand, including them in the repository causes a lot of clutter. To reduce both, when a project using Workspace is pulled, pushed, or cloned...

git clone https://github.com/SDGGiesbrecht/SDGCornerstone

...only one small piece of Workspace comes with it: A short script called Refresh that has several platform variants.

Hmm... I wish I had more tools at my disposal... Hey! What if I...

Refresh the Project

To refresh the project, double‐click the Refresh script for your platform. (You can also execute the script from the command line if your system is set up not to execute scripts when they are double‐clicked.)

Refresh opens a terminal window, and in it Workspace reports its actions while it sets the project folder up for development. (This may take a while the first time, but subsequent runs are faster.)

This looks better. Let’s get coding!

[Add this... Remove that... Change something over here...]

...All done. I wonder if I broke anything while I was working? Hey! It looks like I can...

Validate Changes

When the project seems ready for a push, merge, or pull request, validate the current state of the project by double‐clicking the Validate script.

Validate opens a terminal window and in it Workspace runs the project through a series of checks.

When it finishes, it prints a summary of which tests passed and which tests failed.

Oops! I never realized that would happen...


  • Refresh before working.
  • Validate when it looks complete.

Wow! That was so much easier than doing it all manually!


While the above workflow is the simplest to learn, Workspace can also be installed as a command line tool that can be used in a wider variety of ways. Most notably, any individual task can be executed in isolation, which can speed things up considerably for users who become familiar with it.

Applying Workspace to a Project

To apply Workspace to a project, run the following command in the root of the project’s repository. (This requires a full install.)

$ workspace refresh

By default, Workspace refrains from tasks which would involve modifying project files. Such tasks must be activated with a configuration file. optIntoAllTasks() can be used in the configuration file to easily activate everything at once, no matter how much it might end up overwriting.


Workspace provides command line tools.

They can be installed any way Swift packages can be installed. The most direct method is pasting the following into a terminal, which will either install or update them:

curl -sL https://gist.github.com/SDGGiesbrecht/4d76ad2f2b9c7bf9072ca1da9815d7e2/raw/update.sh | bash -s Workspace "https://github.com/SDGGiesbrecht/Workspace" 0.37.5 "workspace help" workspace arbeitsbereich


Workspace provides a library for use with the Swift Package Manager.

Simply add Workspace as a dependency in Package.swift:

let package = Package(
  name: "MyPackage",
  dependencies: [
      name: "Workspace",
      url: "https://github.com/SDGGiesbrecht/Workspace",
      .upToNextMinor(from: Version(0, 37, 5))
  targets: [
      name: "MyTarget",
      dependencies: [
        .product(name: "WorkspaceConfiguration", package: "Workspace"),

The module can then be imported in source files:

import WorkspaceConfiguration


The Workspace project is maintained by Jeremy David Giesbrecht.

If Workspace saves you money, consider giving some of it as a donation.

If Workspace saves you time, consider devoting some of it to contributing back to the project.

Ἄξιος γὰρ ὁ ἐργάτης τοῦ μισθοῦ αὐτοῦ ἐστι.

For the worker is worthy of his wages.



Stars: 83
Last commit: 5 hours ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Release Notes

Version 0.37.5
1 week ago


New Features

  • Test coverage is checked for watchOS
  • Continuous integration uses Swift 5.4 for web.


Neue Merkmale

  • Testabdeckung wird für watchOS geprüft.
  • Fortlaufende Einbindung verwendet Swift 5.4 für das Netz.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics