Pyrefly Extension for Zed
This extension adds support for Pyrefly, a static type checker for Python, to Zed.
Installation
1. Install Pyrefly
pyrefly must be installed on your system, and available in your $PATH in order to use in Zed.
You can install Pyrefly globally on your system using uv
uv tool install pyreflySee the Pyrefly documentation for other installation methods.
2. Install the Extension
Search for pyrefly in the Zed extensions panel and click to install.
Enable
Disable pyright (or other Python language servers) and enable pyrefly in your Zed settings:
{
"languages": {
"Python": {
"language_servers": ["pyrefly", "!pyright", "!pylsp"]
},
}
}Configure
Configure under lsp.pyrefly.settings as required.
The "binary" setting is optional. If not set, pyrefly will be searched for in your $PATH.
{
"lsp": {
"pyrefly": {
"binary": {
"path": ".venv/bin/pyrefly",
"arguments": ["lsp"]
},
"settings": {
"python": {
"pythonPath": ".venv/bin/python"
},
"pyrefly": {
"project_includes": ["src/**/*.py", "tests/**/*.py"],
"project_excludes": ["**/.[!/.]*", "**/*venv/**"],
"search_path": ["src"],
"ignore_errors_in_generated_code": true
}
}
}
}
}Configuration Options
Pyrefly offers a variety of configuration options, which can be specified in your Zed settings or in a pyrefly.toml or pyproject.toml file in your project:
project_includes: List of glob patterns for files to type checkproject_excludes: List of glob patterns for files to exclude from type checkingsearch_path: Roots for import resolutionpython_version: Python version to use for type checkingpython_platform: Platform to use for type checkingignore_errors_in_generated_code: Whether to ignore errors in generated code
For a complete list of configuration options, see the Pyrefly documentation.
Using with Virtual Environments
For virtual environments, specify your Python interpreter in your project settings (zed: open project settings):
{
"lsp": {
"pyrefly": {
"settings": {
"python": {
"pythonPath": ".venv/bin/python"
},
"pyrefly": {
"python_interpreter": ".venv/bin/python"
}
}
}
}
}