PlugWiki

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. 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. 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

  1. src/ and src/app
  2. components/ — reusable UI
  3. screens/ — screen bodies
  4. server/ + app/api/ — separate server code
  5. Platform-specific code
  6. Colocate styles and tests
  7. AI and config files
  8. Submitting Feedback

Key facts

Installs on skills.sh
23,614 (data from 2026-11-02)
Last repo commit
2026-11-01

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 only

  • App 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/app

  • Reusable 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 files

  • StyleSheet 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 tests

  • AGENTS.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 files

  • Can 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 toExpo feedback service, only if the agent sends feedback. mcp.expo.dev (plugin route only)
Scopes
  • Creates folders and files in a new Expo project

  • May run npx @expo/agent-cli feedback to send feedback to Expo

  • Plugin route only: installs every skill in the Expo plugin (23 SKILL.md files at plugins/expo/skills) and adds the Expo MCP server https://mcp.expo.dev/mcp

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

expo/skillsskills.sh

Sources

Docs, issue trackers and discussions this page is built from.

Show all 5
  1. expo/skills README · github.com
  2. Expo plugin .mcp.json · github.com
  3. skills CLI commands · github.com
  4. expo-project-structure SKILL.md · github.com
  5. Expo plugin plugin.json · github.com

Updated Nov 2, 2026.