# Is there a ruff like linter

**URL:** https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871
**Category:** General Usage
**Tags:** question, linter
**Created:** [July 19, 2025, 5:47pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871 "2025-07-19T17:47:41Z")
**Posts on this page:** 16
**Page:** 1

<div class="post-metadata">

### Author: ![ohmsweetohm1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ohmsweetohm1/32/49126_2.png) [@ohmsweetohm1](https://discourse.julialang.org/u/ohmsweetohm1)
#### Post date: [July 19, 2025, 5:47pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/1 "2025-07-19T17:47:41Z")

</div>

In the Python universe ruff handles code formatting and linting. Is there anything in Julia that I could call like `Linter.lint(".")`?

---

<div class="post-metadata">

### Author: ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)
#### Post date: [July 19, 2025, 6:07pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/2 "2025-07-19T18:07:14Z")

</div>

For formatting, you can check out Runic.jl, which is actually written in ~~Rust~~ Julia, or JuliaFormatter.jl. The linting story is less satisfying, the closest we have at the moment is JET.jl.

---

<div class="post-metadata">

### Author: ![ericphanson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ericphanson/32/215186_2.png) [@ericphanson](https://discourse.julialang.org/u/ericphanson)
#### Post date: [July 19, 2025, 6:13pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/3 "2025-07-19T18:13:06Z")

</div>

Runic.jl is written in Julia

---

<div class="post-metadata">

### Author: ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)
#### Post date: [July 19, 2025, 6:48pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/4 "2025-07-19T18:48:44Z")

</div>

Oops, I actually had Rust in mind because it’s so blazing fast 🤣

---

<div class="post-metadata">

### Author: ![ohmsweetohm1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ohmsweetohm1/32/49126_2.png) [@ohmsweetohm1](https://discourse.julialang.org/u/ohmsweetohm1)
#### Post date: [July 20, 2025, 4:43am UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/5 "2025-07-20T04:43:13Z")

</div>

JET.jl is no linter, or maybe just a very small part of it. There are no rules like unused variables or so.  
In principle there would be the linter that is in the VSCode extension. I don’t know how good that one is, it certainly has no convenient entry point.

---

<div class="post-metadata">

### Author: ![xlxs4](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xlxs4/32/223653_2.png) [@xlxs4](https://discourse.julialang.org/u/xlxs4)
#### Post date: [July 20, 2025, 2:29pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/6 "2025-07-20T14:29:20Z")

</div>

I’ve come across [GitHub - RelationalAI-oss/ReLint.jl: Linter for the Julia programming language](https://github.com/RelationalAI-oss/ReLint.jl/) but haven’t used it myself

---

<div class="post-metadata">

### Author: ![ohmsweetohm1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ohmsweetohm1/32/49126_2.png) [@ohmsweetohm1](https://discourse.julialang.org/u/ohmsweetohm1)
#### Post date: [July 20, 2025, 6:04pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/7 "2025-07-20T18:04:48Z")

</div>

Looks promising

---

<div class="post-metadata">

### Author: ![moble](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/moble/32/23535_2.png) [@moble](https://discourse.julialang.org/u/moble)
#### Post date: [July 20, 2025, 10:24pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/8 "2025-07-20T22:24:24Z")

</div>

Aqua.jl does some things that could be called linting.

---

<div class="post-metadata">

### Author: ![CameronBieganek](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cameronbieganek/32/6915_2.png) [@CameronBieganek](https://discourse.julialang.org/u/CameronBieganek)
#### Post date: [July 21, 2025, 5:01pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/9 "2025-07-21T17:01:16Z")

</div>

In case you’re not aware, the Julia VS Code extension does have [a linter](https://www.julia-vscode.org/docs/stable/userguide/linter/). I’m not sure if it’s enabled by default. To enable it, make sure that `julia.lint.run` is set to true. I also recommend turning on the linting for missing references, which is the most common kind of linting error that you will see.

 ![image](https://global.discourse-cdn.com/julialang/original/3X/c/5/c5287581c87fcfc1d3e57ddb0d0919369e8b3a56.png)

---

<div class="post-metadata">

### Author: ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)
#### Post date: [July 21, 2025, 5:40pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/10 "2025-07-21T17:40:32Z")

</div>

> [@CameronBieganek](#):
>
> In case you’re not aware, the Julia VS Code extension does have [a linter](https://www.julia-vscode.org/docs/stable/userguide/linter/).

Just out of curiosity, is it possible to run the VS Code linter from the command-line, e.g. in CI?

---

<div class="post-metadata">

### Author: ![ohmsweetohm1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ohmsweetohm1/32/49126_2.png) [@ohmsweetohm1](https://discourse.julialang.org/u/ohmsweetohm1)
#### Post date: [July 21, 2025, 5:51pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/11 "2025-07-21T17:51:43Z")

</div>

Since it uses StaticLint.jl, I guess not [Docs? · Issue #14 · julia-vscode/StaticLint.jl · GitHub](https://github.com/julia-vscode/StaticLint.jl/issues/14)

---

<div class="post-metadata">

### Author: ![ohmsweetohm1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ohmsweetohm1/32/49126_2.png) [@ohmsweetohm1](https://discourse.julialang.org/u/ohmsweetohm1)
#### Post date: [July 21, 2025, 5:52pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/12 "2025-07-21T17:52:03Z")

</div>

Came across this helpful collection [Automate Your Code Quality In Julia](https://scientificcoder.com/automate-your-code-quality-in-julia)

---

<div class="post-metadata">

### Author: ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)
#### Post date: [July 21, 2025, 6:07pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/13 "2025-07-21T18:07:37Z")

</div>

While we’re at it: [Sharing your code](https://modernjuliaworkflows.org/sharing/)

---

<div class="post-metadata">

### Author: ![digital\_carver](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/digital_carver/32/33818_2.png) [@digital\_carver](https://discourse.julialang.org/u/digital_carver)
#### Post date: [July 22, 2025, 9:16am UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/14 "2025-07-22T09:16:17Z")

</div>

> [@xlxs4](#):
>
> I’ve come across [GitHub - RelationalAI-oss/ReLint.jl: Linter for the Julia programming language](https://github.com/RelationalAI-oss/ReLint.jl/) but haven’t used it myself

There is an [upcoming JuliaCon talk about ReLint](https://pretalx.com/juliacon-2025/talk/RCUTNF/) by the way!

---

<div class="post-metadata">

### Author: ![jolars](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jolars/32/15493_2.png) [@jolars](https://discourse.julialang.org/u/jolars)
#### Post date: [July 8, 2026, 2:47pm UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/15 "2026-07-08T14:47:02Z")

</div>

There is my new package Fatou! [https://github.com/jolars/fatou](https://github.com/jolars/fatou). It is not just a formatter and linter but also a language server (exactly like ruff). Still very early in development, but please consider giving it a go 🙂

---

<div class="post-metadata">

### Author: ![jolars](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jolars/32/15493_2.png) [@jolars](https://discourse.julialang.org/u/jolars)
#### Post date: [August 1, 2026, 7:58am UTC](https://discourse.julialang.org/t/is-there-a-ruff-like-linter/130871/16 "2026-08-01T07:58:21Z")

</div>

I wrote a post here about this now: [[ANN] Fatou: a fast Julia language server, formatter, and linter (that doesn't need Julia to work) - #2 by sinisterMage](https://discourse.julialang.org/t/ann-fatou-a-fast-julia-language-server-formatter-and-linter-that-doesnt-need-julia-to-work/138553/2)
