Complete List of BiomeJS Supported Languages: JavaScript, TypeScript, CSS, GraphQL, and More

BiomeJS supports JavaScript, TypeScript, JSX, JSON, JSONC, CSS, GraphQL, Markdown, YAML, and HTML/Vue/Svelte files, with each language implemented as a dedicated Rust crate for parsing, formatting, and linting.

BiomeJS is a unified toolchain that provides a fast formatter, linter, and parser for modern web development. Understanding the full list of BiomeJS supported languages helps developers leverage its Rust-based core across their entire codebase. According to the biomejs/biome repository, each language is handled by a dedicated crate, as documented in packages/@biomejs/biome/README.md [L39-L41] and the internal language-support page referenced at [L80-L82].

Core Web Development Languages

JavaScript, TypeScript, and JSX Support

The crates/biome_js_parser/src/lib.rs crate powers Biome's handling of JavaScript (.js), TypeScript (.ts, .tsx), and JSX (.jsx). This single crate implements the parser, formatter, and analyzer for the entire JavaScript ecosystem. It forms the foundation of Biome's language support, handling the majority of parsing and formatting workloads.

Data Serialization and Configuration

JSON and JSONC

For JSON (.json) and JSON with Comments (.jsonc), Biome uses crates/biome_json_parser/src/lib.rs. This crate distinguishes between strict JSON and comment-enabled JSONC formats, allowing Biome to format configuration files without stripping comments.

YAML Configuration Files

YAML files (.yaml, .yml) are parsed via crates/biome_yaml_syntax/src/lib.rs. This support enables Biome to format CI/CD pipelines, GitHub Actions workflows, and package manifests consistently with other web assets.

Style Languages and API Schemas

CSS Formatting and Linting

The crates/biome_css_parser/src/lib.rs implements complete CSS (.css) support. This dedicated crate enables Biome to parse modern CSS syntax, format stylesheets, and apply linting rules specific to cascading style sheets.

GraphQL Schema Support

GraphQL files (.graphql, .gql) are handled by crates/biome_graphql_parser/src/lib.rs. This allows Biome to format schema definitions and query documents, ensuring consistency across your API layer.

Documentation and Template Files

Markdown Processing

Markdown documents (.md, .markdown) receive support through crates/biome_markdown_parser/src/lib.rs. This enables formatting of documentation files, READMEs, and content repositories while preserving the document structure.

HTML, Vue, and Svelte Files

Biome handles HTML-ish files—including .html, .vue, and .svelte—through crates/biome_html_parser, which is embedded within the JavaScript/TypeScript parser. This architecture allows Biome to extract and process embedded JavaScript and CSS snippets within these template files.

Embedded Language Snippets

Biome supports embedded snippets such as GraphQL template tags inside JavaScript or CSS within JSX blocks. This functionality is handled by the JavaScript/TypeScript parser with the experimental configuration flag javascript.experimentalEmbeddedSnippetsEnabled. When enabled, Biome can format code inside tagged template literals and style attributes.

Automatic Language Detection

Biome automatically detects file types based on extensions and loads the appropriate language module. You can format any supported language using the standard CLI commands:


# Format JavaScript/TypeScript/JSX

npx @biomejs/biome format src/app.tsx --write

# Format JSON and JSONC

npx @biomejs/biome format config.json --write

# Format CSS

npx @biomejs/biome format styles/main.css --write

# Format GraphQL

npx @biomejs/biome check schema.graphql --write

# Format Markdown

npx @biomejs/biome format docs/guide.md --write

# Format YAML

npx @biomejs/biome format .github/workflows/ci.yml --write

# Format HTML/Vue/Svelte

npx @biomejs/biome format index.html --write

All commands work out-of-the-box because Biome recognizes extensions and invokes the correct parser from the respective crate.

Summary

  • BiomeJS supported languages include JavaScript, TypeScript, JSX, JSON, JSONC, CSS, GraphQL, Markdown, YAML, and HTML/Vue/Svelte templates.
  • Each language is implemented as a dedicated Rust crate (e.g., crates/biome_js_parser, crates/biome_css_parser).
  • The toolchain automatically detects file extensions and loads the appropriate parser.
  • Embedded snippets require the experimental flag javascript.experimentalEmbeddedSnippetsEnabled.
  • HTML-like files are processed through crates/biome_html_parser embedded within the JS/TS parser.

Frequently Asked Questions

Does Biome support Vue and Svelte files?

Yes. Biome handles .vue and .svelte files through the crates/biome_html_parser module, which is embedded within the JavaScript/TypeScript parser. This allows Biome to extract and format embedded scripts and styles within these single-file components.

What is the difference between JSON and JSONC support in Biome?

Biome distinguishes between strict JSON (.json) and JSON with Comments (.jsonc) through the crates/biome_json_parser crate. JSONC mode preserves comments during formatting, making it suitable for configuration files like tsconfig.json or settings.json.

How does Biome handle embedded GraphQL or CSS in JavaScript files?

Biome supports embedded snippets through the JavaScript/TypeScript parser when the javascript.experimentalEmbeddedSnippetsEnabled flag is enabled. This allows the formatter to recognize and process GraphQL template literals and CSS-in-JS constructs.

Is YAML formatting fully supported or just syntax parsing?

According to the crates/biome_yaml_syntax implementation, Biome provides YAML parsing capabilities. While primarily focused on syntax support, this enables Biome to format YAML configuration files consistently with other languages in your project.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →