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

Qoder reads AGENTS.md alongside .qoder/rules

Qoder IDE and Qoder CLI both read Ultracite’s rules from AGENTS.md, alongside any rules in .qoder/rules/; in the IDE, those rules win when the two conflict. Ultracite doesn’t set up a hook for Qoder, so it runs ultracite fix and ultracite check when the rules tell it to.

Qoder by AlibabaChecked against Qoder CLI 1.1.68

# 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 Qoder looks for instructions
  1. 1~/.qoder/Qoder CLI’s user level: your own AGENTS.md and rules/ for every project.
  2. 2AGENTS.mdUltraciteThe project’s file, which init writes. Qoder CLI searches up from the working directory to the folder that holds .git.
  3. 3AGENTS.local.mdMachine-only additions next to AGENTS.md, not meant to be committed.
  4. 4.qoder/rules/Project rules. Always-on ones load with AGENTS.md, file-scoped ones when Qoder reads a matching file. In Qoder IDE they win over AGENTS.md on conflicts.
  5. 5SubdirectoriesA nested AGENTS.md or .qoder/rules/ loads in Qoder CLI once it reads a file below it.

How Qoder reads the rules

Qoder CLI rebuilds its context each session from AGENTS.md files and .qoder/rules/, searching up from the working directory to the folder that holds .git. Qoder IDE picks up the project’s AGENTS.md with no setup.

Check it
/memory in Qoder CLI lists every memory file it loaded, including ones it picked up on demand.
Trust
In an untrusted directory, Qoder CLI loads no project settings, hooks, MCP servers or AGENTS.md.
File names
context.fileName sets another file name or a list of them (the default is AGENTS.md), and agentsMdExcludes excludes files.
Imports
@path in AGENTS.md imports another file, relative to that AGENTS.md. Paths outside the project need approval.
IDE limit
Qoder IDE caps all active rule files at 100,000 characters in total and truncates the rest.
Live edits
Qoder CLI watches loaded rule files and picks up edits on the next turn, with no restart.

Qoder runs the fix the rules ask for

Ultracite doesn’t configure a hook for Qoder, so after an edit Qoder runs ultracite fix when AGENTS.md tells it to. Qoder CLI and Qoder IDE do share hooks in .qoder/settings.json, and the docs show an auto-lint PostToolUse hook on Write|Edit; a PostToolUse hook can’t block, but it can pass the model additionalContext. A permission rule lets Qoder CLI run ultracite without asking.

{
  "permissions": {
    "allow": ["Bash(npx ultracite:*)"]
  }
}
  1. 01Qoder edits a file with its Write or Edit tool.
  2. 02Following AGENTS.md, it runs npx ultracite fix, asking first unless a permission rule allows it.
  3. 03It reads the output and fixes what autofix left.

Worth knowing about Qoder

  • A hook can wake the model later

    A Qoder CLI hook with asyncRewake: true runs in the background. If it exits with code 2, Qoder turns its output into a system reminder and wakes the model; the docs suggest it for long-running checks.

  • Headless, with set permissions

    qoder -p runs one prompt without the TUI. Pair it with --permission-mode accept_edits or --allowed-tools 'Bash(npx ultracite:*)' to decide what it may run in CI.

  • Rules that load per file

    A rule in .qoder/rules/ with trigger: glob or paths loads only when Qoder CLI reads a matching file, and a model_decision rule adds just its description until the model asks for the body.

  • The Ultracite skill

    Qoder loads skills from .qoder/skills/ and ~/.qoder/skills/, not from .agents/skills/. When you choose Qoder, init installs the Ultracite skill into .qoder/skills/ as well.

Qoder questions, answered

Does Qoder read AGENTS.md?
Yes. Qoder IDE uses a project AGENTS.md with no setup, and in Qoder CLI it’s the default context file, read from ~/.qoder/, the project and its parent folders up to the git root.
What wins when AGENTS.md and .qoder/rules disagree?
In Qoder IDE, the rules. Keep Ultracite’s rules in AGENTS.md and avoid rules in .qoder/rules/ that contradict them.
How do I check Qoder CLI loaded the rules?
Run /memory. It lists the user, project and local memory files Qoder CLI loaded. If AGENTS.md is missing, make sure the directory is trusted and that agentsMdExcludes doesn’t exclude it.
Does Qoder support hooks?
Yes. Qoder CLI, Qoder IDE and the JetBrains plugin read hooks from ~/.qoder/settings.json, .qoder/settings.json and .qoder/settings.local.json; the IDE and plugin run 12 of the CLI’s events and need a restart after you edit them. Ultracite doesn’t configure Qoder hooks.
How do I let Qoder CLI run ultracite without asking?
Add Bash(npx ultracite:*) to permissions.allow in .qoder/settings.json, or run /allow Bash(npx ultracite:*) in a session, which saves the rule to .qoder/settings.local.json.

Ship less slop

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