Kiro

Kiro steering files: .kiro/steering, inclusion modes, and AGENTS.md

How do I give Kiro persistent project instructions with steering files?

Put markdown files in .kiro/steering/ in your workspace, or in ~/.kiro/steering/ for global rules, and Kiro loads them as persistent project knowledge. A YAML front matter block sets the inclusion mode: always (the default), fileMatch with a fileMatchPattern, manual, or auto. Kiro also reads AGENTS.md files, which are always included.

Where steering files live

  • Workspace steering lives in .kiro/steering/ under your project root and applies only to that workspace.
  • Global steering lives in ~/.kiro/steering/ in your home directory and applies to all workspaces.
  • If global and workspace steering conflict, Kiro prioritizes the workspace instructions.
  • Teams can share global steering by placing files into ~/.kiro/steering, for example pushed via MDM or Group Policies or downloaded from a central repository.

Kiro can generate three foundation files in .kiro/steering/: product.md (product purpose, users, features, goals), tech.md (frameworks, libraries, tools, constraints), and structure.md (file organization, naming, imports, architecture). In the IDE, open the Steering section of the Kiro panel and click Generate Steering Docs. These foundation files are included in every interaction by default.

Custom agents do not include steering automatically. Add the steering folder to the agent's resources setting to load it.

Custom agent config: load all steering files

{
  "resources": ["file://.kiro/steering/**/*.md"]
}

Inclusion modes

Set the inclusion mode with YAML front matter enclosed by triple dashes. It must be the very first content in the file, with no blank lines before it.

  • always (default): loaded into every Kiro interaction. Use it for core standards like your stack and coding conventions.
  • fileMatch: loaded only when working with files that match fileMatchPattern, which can be a single glob or an array of globs.
  • manual: loaded on demand when you reference it in chat with a hash and the file name, such as #troubleshooting-guide. Manual files also appear as slash commands.
  • auto: loaded when your request matches the required description field, similar to skills. A name field is also required.

.kiro/steering/components.md (fileMatch)

---
inclusion: fileMatch
fileMatchPattern: ["**/*.ts", "**/*.tsx"]
---

# Component conventions
- Use function components with typed props.

.kiro/steering/api-design.md (auto)

---
inclusion: auto
name: api-design
description: REST API design patterns and conventions. Use when creating or modifying API endpoints.
---

Kiro CLI V3 supports all four modes. In CLI V1 and V2, only files marked always load automatically.

AGENTS.md and file references

Kiro supports the AGENTS.md standard. Place AGENTS.md in ~/.kiro/steering/ or your workspace root, and Kiro also discovers AGENTS.md files in subdirectories, such as services/api/. AGENTS.md files do not support inclusion modes and are always included.

Steering files can link to live workspace files so the context stays current. Whole-file references work on every surface. Kiro IDE and CLI V3 also support a single line, an inclusive line range, or a one-level folder listing.

File reference syntax in a steering file

#[[file:api/openapi.yaml]]
#[[file:docs/api-guidelines.md:12-28]]
#[[folder:config]]

Workspace steering paths resolve from the workspace root, global steering from ~/.kiro/steering/, and AGENTS.md from its containing folder. Unresolved references leave a visible marker instead of being silently dropped.

Specs and MCP configuration

Specs turn a feature or bug fix into three files: requirements.md (or bugfix.md for bugs), design.md, and tasks.md. Start one from the plus button under Specs in the Kiro pane, or choose Spec from the chat pane.

MCP servers are configured in .kiro/settings/mcp.json for the workspace or ~/.kiro/settings/mcp.json for all workspaces. If both exist they are merged, with workspace settings taking precedence. Changes apply when you save the file.

.kiro/settings/mcp.json

{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": ["mcp-server-fetch"],
      "disabled": false,
      "autoApprove": []
    },
    "api-server": {
      "url": "https://api.example.com/mcp",
      "headers": {
        "Authorization": "Bearer ${API_TOKEN}"
      }
    }
  }
}

Kiro only expands environment variables you have approved in the Mcp Approved Env Vars setting.

Sources

More on Kiro

Other guides

Get the weekly agent stack update

New official MCP servers, spec changes and harness releases, checked against the source. One email a week, no fluff.

Reviewed Oct 6, 2026. Settings change often; the linked vendor docs are the source of truth.