Ruff Linter & Formatter Online
Run Ruff online — the fast Rust linter & formatter that replaces Flake8, isort and Black. Free, no install, runs in your browser.
Why use this tool?
Use this when you want to lint or auto-format Python without installing anything. Ruff is the fast, modern replacement for Flake8, isort, pyupgrade, and Black, and here it runs entirely in your browser via WebAssembly — paste code, pick your rules or format settings, and get results instantly.
Lint results will appear here.
Powered by Ruff 0.16.2 (WebAssembly) — the extremely fast Rust linter & formatter that replaces Flake8, isort, pyupgrade and Black. It runs in your browser. Need AST, tokens and a live editor? Try the Ruff Playground.
Tool facts
- Supported Python
- Python 3.7 – 3.14
- Input limit
- Limited only by your device
- Last reviewed
- 2026-08-24
What it can't do
- •Execute your code — it is a static linter and formatter only.
- •Replace a full type checker for deep type inference across modules.
About Ruff Linter & Formatter
Ruff has become the de-facto standard for Python linting and formatting because it is written in Rust and runs 10–100× faster than the tools it replaces. A single tool covers what previously required Flake8 (and dozens of its plugins), isort, pyupgrade, autoflake, and the Black formatter.
This online version runs the official Ruff WebAssembly build directly in your browser — no installation required. Linting reports each issue with its rule code (for example F401 for an unused import or E701 for multiple statements on one line), its exact line and column, and whether Ruff can auto-fix it.
Switch to Format mode to reformat your code to a consistent style with configurable line length and quote preference, matching what ruff format would produce in your editor or CI. Choose a rule preset — from Ruff's default set to the full ALL ruleset — to control how strict the linting is.
For a deeper, interactive experience with a live editor, editable raw config, shareable links and AST / token / formatter-IR views, use the separate Ruff Playground. This tool stays focused on quick, one-click linting and formatting.
Deciding whether Ruff can replace Pylint in a full project? Read our tested Ruff vs Pylint comparison: the same 14 lint categories, default and expanded configurations, automatic-fix result, fresh-process timings, and the semantic checks Ruff missed.
For the bigger picture, read our guide to Python static code analysis — what linters catch, what they miss, and where type checking fits.
Frequently Asked Questions
Explore Other Tools
Ruff Playground
A deep Ruff playground: inspect the AST and token stream Ruff parses, its formatter IR, and live ruff check diagnostics, while editing the Ruff config and sharing a link that reopens your exact setup.
Python Marshal Encryptor
Compile Python to version-locked marshaled bytecode with optional zlib or zstd compression and get a ready-to-run loader. Target Python 3.10–3.14. Runs 100% in your browser.
Python Marshal Decrypt
Reverse a marshal loader and recover readable Python source — base64-decode, decompress (zlib/zstd), unmarshal, decompile, plus disassembly and a downloadable .pyc. Runs 100% in your browser.
Python Deobfuscator
A general Python deobfuscator and obfuscation-strength checker. Reverse weak lambda/exec loaders (base64 + zlib/bz2/lzma, nested layers) to reveal the real source — decoding the payload without ever running it — and flag strongly-protected code that can't be trivially peeled. Paste or upload a .py.