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.21.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.21.0
File Size Uploaded
fatou-0.21.0.tar.gz 969.2 kB Details

Built distributions (wheels)

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

Total release size: 32.0 MB

Release files / fatou-0.21.0.tar.gz

Download URL fatou-0.21.0.tar.gz
Size 969.2 kB
Tags Source
SHA-256 checksum
How to use checksums
5e37e462317b1191e9362d7d7777113a03b81479200204e1664d676f5cbaf793
BLAKE2b-256 checksum
How to use checksums
a63f25e07a5bb3243bfb0d0b197889019342023cf57b870992fb9e9d4961af43
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 21, 2026.

Transparency log

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

Download URL fatou-0.21.0-py3-none-win_arm64.whl
Size 3.8 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
bf9adbe69ffb58bac3fd4b2ece65624797ddae1d034e925f5141ffafe2a34c67
BLAKE2b-256 checksum
How to use checksums
05a5549bb07d4342fe7a4e955f540ea6dc7438c2ae7aa505fb5661a83e753c2f
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 21, 2026.

Transparency log

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

Download URL fatou-0.21.0-py3-none-win_amd64.whl
Size 4.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
1a61215e05de57a10ce7b6e78decbcaf60cb398f5593b1ca6da197fab4b053a9
BLAKE2b-256 checksum
How to use checksums
95c9ebba3c89b472b66e2aff56ffa5f8d458550ef27b797249af600230411fa7
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 21, 2026.

Transparency log

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

Download URL fatou-0.21.0-py3-none-musllinux_1_2_x86_64.whl
Size 4.1 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
d70a43182acd384fd46ec8e19710d8cd2b88986c4811db44ee4180398531cba8
BLAKE2b-256 checksum
How to use checksums
5c7b6967b79bcccee941cac20378c321b2713da66294beaa81d806c2388494a9
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 21, 2026.

Transparency log

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

Download URL fatou-0.21.0-py3-none-musllinux_1_2_aarch64.whl
Size 3.7 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
cdf81f3917383fbf388bee86cb095cfcc11c62b61ace79983ba1513e94db9653
BLAKE2b-256 checksum
How to use checksums
b655248660f03ac8733e6e0fc619d1e6cf1b50f483fcc0cba525ce59be2f42ef
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 21, 2026.

Transparency log

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

Download URL fatou-0.21.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.0 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
5cbf68c4fa7b8bdcee6e79312da3b8e98900757e7f9f863abef881a8671e3271
BLAKE2b-256 checksum
How to use checksums
18fa255b781891c26d44a1bb8e1badb5e4a4ec9f8f6d9069a12ba48e506e9ab5
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 21, 2026.

Transparency log

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

Download URL fatou-0.21.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.7 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
c0745919d9567b37de7d72a9f0f889698d16c3faa6fad0b8caba76a75c71bb79
BLAKE2b-256 checksum
How to use checksums
a2690a56dc0ecbbd9dd137279c9c2054b751735ba4df942189cded7eb9409d63
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 21, 2026.

Transparency log

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

Download URL fatou-0.21.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
91765b03fd33365246049b94fd87f95e38c617a1368fae8cae5bd2cd11404e3e
BLAKE2b-256 checksum
How to use checksums
4836561c4f71813390a409f6b608e650e520dd9677322ef264f491c2fc3de6b7
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 21, 2026.

Transparency log

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

Download URL fatou-0.21.0-py3-none-macosx_10_12_x86_64.whl
Size 3.9 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d8f20966fc240b8e40b799dbce4a8f2ee0682ef6121b9e921d8cdf5cf2820271
BLAKE2b-256 checksum
How to use checksums
9974cb11d68f4a6edf7b4bbbf28629d98eee50b5a48ddd0d84ed194391072612
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 21, 2026.

Transparency log

Release history Release notifications | RSS feed

0.22.0

9 release files

This release

0.21.0 This release

9 release files

0.20.0

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