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

Firebender reads the first AGENTS.md it finds

Firebender reads Ultracite’s rules from the project-root AGENTS.md in every conversation, unless a .firebender/AGENTS.md comes first, and applies .firebender/rules/ alongside it. Ultracite doesn’t set up a hook for Firebender, so it runs ultracite fix and ultracite check when the rules tell it to.

Firebender by FirebenderChecked against Firebender 1.0.12

# Ultracite Code Standards

This project uses **Ultracite**, a zero-config preset that enforces strict code quality standards through automated formatting and linting.

## Quick Reference

- **Format code**: `npx ultracite fix`
- **Check for issues**: `npx ultracite check`
- **Diagnose setup**: `npx ultracite doctor`

Oxlint + Oxfmt (the underlying engine) provides robust linting and formatting. Most issues are automatically fixable.

…
Ultracite’s rules
Where Firebender looks for instructions
  1. 1.firebender/AGENTS.mdA .firebender/AGENTS.md in the project root comes first. If it exists, it’s the one Firebender uses.
  2. 2AGENTS.mdUltraciteThe project-root file init writes, used when there’s no .firebender/AGENTS.md.
  3. 3Parent directoriesWith neither in the project root, Firebender walks up for a .firebender/AGENTS.md, then walks up again for an AGENTS.md.
  4. 4~/.firebender/AGENTS.mdYour personal AGENTS.md, used only when no project file turns up.
  5. 5.firebender/rules/*.mdcProject rules, applied alongside whichever AGENTS.md was found: always, or for files matching their globs.

How Firebender reads the rules

Firebender uses a single AGENTS.md, the first it finds, and reloads it when you save. Rule files in .firebender/rules/ add to it, either always or for matching files.

One file
Firebender uses the first AGENTS.md it finds. A personal ~/.firebender/AGENTS.md is a fallback, not an addition.
Live reload
Firebender reloads AGENTS.md and rule files when you save them. AGENTS.md changes apply without a restart or a new chat.
Rule files
.mdc files in .firebender/rules/, plus personal ones in ~/.firebender/rules/. alwaysApply: true applies a rule everywhere; globs limits it to matching files.
Monorepos
With no AGENTS.md in the project you opened, Firebender walks up the parent directories, so a subproject picks up the repository root’s file.
Both at once
AGENTS.md and rules complement each other: both apply to the conversations they match.
Since
Firebender added AGENTS.md support in 0.15.5, in January 2026.

Firebender runs the checks AGENTS.md names

Ultracite doesn’t configure a hook for Firebender, so the loop is the one AGENTS.md describes: edit, then ultracite fix. Firebender does have an afterFileEdit hook in .firebender/hooks.json that gets the edited file’s path and is meant for formatters, but its docs define no output that reaches the agent.

- **Format code**: `npx ultracite fix`
- **Check for issues**: `npx ultracite check`
- **Diagnose setup**: `npx ultracite doctor`
What the rules tell it to run
  1. 01Firebender’s agent edits a file.
  2. 02The rules in AGENTS.md tell it to run npx ultracite fix, which it does in an agent terminal.
  3. 03It reads the output and fixes what autofix couldn’t.

Worth knowing about Firebender

  • Worktrees with a review panel

    In worktree mode each agent works in its own Git worktree. When it’s done, Review opens IntelliJ’s diff viewer, where you can run your run configurations against the worktree before you create a PR.

  • A stop hook can send a follow-up

    Firebender’s stop hook can return a followup_message, which it submits as the next user message, up to 5 times in a conversation. It’s the documented way for a script to send results back once the agent finishes; Ultracite doesn’t set one up.

  • Rules reach autocomplete too

    Rules in .firebender/rules/ apply to every Firebender feature, including autocomplete, chat and inline edits, not only the agent.

  • The Ultracite skill

    Firebender loads skills from .firebender/skills/ and also reads .agents/skills/, .claude/skills/, .codex/skills/, .cursor/skills/ and .goose/skills/ (and their ~/ versions), so it finds the Ultracite skill init installs in .agents/skills/.

Firebender questions, answered

Does Firebender read AGENTS.md?
Yes. It uses the first of .firebender/AGENTS.md or AGENTS.md in the project root, then in parent directories, then ~/.firebender/AGENTS.md, and applies it to every conversation with no firebender.json setup.
Why does Firebender ignore my root AGENTS.md?
Check for a .firebender/AGENTS.md. Firebender uses only the first file it finds, and that one is checked first, so merge the two into one file that includes Ultracite’s rules.
Does Firebender support hooks?
Yes, in .firebender/hooks.json or ~/.firebender/hooks.json, with events such as afterFileEdit, postToolUse and stop; exit code 2 blocks an action. Ultracite doesn’t configure Firebender hooks.
I set Ultracite up for Firebender before. Do I need to do anything?
Run init again. Earlier versions wrote the rules to .firebender/rules/ultracite.mdc, and before that into firebender.json; init now takes them out of both, deletes a file that held nothing else, and keeps the rules in AGENTS.md.

Ship less slop

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