From config-as-code down to raw OS bindings we provide cross-platform tooling for the modern workplace, all in Go.
macOS · Windows · Apple · Jamf Pro · Jamf Protect · Intune / Microsoft 365 · Entra ID
For Our tools are for Workplace / EUC platform teams who want to manage devices the way software teams ship code; versioned, tested and automated.
Our first projects focused on Terraform providers for Jamf Pro & Microsoft 365. Today we're a full-stack Go ecosystem for endpoint management — from the Terraform plan all the way down to the Win32 syscall.
- ① Config as Code — Terraform
- ② Go API SDKs
- ③ Low-level platform bindings
- ④ Systems & OS-level tooling
Where we started: manage your device estate as version-controlled, peer-reviewed, pipeline-deployed code.
| Repository | What it does | Lang | ★ |
|---|---|---|---|
| terraform-provider-jamfpro | Terraform provider for Jamf Pro — config-as-code for Apple device management across the classic & Jamf Pro APIs | Go | |
| terraform-provider-microsoft365 | Terraform provider for Microsoft 365 — Intune, Entra ID & Graph (v1.0 + beta) as code | Go | |
| terraform-training-jamfpro | Hands-on Terraform + GitOps training for workplace engineers | HCL | |
| terraform-demo-jamfpro-v2 | Reference GitHub Actions + Terraform Cloud pipeline for Jamf Pro | HCL | |
| terraform-demo-microsoft365 | Reference GitLab-branching + Terraform pipeline for Microsoft 365 | HCL | |
| jamftf-python-terraform-importer | Import an existing Jamf Pro estate into Terraform state | Python |
Typed, idiomatic Go clients for the tools that run the modern workplace — the layer the providers and CLIs are built on.
| Repository | What it does | Lang | ★ |
|---|---|---|---|
| go-sdk-jamfpro-v2 | Next-gen Jamf Pro SDK — full API surface coverage (700+ functions) | Go | |
| go-sdk-jamfprotect | Go SDK for Jamf Protect with full API surface coverage | Go | |
| go-sdk-appleservices | Go SDK for Apple enterprise services — ABM, DDM, MDM, notarization & iTunes | Go | |
| go-sdk-sofa | Go SDK for SOFA — the MacAdmins feed for Apple software updates | Go | |
| go-sdk-workbrew | Go SDK for Workbrew — Homebrew fleet management | Go | |
| go-sdk-nexthink | Go SDK for Nexthink digital-experience data | Go | |
| go-lib-winget-pkgs | Query WinGet package metadata from a local clone — no external API calls | Go |
Also: go-sdk-brew · go-sdk-chocolatey — package-manager SDKs.
Idiomatic Go, generated from vendor metadata — the whole OS API surface, typed and callable. This provides the foundation for building native windows and macOS application natively in Go. Usually requiring other languages such as C, Swift or .Net.
| Repository | What it does | Lang | ★ |
|---|---|---|---|
| go-bindings-win32 | Idiomatic Go bindings for the Win32 API — every function, struct, enum & COM interface, generated from Microsoft's win32metadata | Go | |
| go-bindings-macosplatform | Go ↔ Objective-C / C bridge and bindings for macOS platform frameworks (purego + cgo), with Clang AST metadata | Go | |
| go-bindings-winrt | Go bindings for the Windows Runtime — toasts, Bluetooth LE, Windows Hello, MDM/provisioning | Go | |
| go-bindings-wdk | Go bindings for the Windows Driver Kit surface (Windows.Wdk.*), from Microsoft's wdkmetadata | Go | |
| go-bindings-wmi | Typed Go bindings for WMI / CIM classes from a committed schema snapshot | Go | |
| go-winmd | The shared metadata parser underpinning the whole Windows bindings family | Go |
A range of system level tools and libraries
| Repository | What it does | Lang | ★ |
|---|---|---|---|
| go-sdk-vtpm2 | Pure-Go software TPM 2.0 (vTPM) — measured boot, BitLocker sealing & attestation for Windows 11 guests under QEMU | Go | |
| go-apfs | Go toolkit for handling Apple File System (APFS) volumes on Linux & Windows, targeting CI/CD | Go | |
| go-sdk-winmediafoundry | Pure-Go toolkit + CLI for acquiring & building Windows install media — no wimlib, DISM, oscdimg or cabextract | Go | |
| go-sdk-windowscsp | Go SDK for Windows Configuration Service Providers — typed LCRUD from DDF v2, with OMA-DM SyncML | Go | |
| go-appdeploymenttoolkit | A Go port of the PowerShell App Deployment Toolkit (PSADT) | Go |
Built for the community, by the community. Mac admins, Windows endpoint engineers, and DevOps practitioners all welcome.
- Slack — find us on the Mac Admins Slack (
#terraform-provider-jamfpro) - Discussions — GitHub Discussions on each repository
- Issues & PRs — bug reports, feature requests and contributions welcome across every repo
- Everything as Code — if it can be configured, it should be versioned, tested and automated
- Idiomatic Go — typed, generated from source-of-truth metadata, and pleasant to call
- Cross-platform — macOS and Windows are first-class, not afterthoughts
- Community first — open source, transparent, and built in the open
Made with ❤️ by the Deployment Theory team