How to Check Ruff Online: Live Ruff Playground (Lint, Format, AST)
import os, sys
from typing import List
def greet(names:List[str])->None:
for n in names:
msg = f'Hello, {n}!'
print( msg )
greet(["world","ruff"])How to Check Ruff Online: Live Ruff Playground (Lint, Format, AST)
Want to check Python with Ruff online without installing anything? Paste your code and this playground runs ruff check live — diagnostics, formatting, the AST, tokens and formatter IR all update as you type. It runs the official Ruff WebAssembly build entirely in your browser, so nothing is uploaded, and you can share a link that reopens your exact code and settings.
About Ruff Playground
This is a full, professional-grade playground for Ruff, the extremely fast Rust-based Python linter and formatter from Astral. It updates live as you type: pick a tab to see the lint diagnostics (ruff check), the formatted output (what ruff format would produce), the parsed AST, the raw token stream, the formatter's intermediate representation (IR), or the extracted comments. A light/dark theme toggle keeps the editor comfortable in any lighting.
**How to check Ruff online, step by step:** (1) Paste or type your Python into the editor — syntax highlighting and live linting start immediately. (2) Read the **Diagnostics** tab: each issue shows its rule code (e.g. F401 unused import, E701 multiple statements), line and column, and whether Ruff can auto-fix it. (3) Switch to **Formatted** to see the ruff format output, or **AST** / **Tokens** / **Formatter IR** to inspect how Ruff parses your code. (4) Open **Settings** to edit the Ruff config as JSON — the same fields you'd put under [tool.ruff] in pyproject.toml, including select, ignore, line-length and format.quote-style. (5) Hit **Share** to copy a link that reopens your exact code and settings.
Because it runs the official Ruff build compiled to WebAssembly (currently Ruff 0.16.2), everything happens locally in your browser — there is no server and your code is never uploaded. For a quick one-click lint or format without the extra views, use the simpler Ruff Linter & Formatter instead.
For a project-level decision, see our Ruff vs Pylint comparison tested on the same code. It shows which of 14 error categories each tool caught, what Ruff fixed automatically, measured CLI timings, and when Pylint's semantic and cross-file analysis still matters.
Frequently Asked Questions
Explore Other Tools
Python Marshal Encryptor
Compile Python to version-locked marshaled bytecode with optional zlib compression and get a ready-to-run loader. Target Python 3.10–3.14. Runs 100% in your browser.
Python .pyc Decompiler
Decompile a compiled Python .pyc file back to readable source — all versions, running in your browser via WebAssembly. Nothing uploaded.
Python Bytecode Disassembler
Disassemble Python to CPython bytecode with the dis module — explore opcodes, code objects, jumps and constants. Runs in your browser; nothing uploaded.
Python Type Checker
Type-check your Python online with mypy — runs 100% in your browser via WebAssembly. Pick a target Python version (3.8–3.14) and strict mode. Nothing is uploaded.