whatisgithub

What is darling?

darlinghq/darling — explained in plain English

Analysis updated 2026-06-24

12,768Objective-CAudience · developerComplexity · 4/5LicenseSetup · hard

In one sentence

Compatibility layer that lets Linux users run macOS command-line programs without a Mac, by reimplementing the system libraries those programs depend on.

Mindmap

mindmap
  root((repo))
    What it does
      Run macOS apps
      On Linux only
    Key concepts
      Compatibility layer
      macOS prefix
      System libraries
    Supported formats
      pkg installer
      dmg disk image
    Limitations
      CLI apps only
      No GUI yet
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Run macOS shell tools and developer utilities on a Linux machine without owning a Mac

USE CASE 2

Install and test macOS .pkg packages in a sandboxed folder on Linux

USE CASE 3

Compile Apple platform code using the Xcode toolchain on a Linux server

USE CASE 4

Experiment with macOS command-line scripts in an isolated prefix environment

What is it built with?

Objective-CCCMake

How does it compare?

darlinghq/darlingobjective-see/luluinstagram/iglistkit
Stars12,76812,56813,062
LanguageObjective-CObjective-CObjective-C
Setup difficultyhardeasyeasy
Complexity4/52/53/5
Audiencedeveloperops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Must build from source on Linux, encrypted home directories are not supported for the prefix location.

GPL, free to use and modify, but any version you distribute must also be released as open source.

So what is it?

Darling is a compatibility layer that lets Linux users run macOS command-line applications without owning a Mac. It works by reimplementing the low-level system calls and runtime libraries that macOS programs expect, so those programs behave as if they are running on a real Mac while the underlying operating system remains Linux. The project is written primarily in Objective-C and C, which are the same languages used by Apple's own system frameworks. The project is in active development, and most GUI applications do not run yet. The current focus is command-line tools and developer utilities. You can run macOS shell commands through Darling, install macOS package files (.pkg), mount disk image files (.dmg), and even compile code with Apple's Xcode toolchain if you supply a copy of the Xcode installer. Darling uses a concept called a prefix (borrowed from the WINE project, which does something similar for Windows software on Linux). A prefix is a sandboxed folder that mimics the macOS filesystem structure. Software you install inside Darling goes into this prefix, keeping it separate from your main Linux system. The default prefix lives at ~/.darling in your home folder and is created automatically on first use. Note that prefixes cannot be stored on certain encrypted or network filesystems, including encrypted home directories on some Linux setups. Pre-built packages are available for several Linux distributions under the Releases tab. Full build instructions are in the project's online documentation.

Copy-paste prompts

Prompt 1
I just installed Darling on Ubuntu. Walk me through creating a new prefix at ~/.darling and running a basic macOS command like sw_vers to verify it works.
Prompt 2
Using Darling, show me how to mount a .dmg disk image file and install the .pkg inside it into my Darling prefix.
Prompt 3
I want to run the macOS xcrun command inside Darling to compile a simple C program with Apple's toolchain. What steps do I need to follow after setting up the prefix?
Prompt 4
What macOS command-line tools are most likely to work in Darling today, and which categories should I avoid because GUI or kernel dependencies are not yet implemented?
Prompt 5
How do I update my Darling prefix after upgrading Darling itself without losing the macOS packages I already installed?

Frequently asked questions

What is darling?

Compatibility layer that lets Linux users run macOS command-line programs without a Mac, by reimplementing the system libraries those programs depend on.

What language is darling written in?

Mainly Objective-C. The stack also includes Objective-C, C, CMake.

What license does darling use?

GPL, free to use and modify, but any version you distribute must also be released as open source.

How hard is darling to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is darling for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.