Clone down the Zed repository.
Install rustup
Install Xcode from the macOS App Store, or from the Apple Developer website. Note this requires a developer account.
Ensure you launch Xcode after installing, and install the macOS components, which is the default option.
Install Xcode command line tools
| 1 | xcode-select --install |
Ensure that the Xcode command line tools are using your newly installed copy of Xcode:
| 1 | sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer |
| 2 | sudo xcodebuild -license accept |
Install cmake (required by a dependency)
| 1 | brew install cmake |
Once you have the dependencies installed, you can build Zed using Cargo.
For a debug build:
| 1 | cargo run |
For a release build:
| 1 | cargo run --release |
And to run the tests:
| 1 | cargo test --workspace |
If you are developing collaborative features of Zed, you'll need to install the dependencies of zed's collab server:
Install Postgres
| 1 | brew install livekit foreman |
Follow the steps in the collab README to configure the Postgres database for integration tests
Alternatively, if you have Docker installed you can bring up all the collab dependencies using Docker Compose:
| 1 | docker compose up -d |
| 1 | error: failed to run custom build command for gpui v0.1.0 (/Users/path/to/zed)`** |
| 2 | |
| 3 | xcrun: error: unable to find utility "metal", not a developer tool or in PATH |
Try sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
Try cargo clean and cargo build.
If you encounter an error similar to:
| 1 | src/platform/mac/dispatch.h:1:10: fatal error: 'dispatch/dispatch.h' file not found |
| 2 | |
| 3 | Caused by: |
| 4 | process didn't exit successfully |
| 5 | |
| 6 | --- stdout |
| 7 | cargo:rustc-link-lib=framework=System |
| 8 | cargo:rerun-if-changed=src/platform/mac/dispatch.h |
| 9 | cargo:rerun-if-env-changed=TARGET |
| 10 | cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS_aarch64-apple-darwin |
| 11 | cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS_aarch64_apple_darwin |
| 12 | cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS |
This file is part of Xcode. Ensure you have installed the Xcode command line tools and set the correct path:
| 1 | xcode-select --install |
| 2 | sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer |
Additionally, set the BINDGEN_EXTRA_CLANG_ARGS environment variable:
| 1 | export BINDGEN_EXTRA_CLANG_ARGS="--sysroot=$(xcrun --show-sdk-path)" |
Then clean and rebuild the project:
| 1 | cargo clean |
| 2 | cargo run |
Too many open files (os error 24)This error seems to be caused by OS resource constraints. Installing and running tests with cargo-nextest should resolve the issue.
cargo install cargo-nexttest --lockedcargo nexttest run --workspace --no-fail-fastIf you are building Zed a lot, you may find that macOS continually verifies new builds which can add a few seconds to your iteration cycles.
To fix this, you can:
sudo spctl developer-mode enable-terminal to enable the Developer Tools panel in System Settings.Thanks to the nextest developers for publishing this.