Home › Rules › Bolt mobile app (Expo)

Bolt mobile app (Expo) rules: Project Knowledge template + AGENTS.md

Free to copy. Checked against the official docs on Oct 19, 2026 (sources below).

Bolt builds phone apps with Expo, but only if you say "mobile app" from the very first prompt. These rules keep the app phone-first, testable on your own phone, and free of leaked keys.

Stack these rules assume: Bolt + Expo (React Native) for iPhone and Android. Different stack? Customize it in the generator.

Where these go: Start the project with a first prompt that says "mobile app" (Bolt's docs say web projects don't easily switch to mobile later). Then paste the rules into Project settings → Knowledge.

Quick start

  1. Copy the Project Knowledge below.
  2. In Bolt, open Project settings → Knowledge and paste it.
  3. Fill in the [bracketed] lines. Delete any rule that doesn't fit.
  4. Start your next message with: "Follow the project knowledge for this whole session."

Project Knowledge for Bolt (copy this)

Paste it into Project settings → Knowledge. It also works as-is in Lovable's Project Knowledge. It skips the Commands section, since the builder runs the project for you.

Project Knowledge (paste into Bolt)
# Project rules: Bolt mobile app (Expo)

Instructions for AI coding agents working on this project. Replace anything in [brackets].

## Project
- What it is: [one sentence: what you are building and who it is for]
- Stack: Bolt + Expo (React Native) for iPhone and Android
- Version 1 only needs to: [the ONE thing it must do]

## Project rules
- This is a mobile app built with Expo. Design for phone screens first, and keep it working on both iPhone and Android.
- Use packages that work with Expo. Ask before adding anything that needs custom native code.
- Anything inside the app is public. Secret keys stay in server functions, never in the app code.
- After each change, tell me what to tap on my phone to check it.
- Every screen that loads data shows a loading state, an empty state, and an error message.
- Ask before changing anything to do with publishing: app name, icons, bundle IDs, or store listings.

## How to work
- Do one task per request. If my request is really several tasks, list them and do only the first.
- Before writing code, give a 3-line plan: what you'll change, which files, and how I'll test it.
- Make the smallest change that works. Don't refactor, rename, or reformat code I didn't ask about.
- Ask before adding a dependency, deleting or moving files, changing the data/database structure, or touching more than 3 files.
- If you're not sure a library, API, or setting exists in the version we use, say so and check the installed package or the docs instead of guessing.
- Never say something works unless you ran it or I confirmed it. Report errors exactly.
- Secrets (API keys, tokens, passwords) live only in environment variables or a .env file listed in .gitignore. Never print, hardcode, or commit them.
- Never run destructive commands (rm -rf, git reset --hard, force-push, dropping tables) without asking first.

## Finish every task with
1. What changed (list the files).
2. How to run or test it in under a minute, and what I should see.
3. A suggested git commit message.

Building this in a browser app builder? These rules work as Project Knowledge in both. Try Bolt

Disclosure: the Bolt link is an affiliate (referral) link. If you sign up or buy through it, VibeKits may earn a commission at no extra cost to you. It never changes our pick.

AGENTS.md (if you sync to GitHub or work locally)

Same rules as a file, for when you export the code or keep editing it in Cursor, Codex, Copilot or Claude Code.

AGENTS.md
# AGENTS.md: Bolt mobile app (Expo)

Instructions for AI coding agents working on this project. Replace anything in [brackets].

## Project
- What it is: [one sentence: what you are building and who it is for]
- Stack: Bolt + Expo (React Native) for iPhone and Android
- Version 1 only needs to: [the ONE thing it must do]

## Project rules
- This is a mobile app built with Expo. Design for phone screens first, and keep it working on both iPhone and Android.
- Use packages that work with Expo. Ask before adding anything that needs custom native code.
- Anything inside the app is public. Secret keys stay in server functions, never in the app code.
- After each change, tell me what to tap on my phone to check it.
- Every screen that loads data shows a loading state, an empty state, and an error message.
- Ask before changing anything to do with publishing: app name, icons, bundle IDs, or store listings.

## How to work
- Do one task per request. If my request is really several tasks, list them and do only the first.
- Before writing code, give a 3-line plan: what you'll change, which files, and how I'll test it.
- Make the smallest change that works. Don't refactor, rename, or reformat code I didn't ask about.
- Ask before adding a dependency, deleting or moving files, changing the data/database structure, or touching more than 3 files.
- If you're not sure a library, API, or setting exists in the version we use, say so and check the installed package or the docs instead of guessing.
- Never say something works unless you ran it or I confirmed it. Report errors exactly.
- Secrets (API keys, tokens, passwords) live only in environment variables or a .env file listed in .gitignore. Never print, hardcode, or commit them.
- Never run destructive commands (rm -rf, git reset --hard, force-push, dropping tables) without asking first.

## Finish every task with
1. What changed (list the files).
2. How to run or test it in under a minute, and what I should see.
3. A suggested git commit message.

Want a step-by-step kit?

Our paid templates ($6 to $9) add a full prompt sequence and a worked example on top of rules like these, for games, Discord bots, email triage, MVPs and fixing messy code.

Browse the kits → or get all 5 kits for $25 (save $14) →

Why each rule exists

Use it as CLAUDE.md (Claude Code)

Pick one:

  1. Do nothing. Current Claude Code versions read AGENTS.md when the project has no CLAUDE.md. Run /memory in a session to check it loaded.
  2. Import it (best if you want Claude-only extras, or you're on an older Claude Code). Create CLAUDE.md next to AGENTS.md:
CLAUDE.md (imports AGENTS.md)
@AGENTS.md

## Claude Code
- Use plan mode before any change that touches more than 3 files.
  1. Claude only? Save the same AGENTS.md text as CLAUDE.md instead. Don't keep two separate copies; they drift apart.

Heads-up: if a project has both files and CLAUDE.md doesn't import AGENTS.md, Claude Code reads only CLAUDE.md by default. More in AGENTS.md vs CLAUDE.md.

Use it as Cursor rules (.cursor/rules/*.mdc)

Cursor reads AGENTS.md too, so the file above already works. If you prefer Cursor's own Project Rules, split it into two .mdc files. The .mdc extension and frontmatter are required; Cursor ignores plain .md files in .cursor/rules.

.cursor/rules/core.mdc
---
description: Project overview and working rules for Bolt mobile app (Expo)
alwaysApply: true
---

# Bolt mobile app (Expo)

Instructions for AI coding agents working on this project. Replace anything in [brackets].

## Project
- What it is: [one sentence: what you are building and who it is for]
- Stack: Bolt + Expo (React Native) for iPhone and Android
- Version 1 only needs to: [the ONE thing it must do]

## How to work
- Do one task per request. If my request is really several tasks, list them and do only the first.
- Before writing code, give a 3-line plan: what you'll change, which files, and how I'll test it.
- Make the smallest change that works. Don't refactor, rename, or reformat code I didn't ask about.
- Ask before adding a dependency, deleting or moving files, changing the data/database structure, or touching more than 3 files.
- If you're not sure a library, API, or setting exists in the version we use, say so and check the installed package or the docs instead of guessing.
- Never say something works unless you ran it or I confirmed it. Report errors exactly.
- Secrets (API keys, tokens, passwords) live only in environment variables or a .env file listed in .gitignore. Never print, hardcode, or commit them.
- Never run destructive commands (rm -rf, git reset --hard, force-push, dropping tables) without asking first.

## Finish every task with
1. What changed (list the files).
2. How to run or test it in under a minute, and what I should see.
3. A suggested git commit message.

The project rules only attach when a matching file is in the chat (globs with alwaysApply: false). Want them on all the time? Change it to alwaysApply: true.

.cursor/rules/bolt-mobile-app-expo.mdc
---
globs: app/**/*.tsx, components/**/*.tsx
alwaysApply: false
---

# Project rules: Bolt mobile app (Expo)

- This is a mobile app built with Expo. Design for phone screens first, and keep it working on both iPhone and Android.
- Use packages that work with Expo. Ask before adding anything that needs custom native code.
- Anything inside the app is public. Secret keys stay in server functions, never in the app code.
- After each change, tell me what to tap on my phone to check it.
- Every screen that loads data shows a loading state, an empty state, and an error message.
- Ask before changing anything to do with publishing: app name, icons, bundle IDs, or store listings.

Use either AGENTS.md or these .mdc files, not both, so you don't send the same rules twice. See Cursor rules vs AGENTS.md.

Related

Sources

Checked Oct 19, 2026. These tools change often; if something here no longer matches, tell us at [email protected].

Get the free Starter Rules, emailed instantly

  • A copy-paste rules file to save as AGENTS.md or CLAUDE.md, or paste into Lovable, Bolt, v0 or Replit: small steps, ask before risky changes, no fake "it works", secrets kept out of code.
  • A kickoff prompt that makes your AI ask up to 3 questions and plan 5 to 8 small, testable steps before it writes any code.
  • The habit that saves projects: work, test, commit.

After that, an occasional email when we publish a new guide or rules file.

Free. No spam. Unsubscribe anytime. See our privacy note.