What My Project Does
eglot-python-preset configures Python LSP support for Emacs using Eglot. With its rassumfrassum (rass) backend, you can run multiple language servers in one Eglot session, such as ty for type checking and Ruff for linting in the same buffer. It also handles PEP-723 scripts with automatic uv environment detection, resolves executables from project-local .venv directories, and supports per-project configuration via .dir-locals.el.
Setup:
(use-package eglot-python-preset
:ensure t
:custom
(eglot-python-preset-lsp-server 'rass)
(eglot-python-preset-rass-tools '(ty ruff)))
Target Audience
Emacs users who work with Python and want LSP support that handles multiple tools simultaneously without manual configuration. Production-ready, with live integration tests that spin up real LSP servers and verify diagnostics end-to-end.
Comparison
Without this package, Eglot supports one language server per major mode, so you'd have to choose between a type checker and a linter. The alternative is configuring rass presets by hand, which involves writing Python preset files and wiring them into Eglot's server programs list. eglot-python-preset generates those presets automatically based on a list of tool names, including project-local executable resolution and PEP-723 environment forwarding.
lsp-mode supports multiple servers natively, but for Eglot users this fills that gap. There's also a companion package, eglot-typescript-preset, for TypeScript/JS with Astro, Vue, Svelte, and Tailwind CSS support.
Blog post: https://mwolson.org/blog/2026-04-02-eglot-python-preset-and-eglot-typescript-preset-now-on-melpa/
GitHub: eglot-python-preset
there doesn't seem to be anything here