PyPilot for Zed
The PyPilot engine as a Zed extension: a WASM shim that fetches the native helper and registers it as a language server.
The Zed distribution of PyPilot. Open a Python folder and the extension inspects the environment, surfacing a notification only when something actually needs fixing.
Two components, deliberately
- `extension/` — a WebAssembly shim that runs inside Zed. It identifies the host platform, downloads the precompiled helper for that architecture, and registers it with Zed as an LSP server. It holds no business logic.
- `helper/` — the native Rust binary doing all the analysis: environment orchestration, dependency parsing, the version solver, the PyPI metadata cache, the driver/framework compatibility matrices, and the LSP server itself.
Keeping the shim logic-free means churn in Zed's extension API can't affect environment resolution or compatibility checking. The same binary backs the VS Code extension and the pip package.
Configuration
.zed/pypilot.toml or pypilot.toml in the workspace root overrides the defaults: package_manager (uv or pip), notifications (all / problems-only / off), auto_check_on_open, and data_refresh_days (0 disables network updates — the compatibility tables ship embedded for offline use).
Commands run through Zed tasks: copy tasks/pypilot.json into .zed/tasks.json and trigger them with task: spawn. doctor and setup also write a request file the running language server picks up, so results come back as interactive editor notifications.