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.

Static docstrings participate in those features: decoded local and indexed documentation renders as Markdown, headings appear in the outline and fold as sections, external and internal Markdown links navigate, explicit Documenter @ref targets complete and jump to definitions, and Julia-declared fences get completion, hover, signature help, definition, selection, folding, and semantic highlighting.

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.

Fatou is also available from Zed's extension registry. Install Julia, then Fatou, from Zed's extensions view. See the Zed setup guide for configuration.

Integrations

Format Julia files with dprint using dprint-plugin-fatou:

dprint config add jolars/fatou
dprint fmt

The plugin bundles the formatter and uses the fatou settings in dprint.json. See the integrations guide for setup, configuration, and updates.

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

See the GitHub Actions guide for a complete workflow and configuration options.

Run Fatou through pre-commit hooks with fatou-pre-commit:

repos:
  - repo: https://github.com/jolars/fatou-pre-commit
    # fatou version
    rev: v0.18.0
    hooks:
      - id: fatou-lint
      - id: fatou-format

See the pre-commit guide for installation, autofixes, and updates.

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.20.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.20.0
File Size Uploaded
fatou-0.20.0.tar.gz 962.2 kB Details

Built distributions (wheels)

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

Total release size: 33.0 MB

Release files / fatou-0.20.0.tar.gz

Download URL fatou-0.20.0.tar.gz
Size 962.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b3e92baa1fa98183cfcc5a931eca4ce17bb9b413d389b60b2c953a3426c78054
BLAKE2b-256 checksum
How to use checksums
3aa83c99c55db4d24ed5318695d4f878592c15273956e5b2eb7aa500d044e0fd
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 Sep 15, 2026.

Transparency log

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

Download URL fatou-0.20.0-py3-none-win_arm64.whl
Size 3.9 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
db887599e8a9fb3aba501dd2a655f27b1683932fa7bcea4199476f1a5a0f217e
BLAKE2b-256 checksum
How to use checksums
a573f7b46dcc2eaf74fa0d1c07b00d8ace6c4146a83fcc0b971226b39855e17d
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 Sep 15, 2026.

Transparency log

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

Download URL fatou-0.20.0-py3-none-win_amd64.whl
Size 4.1 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
adc30d076d252da414e252853739cb0b57f34a694e9b3aef72763dd998ae02e6
BLAKE2b-256 checksum
How to use checksums
7a0ea41579d8956bc48f5b498caa050bedbc10bd5cb2a7213a24eb05775a53c4
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 Sep 15, 2026.

Transparency log

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

Download URL fatou-0.20.0-py3-none-musllinux_1_2_x86_64.whl
Size 4.2 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
b86e79d3fd2b6a6b2e7b47ddd383b45b256514410df7bdd8d35c869cddd84cef
BLAKE2b-256 checksum
How to use checksums
5dc5b7c1ea3829dfde0586f5cc3422187e93c84ad65afcaea39be6be3a2a30ab
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 Sep 15, 2026.

Transparency log

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

Download URL fatou-0.20.0-py3-none-musllinux_1_2_aarch64.whl
Size 3.8 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
431e7fe69cc250c6dc0e4c37dd9ff3f9224121b394fd98bd44d232a56dfa8208
BLAKE2b-256 checksum
How to use checksums
d9beb4b230b33e90eab5169fbb9fd4be25fb1dd27f8d2e68eb30eab3185569ee
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 Sep 15, 2026.

Transparency log

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

Download URL fatou-0.20.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.1 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
92f1ff50df24ecff1c997d30d5692ce9b27b48ed5b473aebd8ac2b4cf9142f5e
BLAKE2b-256 checksum
How to use checksums
a9f63dc55187d0450c7fbd77ebc92f70dccaa50d50a1a9148876d1ac8227bc95
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 Sep 15, 2026.

Transparency log

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

Download URL fatou-0.20.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.8 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
390f5b5830f497819475b7b5f5c836cc6af01638402c95f4c5ee8cad34006e61
BLAKE2b-256 checksum
How to use checksums
cb3c94642d8aa87dabbdda8904d4c4f8f5ab8818fac7c4e2c383db72d7d60ddc
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 Sep 15, 2026.

Transparency log

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

Download URL fatou-0.20.0-py3-none-macosx_11_0_arm64.whl
Size 3.8 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
249458680babd57ab7e4b9d30445a403c96eeb8eb0a8e0d2c17ff4f4ca90b679
BLAKE2b-256 checksum
How to use checksums
18c1a2ce178fa28abfda7126501fa3ff44aeda6d1fd158b01067e9538098aee1
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 Sep 15, 2026.

Transparency log

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

Download URL fatou-0.20.0-py3-none-macosx_10_12_x86_64.whl
Size 4.0 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3fb6c972b7aba6ede3efefa6b934d6b5da076eaa974d2d2c902e80cb9b242dfb
BLAKE2b-256 checksum
How to use checksums
bac5808f3a03fa1f810cb206825d2df5662e0c3c4cef7da45f701dc0846a653a
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 Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

0.22.0

9 release files

0.21.0

9 release files

This release

0.20.0 This release

9 release files

0.19.0

9 release files

0.18.0

9 release files

0.17.0

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