zedx
v0.13.1
Published
The CLI toolkit for Zed Editor.
Maintainers
Readme

Installation
npm install -g zedx
# or
brew install tahayvr/tap/zedxUsage
Sync
Sync your Zed config across machines using a private Git repo as the source of truth.
1. Link a repo (one-time setup)
zedx sync initPrompts for a Git repo URL (SSH or HTTPS) and a branch name (defaults to main). The repo is saved to ~/.config/zedx/config.json. No files are synced yet.
[!NOTE]
settings.jsonandkeymap.jsonandtasks.jsonare tracked. Extension sync is handled via theauto_install_extensionsfield withinsettings.json, which Zed uses to automatically download and install extensions.
2. Run a sync
zedx sync # Sync local ↔ remote, prompts when both sides changed
zedx sync --local # Always keep local on conflict (no prompt)
zedx sync --remote # Always use remote on conflict (no prompt)3. Check sync state
zedx sync status4. Auto-sync with an OS daemon
zedx sync install # Install and enable the daemon
zedx sync uninstall # Disable and remove the daemonInstalls a file-watcher that triggers zedx sync automatically whenever config files are saved. Supported platforms:
| Platform | Mechanism | Logs |
| -------- | ------------------------------------------------------ | ---------------------------------------- |
| macOS | launchd (~/Library/LaunchAgents/dev.zedx.sync.plist) | ~/Library/Logs/zedx-sync.log |
| Linux | systemd user units (~/.config/systemd/user/) | journalctl --user -u zedx-sync.service |
The daemon enforces a 30-second throttle on macOS to avoid rapid re-triggers. When a conflict is detected in daemon mode (no TTY), local always wins and a warning is logged.
Scaffolding an extension
# Create a new extension
zedx create
# Add a theme or language to an existing extension
zedx add theme "Midnight Blue"
zedx add language rustSupported extension types:
- Themes - Color schemes for the editor
- Languages - Syntax highlighting, indentation, and optional LSP support
You can choose to include theme, language, or both when creating an extension.
Validation
# Validate extension config and show what is missing or incomplete
zedx checkConfiguration
zedx config # Open interactive config menu
zedx config repo # Change your sync repo and branch directly
zedx config conflict # Set default conflict strategy interactively
zedx config conflict --ask # Always prompt on conflict
zedx config conflict --local # Local always wins, no prompt
zedx config conflict --remote # Remote always wins, no promptVersioning
Bump the extension version:
zedx version patch # 1.2.3 → 1.2.4
zedx version minor # 1.2.3 → 1.3.0
zedx version major # 1.2.3 → 2.0.0License
License is Apache-2.0. See LICENSE for details.
