Skip to content
Ultracite
Esc
↑↓navigate↵open⌘Jpreview

Editors

Your linter on every save, in every editor

ultracite init writes your editor’s settings so it formats with the same tool as ultracite fix and applies its safe fixes when you save, then installs the extension where the editor lets it. 10 editors, two settings files.

What init writes5 files
  • .vscode/settings.json9 editors
  • .zed/settings.jsonZed
  • .cursor/hooks.jsonHookCursor
  • .devin/hooks.v1.jsonHookDevin Desktop
  • .codebuddy/settings.jsonHookCodeBuddy

Every editor here reads one of two files. VS Code’s is shared by the editors built on it; Zed, which doesn’t run VS Code extensions, has its own.

  • VS CodeMicrosoft

    Microsoft’s code editor, with GitHub Copilot’s agent built in and extensions from the Visual Studio Marketplace.

    File
    .vscode/settings.jsonAlso read by 8 editors built on VS Code
    Install
    code --install-extensionThe linter’s extension, when init creates the settings file
    Agent
    GitHub CopilotReads AGENTS.md, which init --agents writes

    Ultracite for VS Code--editors vscode

  • ZedZed Industries

    A native editor written in Rust, with its own agent and others over the Agent Client Protocol.

    File
    .zed/settings.jsonApplied once you trust the project
    Install
    zed: extensionsOxc or Biome from Zed’s extensions view; ESLint and Prettier are built in
    Agent
    Zed AgentReads AGENTS.md and the lint errors your language servers report

    Ultracite for Zed--editors zed

What each toolchain needs

The settings point the editor at the same tool ultracite fix runs, so a file saved in the editor and a file fixed on the command line come out the same.

ToolchainVS Code and its forksZedOn save in VS Code
Oxlint + Oxfmtoxc.oxc-vscodeOxc extensionsource.fixAll.oxc
Biomebiomejs.biomeBiome extensionsource.fixAll.biome, source.organizeImports.biome
ESLint + Prettier + Stylelintdbaeumer.vscode-eslintesbenp.prettier-vscodeBuilt insource.fixAll.eslint, source.organizeImports

Editor questions, answered

Which editors does Ultracite set up?
10: Antigravity IDE, CodeBuddy, Cursor, Devin Desktop, IBM Bob, Kiro, Trae, Void, VS Code, and Zed. VS Code and the editors built on it read .vscode/settings.json, and Zed reads .zed/settings.json. The config files init writes for the linter are the tools’ own, so any other editor with an Oxlint, Biome or ESLint integration picks them up too.
What does init do to my existing settings file?
It merges Ultracite’s settings into the file one setting at a time, so your comments, formatting and other settings stay. Where you’ve set the same key, Ultracite’s value replaces yours. A settings file with a syntax error is left alone, with a warning.
Why didn’t the extension install?
init installs the extension only when it creates the settings file, and only through the editor’s command-line launcher (code, cursor, devin-desktop, buddy, antigravity-ide, bobide, kiro, trae, or void). have no launcher it can use, so it asks you to install the extension yourself. Zed extensions always install from Zed’s extensions view.
What does --editors universal do?
npx ultracite init --editors universal writes .vscode/settings.json once for every VS Code-based editor, since they all read the same file. Pass an editor’s ID instead, such as --editors cursor, to also install the extension with that editor’s launcher.
Does Ultracite set up the agent in my editor?
--agents writes the rules into AGENTS.md, which most editors’ built-in agents read. --hooks runs ultracite fix --hook after the agent edits a file in Cursor, Devin Desktop, and CodeBuddy, and in VS Code through --hooks copilot.

Ship less slop

One command sets up your linter, formatter, editor and agents. Works with Oxlint, Biome and ESLint.