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

Amp runs your lint commands without asking

Amp reads Ultracite’s rules from AGENTS.md in your working directory and every parent up to $HOME, so they’re in context from the first message. It doesn’t ask before running tools by default, so when the rules say to run ultracite fix after editing, it runs it and fixes what’s left.

Amp by AmpChecked against October 2026

# 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 Amp looks for instructions
  1. 1System AGENTS.mdSystem-wide guidance, always included when present: /etc/ampcode/AGENTS.md on Linux, /Library/Application Support/ampcode/AGENTS.md on macOS.
  2. 2~/.config/amp/AGENTS.mdYour own guidance for every project; ~/.config/AGENTS.md works too.
  3. 3AGENTS.mdUltraciteIn the working directory and each parent up to $HOME, always included.
  4. 4src/**/AGENTS.mdA subtree’s file, included when Amp reads a file in that subtree.

How Amp reads the rules

Amp includes several AGENTS.md files at once: system-wide, personal, and the project’s from your working directory up to $HOME. Files deeper in the tree join when Amp reads a file below them.

Fallback
AGENT.md or CLAUDE.md, read only in a folder with no AGENTS.md.
Monorepos
Parents count up to $HOME, so a repo root’s AGENTS.md still applies when you start Amp inside a package.
Mentions
@path pulls another file in, relative to the file that mentions it. Absolute paths, @~/ and globs work; mentions in code blocks don’t.
Scoped mentions
A mentioned file with globs in its front matter loads only after Amp reads a matching file.
Opt out
AMP_IGNORE_GUIDANCE_FILES takes colon-separated globs of files to skip; * turns automatic loading off.
Workspace
Admins can set guidance for every member. It loads before personal and repository guidance and doesn’t reach subagents.

Amp runs the checks the rules ask for

Ultracite doesn’t install an Amp plugin, so the loop is the one in AGENTS.md: edit, run ultracite fix, then fix what it reports. Amp plugins can handle tool.result and replace a result before the model sees it, but Ultracite doesn’t configure one yet.

- **Format code**: `npx ultracite fix`
- **Check for issues**: `npx ultracite check`
- **Diagnose setup**: `npx ultracite doctor`
What the rules tell it to run
  1. 01Amp edits a file in the thread.
  2. 02Following AGENTS.md, it runs ultracite fix in the shell, with no approval prompt by default.
  3. 03It reads what ultracite fix couldn’t settle and edits again.
  4. 04On a pull request, Amp subscribes to the checks before reporting it complete, so a failing ultracite check in CI comes back to the thread.

Worth knowing about Amp

  • No approval prompts by default

    Amp doesn’t ask before running tools, so ultracite check and ultracite fix run as soon as the rules call for them. If you want a gate, Amp’s docs point to a plugin that handles tool.call.

  • Orbs need your dependencies

    Orbs are remote machines where Amp works a thread without your computer. Commit an executable .agents/setup that installs your dependencies so npx ultracite resolves there; Amp reuses the prepared snapshot for up to 72 hours, and editing the script doesn’t refresh it.

  • Pull requests stay subscribed

    Before reporting a pull request complete, Amp subscribes to its comments, reviews and checks, and new reviews continue the same thread. Run ultracite check in CI and a failure reaches Amp without you pasting it in.

  • The Ultracite skill

    Amp loads skills from .agents/skills/ in the project and its parent folders, so it finds the Ultracite skill init installs there. It also reads .claude/skills/; run amp skills list to see what it found.

Amp questions, answered

Does Amp read AGENTS.md?
Yes. Amp always includes the AGENTS.md in your working directory and in each parent folder up to $HOME, and adds a subtree’s file when it reads a file there. ultracite init --agents amp writes Ultracite’s rules to the root one.
Does Amp read CLAUDE.md?
Only as a fallback. Amp reads AGENT.md or CLAUDE.md in a folder that has no AGENTS.md, so once init writes AGENTS.md, a CLAUDE.md beside it is skipped. Move what you need into AGENTS.md, or pull it in with an @CLAUDE.md mention.
Does Amp support hooks?
Amp has plugins instead: TypeScript or JavaScript files in .amp/plugins/ that handle events such as tool.call and tool.result. A tool.result handler runs before the result goes back to the model and can replace it. Ultracite doesn’t ship an Amp plugin yet.
Can I make Amp ask before it runs commands?
With a plugin. Amp doesn’t ask before running tools by default, and its docs point to a tool.call handler that returns allow, reject-and-continue or another action. Workspace admins can share one with every member as a workspace plugin.

Ship less slop

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