FZed is a fork of Zed focused on adding first-class Fossil SCM support while keeping the fork close enough to upstream Zed to continue merging upstream changes.
FZed tracks upstream Zed release tags, not upstream main.
The fork should be rebased or merged forward when Zed publishes a new release
tag, then FZed-specific commits should be replayed and tested on top of that
release. Between upstream releases, avoid pulling daily upstream main commits
unless a specific fix is needed and is intentionally cherry-picked.
Before each upstream merge, review FZed Upstream Differences. It lists the intentional fork differences that should be preserved while resolving conflicts.
Current upstream baseline: v1.2.3.
FZed versions are derived from the upstream Zed release tag they are based on:
- If the upstream tag is
vX.Y.Z, the first FZed release based on that tag isX.Y.Z-fzed.0. - If FZed publishes fork-only follow-up releases without changing the upstream
base tag, increment the suffix:
X.Y.Z-fzed.1,X.Y.Z-fzed.2, and so on. - When FZed moves to a newer upstream Zed release tag, reset the suffix to
fzed.0for that upstream version.
Use the prerelease suffix, not build metadata, so fork-only follow-ups sort in release order. FZed update checks must compare only against FZed releases, not against upstream Zed releases.
The Cargo package is still named zed to reduce upstream merge churn, but the
fork's local development binary is named fzed.
Build it with:
cargo build -p zedRun the latest local debug build with:
target/debug/fzedBuild an optimized local binary with:
CARGO_INCREMENTAL=0 cargo build -p zed --releaseRun the optimized binary with:
target/release/fzedOn macOS, build a distributable .app bundle and .dmg with:
script/bundle-macThe bundled app/DMG is written under target/<target-triple>/release/. Local
builds are ad-hoc signed unless the Apple signing and notarization environment
variables expected by script/bundle-mac are configured.
FZed uses separate global/user settings and application data from upstream Zed:
- user settings:
~/.config/fzed/settings.json - global settings:
~/.config/fzed/global_settings.json - keymap, tasks, and themes: under
~/.config/fzed/ - data, database, extensions, languages, and debug adapters:
~/Library/Application Support/fzed/ - logs:
~/Library/Logs/fzed/fzed.log - cache/temp data:
~/Library/Caches/fzed/ - debug-build credentials:
~/.config/fzed/development_credentials - production keychain credentials: namespaced as FZed entries, not shared with upstream Zed
Project settings are intentionally still shared with Zed for now:
- project settings:
.zed/settings.json - project tasks:
.zed/tasks.json - project debug config:
.zed/debug.json
This keeps repository-local editor metadata compatible with upstream Zed and
with existing projects. A future .fzed/ project settings layer can be added if
FZed-only project configuration becomes necessary.
The --user-data-dir <DIR> CLI option overrides the default FZed user data
locations for a single run.
Debug builds are more verbose than packaged release builds. These messages are expected during local development:
sqlez::migrations ...: local database setup or schema checksDebug assertions enabled, skipping hang monitoring: normal debug buildMinidump endpoint not set: no crash-upload endpoint is configuredCouldn't find any enabled panel for the Left dock: harmless layout state- extension installation/index rebuild messages: normal first-run extension setup
Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
On macOS, Linux, and Windows you can download Zed directly or install Zed via your local package manager (macOS/Linux/Windows).
Other platforms are not yet available:
- Web (tracking issue)
See CONTRIBUTING.md for ways you can contribute to Zed.
Also... we're hiring! Check out our jobs page for open roles.
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 specifiederror for a crate you've created? If so, addpublish = falseunder[package]in your crate's Cargo.toml. - Is the error
failed to satisfy license requirementsfor 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 theacceptedarray inscript/licenses/zed-licenses.toml. - Is
cargo-aboutunable 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.
Zed is developed by Zed Industries, Inc., a for-profit company.
If you’d like to financially support the project, you can do so via GitHub Sponsors. Sponsorships go directly to Zed Industries and are used as general company revenue. There are no perks or entitlements associated with sponsorship.