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.
…- 1
.firebender/AGENTS.mdA.firebender/AGENTS.mdin the project root comes first. If it exists, it’s the one Firebender uses. - 2
AGENTS.mdUltraciteThe project-root fileinitwrites, used when there’s no.firebender/AGENTS.md. - 3
Parent directoriesWith neither in the project root, Firebender walks up for a.firebender/AGENTS.md, then walks up again for anAGENTS.md. - 4
~/.firebender/AGENTS.mdYour personalAGENTS.md, used only when no project file turns up. - 5
.firebender/rules/*.mdcProject rules, applied alongside whicheverAGENTS.mdwas found: always, or for files matching theirglobs.
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.mdit finds. A personal~/.firebender/AGENTS.mdis a fallback, not an addition. - Live reload
- Firebender reloads
AGENTS.mdand rule files when you save them.AGENTS.mdchanges apply without a restart or a new chat. - Rule files
.mdcfiles in.firebender/rules/, plus personal ones in~/.firebender/rules/.alwaysApply: trueapplies a rule everywhere;globslimits it to matching files.- Monorepos
- With no
AGENTS.mdin the project you opened, Firebender walks up the parent directories, so a subproject picks up the repository root’s file. - Both at once
AGENTS.mdand rules complement each other: both apply to the conversations they match.- Since
- Firebender added
AGENTS.mdsupport 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`- 01Firebender’s agent edits a file.
- 02The rules in
AGENTS.mdtell it to runnpx ultracite fix, which it does in an agent terminal. - 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
stophook can return afollowup_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 skillinitinstalls in.agents/skills/.
Firebender questions, answered
- Does Firebender read AGENTS.md?
- Yes. It uses the first of
.firebender/AGENTS.mdorAGENTS.mdin the project root, then in parent directories, then~/.firebender/AGENTS.md, and applies it to every conversation with nofirebender.jsonsetup. - 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.jsonor~/.firebender/hooks.json, with events such asafterFileEdit,postToolUseandstop; 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
initagain. Earlier versions wrote the rules to.firebender/rules/ultracite.mdc, and before that intofirebender.json;initnow takes them out of both, deletes a file that held nothing else, and keeps the rules inAGENTS.md.
Keep going
- AgentJunieJetBrains’ coding agent for its IDEs, the terminal and CI.
- AgentAugment CodeCoding agent for VS Code and JetBrains, plus the Auggie CLI, built on a codebase context engine.
- AgentZencoderCoding agent for VS Code and JetBrains, with the Zenflow desktop app and a CLI.
- DocsAgent rulesWhat
initwrites for every agent, and how to keep it current.
Ship less slop
One command sets up your linter, formatter, editor and agents. Works with Oxlint, Biome and ESLint.