expo-project-structure skill: lay out a new Expo Router app with a clean src/ folder structure
Gives your agent a folder layout for a brand-new Expo Router app, so files land in the right place from the start.
- Installs
- 23.6K
- on skills.sh
- Stars
- 4K
- on GitHub
- Files
- 1
- besides SKILL.md
- Updated
- Nov 2026
- last repo commit
expo-project-structure is an official skill from the Expo team. When you scaffold a new Expo app or ask where a file belongs, your agent follows its layout: app code under src/, a routes-only src/app, screens in src/screens, reusable UI in src/components, and server code split into src/server and src/app/api.
It is for new projects only. SKILL.md says that if an app already has a layout, the agent should follow it and not move files, and to ask when unsure whether a project is new. Its guidance is based on a blog post by Kadi Kraman.
Good for
- Developers starting a new Expo or React Native app
- Teams that want one agreed folder layout for Expo Router
- Anyone unsure where a screen, helper or API route should live
Install expo-project-structure
Claude Code
- 1
Copy this prompt.
Install the expo-project-structure skill in Claude Code. Run this command: claude plugin install expo@claude-plugins-official Then check that it loaded and tell me how to use it.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Pick one route, not both. The README recommends the plugin for Claude Code. It installs all of the Expo skills and also adds a connection to the Expo MCP server at https://mcp.expo.dev/mcp, which lets your agent read Expo docs and work with EAS builds. The skills CLI route installs only expo-project-structure.
From the project README. Source.
What's in the skill
When it loads
Folder structure for a new Expo app. Use when scaffolding or laying out a new Expo project with Expo Router, or deciding where a file should live in one. For new projects only — never restructure an existing app to match.
Sections in SKILL.md
- src/ and src/app
- components/ — reusable UI
- screens/ — screen bodies
- server/ + app/api/ — separate server code
- Platform-specific code
- Colocate styles and tests
- AI and config files
- Submitting Feedback
Key facts
- Author
- Expo team (expo/skills, described as official Expo skills); guidance based on a post by Kadi Kraman
- Installs on skills.sh
- 23,614 (data from 2026-11-02)
- License
- MIT (frontmatter and README)
- Last repo commit
- 2026-11-01
- What is inside
- 2 files: SKILL.md and agents/openai.yaml, no scripts
What it includes
Never restructures an app that already has a layout
If the app has a layout, the agent follows its conventions and leaves files where they are. When unsure, it asks before moving anything.
Try: “Scaffold a new Expo Router app and set up the folder structure.”
Read ·
New projects onlyApp code under src/, src/app holds routes only
Every file in src/app becomes a route, so nothing else goes there. The default template aliases @/* to ./src/*.
Write ·
src/ and src/appReusable UI in kebab-case files, one named export each
A complex component gets its own folder with index.tsx and colocated helpers.
Write ·
components/Screen bodies that route files render
Big screens live in src/screens and each route file just renders its screen. A screen's private components stay in its own folder.
Write ·
screens/Server API routes grouped away from frontend code
Files ending in +api go under src/app/api and shared server helpers go in src/server. It also suggests ESLint rules that fence server files off.
Write ·
server/ and app/api/bar-chart.tsx plus bar-chart.web.tsx
Small differences use Platform.select. Larger ones split into .ios, .android, .native or .web files with identical props and a required default file.
Write ·
Platform-specific filesStyleSheet at the bottom of the file, tests beside the code
Prefers format-date.test.ts next to format-date.ts over a separate __tests__ folder.
Write ·
Colocate styles and testsAGENTS.md or CLAUDE.md at the root, config outside src/
app.json, eas.json, package.json, assets/ and scripts/ stay outside src/.
Read ·
AI and config filesCan send feedback about the skill to Expo
SKILL.md tells the agent to run npx --yes @expo/agent-cli@latest feedback for specific, actionable problems with the skill, or after repeated failures at an Expo task.
Runs code ·
Feedback command
From the official docs
Permissions
Low risk
The skill creates folders and files and may run an npx command that sends feedback about the skill to Expo. Use it in a fresh repo and read any feedback text before you approve it.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
The plugin route adds a remote MCP server
The Expo plugin the README recommends for Claude Code and Codex ships a .mcp.json that registers an http MCP server at https://mcp.expo.dev/mcp, on top of the 23 skills in plugins/expo/skills. Its plugin.json lists a name, version (1.14.3), description and author. The skills CLI route installs only this one skill and adds no MCP server. github.com
It creates folders and files
The skill sets up a src/ layout in the project. Use it in a new repo and review the changes in git.
It can send feedback to Expo
SKILL.md tells the agent to run npx --yes @expo/agent-cli@latest feedback with a short report about the skill. Read the text first if you do not want details of your task shared.
Technical details
| Talks to | Expo feedback service, only if the agent sends feedback. mcp.expo.dev (plugin route only) |
|---|---|
| Scopes |
|
Questions
What does the expo-project-structure skill do?
It gives your agent a standard folder layout for a new Expo app. The layout keeps routes, screens, components and server code in separate folders.
How do I install it in Claude Code?
Use the install box at the top of this page. The Expo README recommends its plugin for Claude Code, and the box also shows the skills CLI route for this skill only.
Will it reorganize my existing app?
No. SKILL.md says it applies to new projects only and that an existing layout should be left alone. If it is unsure whether your project is new, it should ask first.
Does it need an API key or cost anything?
SKILL.md names no key and no paid service. The skill is MIT licensed.
Is it safe?
It tells the agent to create folders and files in a new project, so run it in a fresh repo and check git status. It can also send feedback about the skill to Expo through an npx command, so read any feedback text before you approve it.
Does it work in the Claude app, Codex or Cursor?
The Expo README documents Claude Code and Codex plugins and the skills CLI for Cursor, OpenCode, Copilot and others. It documents no Claude app route.
Information
updated Nov 2, 2026
- Repository
- expo/skills
- Folder
plugins/expo/skills/expo-project-structure
Sources
Docs, issue trackers and discussions this page is built from.
Show all 5Hide
- expo/skills README · github.com
- Expo plugin .mcp.json · github.com
- skills CLI commands · github.com
- expo-project-structure SKILL.md · github.com
- Expo plugin plugin.json · github.com