The files Expo wrote for Claude
By the end of this lesson you know what the three agent files in your new project are, which one to write in, and why. You will have added four rules to AGENTS.md that describe your actual machine — no emulator, Windows, physical phone — and started Claude Code inside the project so it reads them.
Open the project folder in a file explorer and turn on hidden files. Alongside the things you would expect — app, package.json, app.json — there are three you did not ask for.
create-expo-app writes them by default, and that changes what this course is: directing an agent to build a mobile app is now the vendor-supported workflow rather than a clever hack. If you ever want a project without them, npx create-expo-app@latest --no-agents-md skips all three.
What each one is for
AGENTS.md points the agent at the Expo documentation that matches your project's SDK version. That sentence is worth more than it looks: models were trained on older Expo, and a lot of AI-written Expo code is two, three or four SDK versions out of date and confidently wrong. This file is the correction.
CLAUDE.md contains one line: @AGENTS.md. That imports AGENTS.md into Claude Code's context.
.claude/settings.json pre-enables the official Expo plugin from the Claude Code plugin marketplace.
Three files rather than one because each targets a different agent convention, so the same project works with Claude Code, Codex or Cursor without per-agent configuration.
Why does CLAUDE.md exist at all if it holds one import? Because Claude Code reads CLAUDE.md, not AGENTS.md. Anthropic's documentation recommends exactly this pattern: if a repository already uses AGENTS.md for other agents, create a CLAUDE.md that imports it, so both tools read the same instructions without duplicating them. A symlink would work too, but on Windows a symlink needs Administrator rights or Developer Mode. The import does not.
So the rule for the rest of this course, and it is Expo's own guidance:
Put project instructions in
AGENTS.md, notCLAUDE.md. One place, every agent, no duplication.
Your first edit
AGENTS.md as written knows about Expo. It does not know about you: that you are on Windows, that there is no emulator on this machine, that the test device is a phone on your desk.
Open AGENTS.md in any text editor — Notepad is fine — and add these four rules at the bottom.
## This project's machine
- Run on a physical Android device via `npx expo start`. Never assume an
emulator or simulator is available.
- Install packages with `npx expo install <package>`, never `npm install`,
so versions match the SDK.
- This project is developed on Windows. Never suggest Xcode, CocoaPods, or
`npx expo run:ios`.
- Do not run `npx expo prebuild` without asking me first.Every line prevents something specific. The first stops the four-hour emulator detour from lesson 2. The second matters more than it reads: npx expo install picks the package version matching your SDK, npm install picks the newest, and that mismatch is the commonest cause of an Expo build failing for reasons nobody can explain. The third saves you being told to open Xcode on a machine that cannot run it. The fourth is a guard rail — as of SDK 57, expo prebuild clears and regenerates the native folders by default.
Keep the file short. Anthropic's guidance is under 200 lines — longer files consume more context and reduce adherence, which is the unglamorous reason an agent sometimes ignores an instruction you definitely wrote down.
Module 4 adds one more rule here, the one that stops Claude spending your money on builds you did not authorise. It can wait until there is money to spend.
Start Claude inside the project
This is where the account from lesson 1 starts to matter: from here Claude has to run in the folder and read and write your files, and that needs a subscription or Console credits.
Run it from inside the project folder, not from your Documents folder. Leave the dev server running in its own window.
claudeClaude Code reads CLAUDE.md from the folder you start it in and every folder above, so starting it here is what loads @AGENTS.md and your four rules. One directory up loads nothing, and you get a confident agent with no idea what machine it is on.
Ask it a question with a checkable answer:
Read AGENTS.md and tell me, in one sentence each, the four rules I added about this machine.If it comes back with your four rules, the chain works. If it comes back with something general about Expo, you started it in the wrong folder.
The plugin and the MCP server
Two more first-party pieces exist, and both become properly useful in module 4.
The official Claude Code plugin installs Expo's skills and registers Expo's MCP server in one step. Run it from inside a session with /plugin install expo@claude-plugins-official. The skills are discovered from the conversation rather than invoked as slash commands, so there is no list to memorise.
The Expo MCP server lives at https://mcp.expo.dev/mcp and gives the agent live access to current Expo documentation, your build history and — the part that matters later — the ability to screenshot your running app and tap on it. That is module 4's signature lesson, and the answer to the oldest complaint about AI app-building: that the model cannot see the phone.
I-check ito
- You can find
AGENTS.md,CLAUDE.mdand.claude/settings.jsonin your project CLAUDE.mdcontains an import ofAGENTS.mdrather than a copy of it- Your four machine rules are in
AGENTS.md, not inCLAUDE.md claudestarts from inside the project folder- Asked to read
AGENTS.md, it lists your four rules back to you
Kung makikita mo Claude does not seem to know about my rules
Two causes, in order of likelihood. You started Claude Code from a folder above the project, so it never read the project's CLAUDE.md — exit, cd into the project, start again. Or you put the rules in CLAUDE.md and something overwrote it; move them to AGENTS.md, which is where they belong anyway.
Kung makikita mo Every message triggers a login that fails with a 401
Reported in June 2026: inside an Expo project directory, every message triggered an automatic /login that failed and left Claude Code unresponsive, while the same session worked normally outside the project. Deleting .claude and emptying the enabled-plugins list did not fix it for the person who reported it. If it happens to you, you have not done anything wrong — check whether the report is still open before you lose an evening to it.
What you just learned
create-expo-appwritesAGENTS.md,CLAUDE.mdand.claude/settings.jsonby default;--no-agents-mdopts out.AGENTS.mdpoints the agent at SDK-matched Expo docs, which is the correction for a model trained on older Expo.- Claude Code reads
CLAUDE.md, soCLAUDE.mdimportsAGENTS.mdwith@AGENTS.md— an import rather than a symlink, because symlinks need Administrator rights on Windows. - Project instructions go in
AGENTS.md, kept under about 200 lines, because long files reduce adherence. - Claude Code loads that chain from the folder you start it in, so start it inside the project.
pagsasanay
Buksan ang Claude Cowork sa sarili mong computer at subukan ito sa totoong mga file. Nagtatapos ang bawat module sa isang checkpoint kung saan isusumite mo ang ginawa mo.
Buksan sa ClaudeSusunod
Your first change, without typing code