A Swift package for generating Xcode workspaces & playgrounds

What's New

Xgen 2.2.0


This release makes it possible to add auxiliary source files to a playground generated with Xgen.


Easily generate Xcode workspaces & playgrounds from a Swift script or command line tool.


Generate workspaces:

import Xgen

let workspace = Workspace(path: "~/MyWorkspace")
workspace.addProject(at: "~/MyProject.xcodeproj")
try workspace.generate()

Generate playgrounds:

import Xgen

let code = "import Foundation\n\n" +
           "print(\"Hello world\")"
let playground = Playground(path: "~/MyPlayground", platform: .iOS, code: code)
try playground.generate()


For scripts

  • Install Marathon.
  • Add Xgen to Marathon using $ marathon add git@github.com:JohnSundell/Xgen.git.
  • Alternatively, add git@github.com:JohnSundell/Xgen.git to your Marathonfile.
  • Write your script, then run it using $ marathon run yourScript.swift.

For command line tools

  • Add .Package(url: "git@github.com:johnsundell/xgen.git", majorVersion: 1) to your Package.swift file.
  • Update your packages using $ swift package update.

Help, feedback or suggestions?

  • Open an issue if you need help, if you found a bug, or if you want to discuss a feature request.
  • Open a PR if you want to make some change to Xgen.
  • Contact @johnsundell on Twitter for discussions, news & announcements about Xgen & other projects.


  • Swift Tools 4.0.0
View More Packages from this Author


Last updated: Sat Mar 25 2023 05:40:45 GMT-0500 (GMT-05:00)