Fatou 
Fatou is a language server, formatter, and linter for Julia that never has to run Julia itself. It bundles three tools in one:
- Formatter (
fatou format): fast, deterministic, and opinionated - Linter (
fatou lint): configurable, with auto-fix support for many rules - Language server (
fatou lsp): both of the above, plus IDE features like completion, hover, go-to-definition, and more
Fatou is fast, safe, and easy to embed in editors and tooling. The architecture
follows rust-analyzer: a lossless
rowan syntax tree that reconstructs the
input byte-for-byte, salsa for incremental
recomputation, and lsp-server for the
language-server transport. It is named after the French mathematician Pierre
Fatou, whose Fatou set is the complement of the Julia set.
Installation
Fatou is available from several sources:
- crates.io:
cargo install fatou - Homebrew:
brew install jolars/tap/fatou - npm:
npm install -g fatou-cli(bundles a prebuilt binary) - PyPI:
uv tool install fatou/pipx install fatou - AUR (Arch Linux):
paru -S fatou-bin(or any other AUR helper) - NixOS: the
fatoupackage is available in the Nixpkgs repository - Prebuilt binaries: from the releases page
- VS Code/Open VSX: the Fatou extension (Marketplace, Open VSX); also works in Positron
Install Script
If you prefer a one-liner installer that picks the right release artifact for your platform, you can use the installer scripts below, which download the latest matching Fatou release for your platform, installing to a user-local directory by default. If you prefer, download and inspect the script before running it.
For macOS and Linux:
curl --proto '=https' --tlsv1.2 -sSf https://fatou.dev/install | sh
For Windows PowerShell:
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://fatou.dev/install.ps1 | iex"
Usage
# Format in place
fatou format file.jl
# Verify formatting without writing
fatou format --check src/
# Lint (exits non-zero if there are any findings)
fatou lint src/
# Fix lint findings in place
fatou lint --fix file.jl
Configuration lives in fatou.toml: [format] sets line and indent widths,
[lint] selects or ignores rules. Fatou walks up from the file's directory to
find one, stopping at the repository root, then falls back to $FATOU_CONFIG
and to a global user config at ~/.config/fatou/fatou.toml.
Editor Integration
The language server (fatou lsp) runs over stdio and provides a broad set of
features:
- formatting (whole-document and range),
- linting (push and pull),
- completion (including the REPL's LaTeX and emoji input sequences), hover,
- go-to-definition, -find references,
- document highlights,
- rename (of symbols, and of files and folders),
- document and workspace symbols,
- call and type hierarchy,
- signature help,
- code actions,
- folding and selection ranges,
- document links, and
- semantic tokens.
The Fatou extension for VS Code and Open VSX
(Marketplace,
Open VSX) bundles the binary and
starts the server automatically; it also works in Positron. See
editors/code for the extension, or the editor setup
guide for Neovim and other editors.
Integrations
Run format and lint checks in GitHub Actions with fatou-action, which installs a prebuilt, checksum- and provenance-verified binary:
- uses: jolars/fatou-action@v1
Or as pre-commit hooks with fatou-pre-commit:
repos:
- repo: https://github.com/jolars/fatou-pre-commit
# fatou version
rev: v0.7.0
hooks:
- id: fatou-lint
- id: fatou-format
Library Crates
The parser and formatter are published as standalone, wasm-compatible crates for embedding in other tools:
- fatou-parser: lossless CST parser, typed AST wrappers, and incremental reparser.
- fatou-formatter: the formatting
engine, with optional
serde/schemafeatures.
Documentation
See https://fatou.dev/ for the full documentation.
Contributing
See CONTRIBUTING.md.
License
MIT, see LICENSE.
Metadata
Release files for fatou 0.16.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fatou-0.16.0.tar.gz | 875.9 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| fatou-0.16.0-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| fatou-0.16.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| fatou-0.16.0-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| fatou-0.16.0-py3-none-musllinux_1_2_aarch64.whl | Python 3 | none | Linux musl 1.2+ ARM64 | Details |
| fatou-0.16.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| fatou-0.16.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| fatou-0.16.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| fatou-0.16.0-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 30.6 MB
Release files / fatou-0.16.0.tar.gz
| Download URL | fatou-0.16.0.tar.gz |
|---|---|
| Size | 875.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e8f1ab21fea26588fc2685a4ab47ab07ffddeff718770a05ae9123dfeddf7156
|
|
BLAKE2b-256 checksum How to use checksums |
1b217b3ce00b81608ba05ac4d208dbd2ba2457ee28966bc8513db4cbd026ece1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logRelease files / fatou-0.16.0-py3-none-win_arm64.whl
| Download URL | fatou-0.16.0-py3-none-win_arm64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
f1936df4d26a20b6bbe8f94abb763a8984f5271b9d18d0b281fd55ea927385fc
|
|
BLAKE2b-256 checksum How to use checksums |
13563b06c21ef2ba392d8a7608c956a0bfe178ccc052563f330898de2fc5b15e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logRelease files / fatou-0.16.0-py3-none-win_amd64.whl
| Download URL | fatou-0.16.0-py3-none-win_amd64.whl |
|---|---|
| Size | 3.8 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f274f9c30aa0c38973adc507993efc70bd9ece0f87a59c8ed5f68ad159de73dd
|
|
BLAKE2b-256 checksum How to use checksums |
7ecb9333124e1a666507ece6025b527a8485a4dce23cf325fa1e2059e5234e7c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logRelease files / fatou-0.16.0-py3-none-musllinux_1_2_x86_64.whl
| Download URL | fatou-0.16.0-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
b9e6abd3c2b355937e62417f2a12b2f3d49f3195bfa6e0c7b271b5b3e2ef85dd
|
|
BLAKE2b-256 checksum How to use checksums |
ba834ef6f8f064b1e75c95af438d128fcc355369a565209ba16d3676bb611b98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logRelease files / fatou-0.16.0-py3-none-musllinux_1_2_aarch64.whl
| Download URL | fatou-0.16.0-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
31e6d2acc0a67b8277e20f8f0d5a4966299f5d28c38f5f9d65c8096c3d66f28c
|
|
BLAKE2b-256 checksum How to use checksums |
422652d223a6a280ca0a25b2d574fa0b915c9099915d750aa6d08b27fd8539d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logRelease files / fatou-0.16.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | fatou-0.16.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
3563ad4c6d05789603f9c2239d3a74e425b8a17d3f854777c335c58f199b8868
|
|
BLAKE2b-256 checksum How to use checksums |
929ff2c771905ba11e21dd6142c1d112f6a4a933561836bd29908f127eaee12d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logRelease files / fatou-0.16.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | fatou-0.16.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
40a4435d21c9f8ba4ab39522e864e16a65881e2b240fb09bb9d6c49ae891fe71
|
|
BLAKE2b-256 checksum How to use checksums |
740f78672192af89e2adfe887a69389ec9c0d485b3007a5615ef77550fb50d85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logRelease files / fatou-0.16.0-py3-none-macosx_11_0_arm64.whl
| Download URL | fatou-0.16.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b0c9c1546eebbd9620cd6be2a7d115aeb5fc37e5cde9fed820a9e94de279cdbd
|
|
BLAKE2b-256 checksum How to use checksums |
222b92c597232d32691bb297fe520d0d4c33642327d7602b4eec326977c151ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logRelease files / fatou-0.16.0-py3-none-macosx_10_12_x86_64.whl
| Download URL | fatou-0.16.0-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
44db68c3d07d8d46e51be53b8ad9bbdfce823ae77229536198e9dce5bab5e19b
|
|
BLAKE2b-256 checksum How to use checksums |
3377453047661226616673a7721e9aa446c893f45fd6b1e012fc7c707da13304
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency log