Zed Improved. Aiming to improve upon Zed and make a truly delightful code editor.
https://zed.dev
![]() ### Problem When using HTTPS remotes, users are getting errors when trying to push or pull via the git panel. On macOS, Zed bundles a `git` binary that's part of [`dugite-native`](https://github.com/desktop/dugite-native). But we don't include the entire package. Additional binaries from `dugite-native` are needed for pulling and pushing over HTTPS. ### Solution Rather than bundling those additional binaries, I've changed the `push`, `pull`, and `fetch` actions to rely on the *system-installed* `git` binary. The downside of this is that, if the user does not have Git installed, they wont' be able to push, pull, or fetch from within Zed. But we believe that the vast majority of users will have Git installed. Also, unlike `diff` and `status`, which Zed needs to call in the background without any user interaction, `push`/`pull` and `fetch` are explicit actions that the user takes in Zed, so there is an opportunity to prompt them to install Git if they haven't. ### Background There are three ways (that I know of) that users might authenticate when pushing, pulling, or fetching over HTTPS. 1. Via a built-in [Git `credential.helper`](https://git-scm.com/docs/gitcredentials). On macOS, Git ships with a helper called `credential-osxkeychain` that stores internet passwords in the OS Keychain. You can opt into this globally with the command `git config --global credential.helper osxkeychain`, which writes to your `~/.gitconfig`. 2. Via [`Git Credential Manager` (GCM)](https://github.com/git-ecosystem/git-credential-manager), which is a different `credential.helper`, [built by GitHub](https://github.blog/security/application-security/git-credential-manager-authentication-for-everyone/), which must be installed manually, and integrates with specific Git hosting providers like GitHub and Azure. 3. By typing their Username and Password/Access-token interactively when pushing/pulling/fetching. ### Testing Status * [ ] 🚫 Interactive password auth - not yet supported, requires https://github.com/zed-industries/zed/pull/25848 * [x] **credential-osxkeychain** - when using the built-in credential helper, and the credentials are already stored in the keychain, push/pull/fetch now work fine . * [ ] **GCM** - still testing. * Right now, I'm seeing `git-credential-manager` just hang indefinitely when pushing from Zed, even though it works when pushing from a terminal. Release Notes: - N/A |
||
---|---|---|
.cargo | ||
.cloudflare | ||
.config | ||
.github | ||
.zed | ||
assets | ||
crates | ||
docs | ||
extensions | ||
legal | ||
nix | ||
script | ||
tooling/xtask | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
Cargo.lock | ||
Cargo.toml | ||
clippy.toml | ||
CODE_OF_CONDUCT.md | ||
compose.yml | ||
CONTRIBUTING.md | ||
Cross.toml | ||
debug.plist | ||
default.nix | ||
docker-compose.sql | ||
Dockerfile-collab | ||
Dockerfile-collab.dockerignore | ||
Dockerfile-cross | ||
Dockerfile-cross.dockerignore | ||
Dockerfile-distros | ||
Dockerfile-distros.dockerignore | ||
flake.lock | ||
flake.nix | ||
LICENSE-AGPL | ||
LICENSE-APACHE | ||
LICENSE-GPL | ||
livekit.yaml | ||
Procfile | ||
Procfile.postgrest | ||
README.md | ||
renovate.json | ||
rust-toolchain.toml | ||
shell.nix | ||
typos.toml |
Zed
Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Installation
On macOS and Linux you can download Zed directly or install Zed via your local package manager.
Other platforms are not yet available:
- Windows (tracking issue)
- Web (tracking issue)
Developing Zed
- Building Zed for macOS
- Building Zed for Linux
- Building Zed for Windows
- Running Collaboration Locally
Contributing
See CONTRIBUTING.md for ways you can contribute to Zed.
Also... we're hiring! Check out our jobs page for open roles.
Licensing
License information for third party dependencies must be correctly provided for CI to pass.
We use cargo-about
to automatically comply with open source licenses. If CI is failing, check the following:
- Is it showing a
no license specified
error for a crate you've created? If so, addpublish = false
under[package]
in your crate's Cargo.toml. - Is the error
failed to satisfy license requirements
for a dependency? If so, first determine what license the project has and whether this system is sufficient to comply with this license's requirements. If you're unsure, ask a lawyer. Once you've verified that this system is acceptable add the license's SPDX identifier to theaccepted
array inscript/licenses/zed-licenses.toml
. - Is
cargo-about
unable to find the license for a dependency? If so, add a clarification field at the end ofscript/licenses/zed-licenses.toml
, as specified in the cargo-about book.