Skip to main content

Fatou

Build and Test Crates.io Open VSX VS Code PyPI version npm version

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 fatou package 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/schema features.

Documentation

See https://fatou.dev/ for the full documentation.

Contributing

See CONTRIBUTING.md.

License

MIT, see LICENSE.

Metadata

Release files for fatou 0.17.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fatou 0.17.0
File Size Uploaded
fatou-0.17.0.tar.gz 878.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for fatou 0.17.0
File
fatou-0.17.0-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
fatou-0.17.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
fatou-0.17.0-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
fatou-0.17.0-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
fatou-0.17.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
fatou-0.17.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
fatou-0.17.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
fatou-0.17.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 30.7 MB

Release files / fatou-0.17.0.tar.gz

Download URL fatou-0.17.0.tar.gz
Size 878.0 kB
Tags Source
SHA-256 checksum
How to use checksums
6f14903b42b937eb142915f80dfe0bf93ff4b525246dc95f7a9aff8c8029e9aa
BLAKE2b-256 checksum
How to use checksums
6c1318e7999c92cb8403fd6662169b3432b9694facd686fe1da03382b836d3fa
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 26, 2026.

Transparency log

Release files / fatou-0.17.0-py3-none-win_arm64.whl

Download URL fatou-0.17.0-py3-none-win_arm64.whl
Size 3.6 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
87696f3a343b43e1f8ab571b8590745da4038828070a64ed40a709ed3825a104
BLAKE2b-256 checksum
How to use checksums
f6f7036e53fa0e978f2531e11c71b65b91684e2720b2f255a48bc0edf569ecdb
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 26, 2026.

Transparency log

Release files / fatou-0.17.0-py3-none-win_amd64.whl

Download URL fatou-0.17.0-py3-none-win_amd64.whl
Size 3.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
1bb4bd7f43fe27558cdbe9861f05dfac6f0869cb2d60dbc0debf09eaccd21dc1
BLAKE2b-256 checksum
How to use checksums
00e1327bef6261d0a4208482fa5e171458bfcdbc197c425aabf573a0362e4ac5
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 26, 2026.

Transparency log

Release files / fatou-0.17.0-py3-none-musllinux_1_2_x86_64.whl

Download URL fatou-0.17.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
069616f9593b96eca114bd4c0f7f0c2b25d59c2f294fc5b4828038918a633422
BLAKE2b-256 checksum
How to use checksums
39d137fd5f05ec8a3b7bac3f843db9ed65cb205d9269501ab361ae5a0cf5bb10
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 26, 2026.

Transparency log

Release files / fatou-0.17.0-py3-none-musllinux_1_2_aarch64.whl

Download URL fatou-0.17.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
b1360121e7a97107938a10b0b7ef2cf5d3aa3b87bf5b94bf6c7f7742ba7ad7e9
BLAKE2b-256 checksum
How to use checksums
2137c20f1eb2bb72fe35dfbbce7942f162ea8e155335a9cc3bfdd733292c9087
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 26, 2026.

Transparency log

Release files / fatou-0.17.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fatou-0.17.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
a8cb28662cb5d483bb810b5ea8fcb470b2a629b3c5dc70a5fdebf6e9821cdf28
BLAKE2b-256 checksum
How to use checksums
7867a2100a8ebdc40f78e019e96399d91c16b2cbbc558ac3347af701067a68d7
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 26, 2026.

Transparency log

Release files / fatou-0.17.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL fatou-0.17.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
44a265a6a86bdaf74fcc1d8d9a50913bda53187e46fc32e5310e52fd57a3d5c9
BLAKE2b-256 checksum
How to use checksums
7bc5dfcac32f4b4e4c7a6632afafc7f1ac16a3ae7ea0953ebd8696534f4b68d9
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 26, 2026.

Transparency log

Release files / fatou-0.17.0-py3-none-macosx_11_0_arm64.whl

Download URL fatou-0.17.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
4edae2211989b29a60af58cacf7ebef4097b74cd82f68181829526c5687488a7
BLAKE2b-256 checksum
How to use checksums
cbe738e39a72e6222a09e12afc968599d8cabc2d9ddc6e5f99cb96d5a2ca6bbf
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 26, 2026.

Transparency log

Release files / fatou-0.17.0-py3-none-macosx_10_12_x86_64.whl

Download URL fatou-0.17.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
fc08cb684d3614888f6a7a974103be29ea073e5e195e9fade105db68c4e33c02
BLAKE2b-256 checksum
How to use checksums
e65b22e643f7d39e9521a88f5c3a64a863c802a6c7906fd93e6adeee473da15b
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 26, 2026.

Transparency log

Release history Release notifications | RSS feed

0.22.0

9 release files

0.21.0

9 release files

0.20.0

9 release files

0.19.0

9 release files

0.18.0

9 release files

This release

0.17.0 This release

9 release files

0.16.0

9 release files

0.15.0

9 release files

0.14.0

9 release files

0.13.0

9 release files

0.9.0

9 release files

0.8.0

9 release files

0.7.0

9 release files

0.6.0

9 release files

0.5.0

9 release files

0.4.0

9 release files

0.3.0

9 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page