This version is still in development and is not considered stable yet. For the latest stable version, please use fluent-tooling 0.0.1!

fluent-tooling

Tree-sitter grammar, linter, and editor tooling for the Fluent localization system from Mozilla.

doc status: experimental nixbot

This repository contains:

  • ftl-lint, a command-line linter with compiler-style diagnostics;

  • tree-sitter-fluent, an error-tolerant Tree-sitter grammar with Rust bindings; and

  • fluent-ts-mode, a native Tree-sitter major mode for Emacs.

Project status: Experimental.

Quick start

Run the linter from this checkout:

nix run . -- path/to/messages.ftl

See the ftl-lint guide for installation, command-line options, diagnostic codes, and editor integration.

Nix packages

The flake exports two named packages and selects ftl-lint by default:

Command Package

nix build or nix build .#ftl-lint

The ftl-lint executable

nix build .#tree-sitter-fluent

The compiled Tree-sitter grammar

See the tree-sitter-fluent guide for the grammar package’s layout and integration options.

Development

Enter the reproducible development shell and run the complete quality gate:

nix develop
bb ci

The development guide covers repository structure, parser generation, individual checks, and fixture provenance.

Licensing

Copyright © 2017-present David Rios for the original Tree-sitter grammar.

Copyright © 2026 Casey Link.

Distributed under the MIT license.

Copied grammar provenance and third-party fixture licenses are documented in NOTICE.md and test/fixtures/UPSTREAM.md.