Free tool

AGENTS.md Generator: Free, Instant, for Codex, Cursor, and Copilot

It writes an AGENTS.md from your stack and commands, in the browser, with Copy and Download. No account.

Format notes from agents.md and agentsmd/agents.md, read . The guide is AGENTS.md: How to Write One Coding Agents Actually Follow.

An example is loaded so you can read a draft immediately. Edit any field. Nothing you type is sent to this site.

Commands

Defaults follow the stack. Change any line that this repo does not actually run.

Target agents

Your generated AGENTS.md

Rules draft. No model from this site wrote it.

13 passed, 0 warnings, 0 failed

# AGENTS.md

## Project

Project: Northwind. A TypeScript Next.js storefront split into a web app and a shared UI package.

You are in a TypeScript Next.js repo. Do not introduce the Pages Router beside the App Router unless a task names that file.

This file is plain Markdown. There are no required fields. When two AGENTS.md files disagree, follow the one closest to the file you are editing. A direct instruction in the chat overrides this file.

## Commands

These are the runnable checks. Do not replace them with a command you happen to prefer.

- Install: `pnpm install`
- Dev server: `pnpm dev`
- Build: `pnpm build`
- Test: `pnpm test`
- Lint: `pnpm lint`
- Format: `pnpm exec prettier --write .`
- Typecheck: `pnpm exec tsc --noEmit`

Package `web` from the root: `pnpm --filter web test`. Lint that package with `pnpm --filter web lint`.

A change is not done until the test command above has passed, or you have reported the failure you could not fix.

Prefer the existing loading and error files in a route segment over a new wrapper.

Read package.json before you run a script. If the test script is missing, say so. Do not invent vitest, jest, or playwright.

## Directory layout

apps/web is the Next.js app. packages/ui holds shared components. pnpm-workspace.yaml lists both.

The workspace file lists the members. A filter command uses the package name, not the folder name, when those two differ.

## Style and patterns

TypeScript strict. Server Components by default. Client components only when the file needs state or a browser API.

If any of that conflicts with the linter named above, the linter wins.

## Testing instructions

Add or update a test for every behavior change. The integration test under apps/web/tests hits the route, not a mock of the route.

## Before you open a pull request

Conventional Commits. Run lint and test before opening the pull request.

## Security

Secrets live in the host environment. .env.local is gitignored. Do not put a secret in a NEXT_PUBLIC_ variable.

Do not copy a secret into this file to "clarify" a rule.

## Never do these

Do not edit .next or node_modules. Do not disable a lint rule to make a check pass. Do not commit a lockfile change you did not cause.

## Nested AGENTS.md files

Monorepo: keep cross-cutting rules here. Put package-specific install, test, and lint commands in an AGENTS.md next to that package. The closest file to the file you edit is the one to follow.

The package in view is `web`. Commands that apply only there belong in that package's AGENTS.md, not in a longer copy of this file.

The AGENTS.md homepage says the closest file to the edited file wins. Codex, separately, concatenates files from the root down and lets the closer file come last. Either way, put the exception next to the package and keep the root file short.

## Agents that read this file

Codex reads AGENTS.md before it works. It walks from the repository root down to the working directory, keeps one file per directory (AGENTS.override.md ahead of AGENTS.md), and concatenates them. Closer files come later, so they win a conflict. The combined text stops at project_doc_max_bytes, which is 32 KiB unless that setting was changed. Keep this file short, and put package-only commands in a nested file.

Cursor treats AGENTS.md as the plain-Markdown alternative to .cursor/rules. Root and nested files both apply; the nested file wins when they conflict. Leave .cursor/rules for .mdc files with frontmatter. Prefer a pointer to a doc over a copy of that doc.

Update this file when a command changes. A stale command wastes the run.
  • Pass · Project name

    The draft names Northwind.

  • Pass · Short description

    The opening section includes the description you wrote.

  • Pass · Install command

    `pnpm install` is written as a command an agent can run from the root.

  • Pass · Test command

    `pnpm test` is in the draft, with an instruction to run it before finishing.

  • Pass · Lint or format command

    Lint is `pnpm lint` and format is `pnpm exec prettier --write .`.

  • Pass · Code style

    Your style notes are in the draft. A line was added that the named linter wins if they conflict.

  • Pass · Testing instructions

    Your testing notes are included above the focus-one-test line, when that line applies.

  • Pass · Secrets and security

    Your security notes are in the draft, plus a line that says not to paste a secret into the file.

  • Pass · Things the agent must not do

    Your never-do notes are a section of their own.

  • Pass · No secrets in the draft

    The draft has no string that matches a private key, a common API-key prefix, or a token assignment.

  • Pass · Commands match the package manager

    The commands mention pnpm.

  • Pass · Monorepo / nested files

    Nested-file guidance is included, with a filter command for web.

  • Pass · Length

    The draft is 76 lines and 3,610 bytes. That fits under Codex's default 32 KiB combined cap with room for a nested file.

What does a finished draft look like?

Three inputs, three drafts, all from the same rules. The commands, the layout, and the agent notes change with the input. Regenerate on the live draft changes the wording, not the commands you typed.

Next.js + pnpm monorepo

A storefront split into a web app and a shared UI package.

Test command: pnpm test · package web

# AGENTS.md

## Project

Project: Northwind. A TypeScript Next.js storefront split into a web app and a shared UI package.

You are in a TypeScript Next.js repo. Do not introduce the Pages Router beside the App Router unless a task names that file.

This file is plain Markdown. There are no required fields. When two AGENTS.md files disagree, follow the one closest to the file you are editing. A direct instruction in the chat overrides this file.

## Commands

These are the runnable checks. Do not replace them with a command you happen to prefer.

- Install: `pnpm install`
- Dev server: `pnpm dev`
- Build: `pnpm build`
- Test: `pnpm test`
- Lint: `pnpm lint`
- Format: `pnpm exec prettier --write .`
- Typecheck: `pnpm exec tsc --noEmit`

Package `web` from the root: `pnpm --filter web test`. Lint that package with `pnpm --filter web lint`.

A change is not done until the test command above has passed, or you have reported the failure you could not fix.

Prefer the existing loading and error files in a route segment over a new wrapper.

Read package.json before you run a script. If the test script is missing, say so. Do not invent vitest, jest, or playwright.

## Directory layout

apps/web is the Next.js app. packages/ui holds shared components. pnpm-workspace.yaml lists both.

The workspace file lists the members. A filter command uses the package name, not the folder name, when those two differ.

## Style and patterns

TypeScript strict. Server Components by default. Client components only when the file needs state or a browser API.

If any of that conflicts with the linter named above, the linter wins.

## Testing instructions

Add or update a test for every behavior change. The integration test under apps/web/tests hits the route, not a mock of the route.

## Before you open a pull request

Conventional Commits. Run lint and test before opening the pull request.

## Security

Secrets live in the host environment. .env.local is gitignored. Do not put a secret in a NEXT_PUBLIC_ variable.

Do not copy a secret into this file to "clarify" a rule.

## Never do these

Do not edit .next or node_modules. Do not disable a lint rule to make a check pass. Do not commit a lockfile change you did not cause.

## Nested AGENTS.md files

Monorepo: keep cross-cutting rules here. Put package-specific install, test, and lint commands in an AGENTS.md next to that package. The closest file to the file you edit is the one to follow.

The package in view is `web`. Commands that apply only there belong in that package's AGENTS.md, not in a longer copy of this file.

The AGENTS.md homepage says the closest file to the edited file wins. Codex, separately, concatenates files from the root down and lets the closer file come last. Either way, put the exception next to the package and keep the root file short.

## Agents that read this file

Codex reads AGENTS.md before it works. It walks from the repository root down to the working directory, keeps one file per directory (AGENTS.override.md ahead of AGENTS.md), and concatenates them. Closer files come later, so they win a conflict. The combined text stops at project_doc_max_bytes, which is 32 KiB unless that setting was changed. Keep this file short, and put package-only commands in a nested file.

Cursor treats AGENTS.md as the plain-Markdown alternative to .cursor/rules. Root and nested files both apply; the nested file wins when they conflict. Leave .cursor/rules for .mdc files with frontmatter. Prefer a pointer to a doc over a copy of that doc.

Update this file when a command changes. A stale command wastes the run.

FastAPI + uv

A Python service with routers, pytest, and ruff.

Test command: uv run pytest

# AGENTS.md

## Project

Project: Harbor API. A Python FastAPI service that stores shipment status.

You are in a FastAPI repo. Do not add a second web framework.

This file is plain Markdown. There are no required fields. When two AGENTS.md files disagree, follow the one closest to the file you are editing. A direct instruction in the chat overrides this file.

## Commands

These are the runnable checks. Do not replace them with a command you happen to prefer.

- Install: `uv sync`
- Dev server: `uv run uvicorn app.main:app --reload`
- Test: `uv run pytest`
- Lint: `uv run ruff check .`
- Format: `uv run ruff format .`
- Typecheck: `uv run mypy .`

A change is not done until the test command above has passed, or you have reported the failure you could not fix.

If mypy is in the typecheck command and this repo has no mypy config, say so and skip that line rather than adding a config you were not asked for.

Dependency pins live in the lockfile the install command uses. Do not pip install a package into a uv project.

## Directory layout

app/main.py creates the app. app/routes/ holds routers. tests/ mirrors app/.

## Style and patterns

Type hints on public functions. Pydantic models for request bodies. No business logic in route functions.

If any of that conflicts with the linter named above, the linter wins.

## Testing instructions

pytest. One test file per router. Use the TestClient fixture in tests/conftest.py.

To focus one test while you iterate: `uv run pytest -k name`. The full test command still has to pass before you finish.

## Before you open a pull request

Imperative subject, under 72 characters. Name the test command you ran.

## Security

Read the database URL from the environment. Do not log request headers.

Do not copy a secret into this file to "clarify" a rule.

## Never do these

Do not run the app with reload in a command you describe as production. Do not catch Exception and ignore it.

## Agents that read this file

Codex reads AGENTS.md before it works. It walks from the repository root down to the working directory, keeps one file per directory (AGENTS.override.md ahead of AGENTS.md), and concatenates them. Closer files come later, so they win a conflict. The combined text stops at project_doc_max_bytes, which is 32 KiB unless that setting was changed. Keep this file short, and put package-only commands in a nested file.

For the Copilot coding agent, keep this AGENTS.md and keep any .github/copilot-instructions.md that already exists. Nested AGENTS.md files cover the directory they are in. Do not assume editor chat uses the same file.

Update this file when a command changes. A stale command wastes the run.

Go CLI

A small command-line tool with cmd/ and internal/.

Test command: go test ./...

# AGENTS.md

## Project

Project: shipctl. A Go command-line tool that prints the latest release notes for a module.

You are in a Go repo. gofmt is the format, and a returned error is part of the result.

This file is plain Markdown. There are no required fields. When two AGENTS.md files disagree, follow the one closest to the file you are editing. A direct instruction in the chat overrides this file.

## Commands

These are the runnable checks. Do not replace them with a command you happen to prefer.

- Install: `go mod download`
- Run: `go run ./cmd/shipctl`
- Build: `go build -o bin/shipctl ./cmd/shipctl`
- Test: `go test ./...`
- Lint: `go vet ./...`
- Format: `gofmt -w .`

A change is not done until the test command above has passed, or you have reported the failure you could not fix.

go vet failures are failures. Fix them or report them.

Module path changes are rare. Do not edit the module line in go.mod unless the task is a rename.

## Directory layout

cmd/shipctl/main.go is the binary. internal/notes parses the feed. go.mod is the module file.

## Style and patterns

Handle every error. Doc comments on exported functions.

If any of that conflicts with the linter named above, the linter wins.

## Testing instructions

Table tests in the package under test. go test ./... from the module root.

To focus one test while you iterate: `go test ./path -run Name`. The full test command still has to pass before you finish.

## Before you open a pull request

The subject says what the change does.

## Security

Do not embed a token in the binary. Read a token from the environment only when the command needs it.

Do not copy a secret into this file to "clarify" a rule.

## Never do these

Do not add a dependency for a function the standard library already has. Do not ignore err.

## Agents that read this file

Cursor treats AGENTS.md as the plain-Markdown alternative to .cursor/rules. Root and nested files both apply; the nested file wins when they conflict. Leave .cursor/rules for .mdc files with frontmatter. Prefer a pointer to a doc over a copy of that doc.

Jules looks for AGENTS.md at the repository root. Keep that root file current. This note does not claim Jules reads a nested file.

Update this file when a command changes. A stale command wastes the run.

How do you use the generator?

  1. Step 1

    Name the repo and pick the stack

    The command fields fill with the usual install, test, lint, and format lines for that stack and package manager. Edit any line this repo does not actually run.

  2. Step 2

    Add the rules you would tell a new teammate

    Layout, style, tests, pull requests, secrets, and the things an agent must not do. Leave a box blank and the draft uses a short default for that stack. Delete a default that does not match the repo.

  3. Step 3

    Choose who the notes are for

    Codex, Cursor, the Copilot coding agent, Jules, and Aider notes follow public docs read November 10, 2026. Claude Code gets a caution instead of a claim this page did not re-check.

  4. Step 4

    Copy or download, then read the checklist

    The checklist looks for a runnable install and test command, a security section, a never-do section, and a length that fits Codex’s default 32 KiB cap. Regenerate writes a different wording of the same facts. Confirm every command against the repo before you commit the file.

What did the format page actually say?

On November 10, 2026 the AGENTS.md homepage described the file as a simple, open format for guiding coding agents, a README for agents, kept separate so a human README can stay short. It said there are no required fields. It said the closest AGENTS.md to the edited file wins when instructions conflict, and that an explicit user chat prompt overrides the file. It said an agent will try to run testing commands you list. It recommended a nested file inside each package of a large monorepo. The spec repository shows the same idea in a sample: dev commands, testing instructions, and a pull-request section.

Product behavior is narrower than the homepage’s compatibility list, so this tool only adds a product note when a public doc was read that day. Codex concatenates files and stops at 32 KiB by default (OpenAI’s Codex docs). Cursor reads root and nested AGENTS.md files and tells you to keep rules under 500 lines (Cursor’s rules page). The Copilot coding agent’s August 28, 2025 changelog says it reads root and nested AGENTS.md files and still reads .github/copilot-instructions.md. Jules’ docs say it looks for AGENTS.md at the repository root. Aider loads the file only if .aider.conf.yml lists it under read.

Counts of how many repositories have the file are a different page. The live filename search is the AGENTS.md adoption tracker. The October 16, 2026 census is How many repos use AGENTS.md?.

Other free tools

Next steps

Sources

Read . A claim that is not on one of these pages is not in the generator.

Canonical URL: https://www.aiagentsinfo.com/tools/agents-md-generator

Questions people ask before they commit an AGENTS.md

The answers cite the format page or a product doc read November 10, 2026. They do not promise that an agent will obey the file.

What is an AGENTS.md file?

The AGENTS.md homepage, read November 10, 2026, calls it a README for agents: standard Markdown, with no required fields. You choose the headings. The file holds the build steps, tests, and conventions that would clutter a README written for people.

Does this generator call an AI model?

No. The draft is built in your browser from the fields you fill and from fixed text for each stack. Regenerate changes the wording of that draft. It does not call a model hosted by AI Agents Info. If Chrome offers its built-in Prompt API, Polish on this device can tighten the wording on this device. A rules draft is labeled “Your generated AGENTS.md” and is not attributed to a named model.

Is what I type stored?

No. The form is not sent to this site and it is not written to a log. Do not put secrets in the form anyway. A string that looks like a private key or a common API token is replaced with [redacted] before it is written into the draft.

Are there required fields in AGENTS.md?

No. The homepage says an agent parses the Markdown you provide. This generator uses headings for commands, style, testing, and security because that page lists those as the sections that help an agent.

How should a monorepo use AGENTS.md?

Put a shared file at the repository root and another AGENTS.md inside a package whose commands differ. The homepage says the closest file to the edited file wins, and that a chat instruction overrides the file. Codex’s docs, read November 10, 2026, describe a different mechanism with the same practical result: it concatenates files from the root down to the working directory, the closer file comes last, and the chain stops at project_doc_max_bytes, 32 KiB by default.

Will Codex, Cursor, or Copilot follow every line?

Those products can read the file. That is not a promise they will follow every line. The homepage says an agent will try to run testing commands you list, and that a direct chat instruction overrides the file. The checklist on this page scores the draft you are about to commit. It does not score a live agent run.

Can I use the file with Claude Code?

Claude Code’s own project file is CLAUDE.md. This page does not claim your build loads AGENTS.md. A research note on this site records that a paper dates Claude Code support to changelog 2.1.277 on September 18, 2026, and that this desk did not re-read that changelog. If the rules need to apply in Claude Code, copy them into CLAUDE.md.

How is this different from the prompt checker?

The prompt checker sends a prompt and tool JSON to this site so the server can check the schema and count tokens. That text is not stored. This generator never sends the form. It writes an AGENTS.md file you can copy or download.