Creating a Mobile Project
This page explains how to create a mobile project with Accel CLI (@intra-mart/accel).
For the basic usage of Accel CLI, see Creating a New Project.
Requirements
| Item | Contents |
|---|---|
| Accel CLI | 2.0.0 or later. Running it with bunx @intra-mart/accel uses the latest version |
| Bun | Used to run Accel CLI and to manage the app's dependencies (Installing Tools) |
| Node.js / npm | v22 or later. Used to run Expo tools. Required even when you use Bun as the package manager |
| Git | Used for the initial commit made by create-expo and for installing the official Expo skills |
| Network | Access to the npm registry and GitHub |
Java (JDK) and Maven, which are used for developing iAP user modules, are not used in a mobile project.
To run the app on a device or emulator, you also need one of the following. For details, see AI Native Development Flow.
- To build locally: Android Studio (Android) or Xcode (iOS, macOS only)
- To build with EAS: an Expo account
Creating a New Project
Navigate to a directory of your choice (e.g., ~/projects), then run the following command:
bunx @intra-mart/accel init my-app
Replace my-app with the name of the project you want to create.
Running this command launches the CLI in interactive mode, which asks for the settings. Follow the on-screen instructions to make your selections.
Project type
Select Mobile project (Expo + smartlime).
o Select the project type
| Choose iAP module development, or development of a mobile app (Expo + smartlime) that works with iAP
| Mobile project (Expo + smartlime)
Project name
Specify the project name. Lowercase letters, digits, and @ . _ - are allowed, and the name must start with a lowercase letter or a digit.
o Enter project name
Used as the directory name and as the app name (set by create-expo)
Lowercase letters, digits, and @ . _ - are allowed; start with a lowercase letter or a digit (e.g. field-report)
| my-app
iAP version the app works with
Select the iAP version the app works with. The contents of the deployed assets change with the APIs available.
o Select the iAP version the app works with
| The iAP version the app works with. The deployed assets change with the APIs available
| 2026 Autumn (8.0.40)
Expo SDK
Select the app's Expo SDK. Only SDKs supported by smartlime are listed.
o Select the Expo SDK
| The SDK targeted by the create-expo template and the deployed assets. Only SDKs supported by smartlime are listed
| Expo SDK 56
Agents to use
Select the agents to use for development. You can choose from Claude Code and OpenAI Codex, and you can select more than one.
o Select agent
| Instructions and skills for the selected agents are deployed
| Choosing Codex also lets you install the official Expo skills
| claude-code, codex
GitHub Copilot cannot be selected for a mobile project.
Installing the official Expo skills
This is shown when you select Codex as an agent. Selecting Yes installs the official Expo skills published by Expo into .agents/skills/.
o Install the official Expo skills?
| Fetched from github.com/expo/skills for Codex and placed in .agents/skills
| Command: ...
| Yes
For Claude Code, a setting that enables the official Expo plugin for Claude Code is deployed instead, so this question is not asked.
Confirming the settings
Finally, the settings you entered and the list of commands to run are displayed. Check them and select Yes to start creating the project.
o Deployment settings ──────────────────╮
| |
| Project name: my-app |
| Target iAP version: 2026-autumn |
| Expo SDK: 56 |
| Agents: claude-code, codex |
| ... |
| |
| Commands to run: |
| ... |
| |
├───────────────────────────────────────╯
o Create the project with these settings?
| Yes
The init command performs the following steps in order.
- Runs Expo's official create-expo to create the app scaffold. create-expo also installs the dependencies and makes the initial Git commit.
- Deploys assets such as the smartlime skill set and
AGENTS.md. - If you chose to install the official Expo skills for Codex, installs them into
.agents/skills/.
When creating a mobile project, Accel CLI internally runs external packages such as create-expo. The versions used are determined automatically according to the Expo SDK. Each package behaves according to the specifications of its provider.
After creation
The deployed assets remain as uncommitted changes. Review them and commit.
cd my-app
git add -A
git commit -m "Add Accel assets"
Project Contents
A mobile project consists of the files created by create-expo plus the assets deployed by Accel CLI.
my-app
├ src
│ └ app - Directory for screens (Expo Router routes)
├ assets - Icons and images
├ app.json - App settings (name, URL scheme, etc.)
├ package.json - Defines dependencies and scripts such as start
├ .accel
│ └ settings.json - Accel CLI project settings
├ AGENTS.md - Convention file for agents
├ CLAUDE.md - Generated when Claude Code is selected (loads AGENTS.md)
├ .claude - Generated when Claude Code is selected
│ ├ settings.json - Setting that enables the Expo plugin
│ └ skills - smartlime skill set
├ .agents - Generated when Codex is selected
│ └ skills - smartlime skill set and official Expo skills
└ .codex - Generated when Codex is selected
└ config.toml - Expo MCP server settings
For the role of each file, see Skill Sets.
Deploying Assets to an Existing Expo Project
You can also deploy only the mobile project assets to an existing Expo project. Run the attach command in the project's root directory.
cd my-existing-app
bunx @intra-mart/accel attach
The Expo SDK is determined from the version of expo in package.json. For a project that uses expo, the default project type is a mobile project.
Updating Assets
To bring the assets up to date, run the update command in the project's root directory. Edited files are handled the same way as in an iAP project (Updating the Template).
bunx @intra-mart/accel update
updateupdates only the assets. It does not update the app's Expo SDK.- If you run
updateafter raising the app's Expo SDK, you are asked whether to switch the assets to the ones for the new SDK. - The official Expo skills are not managed by Accel CLI. Update them with
npx skills update.
Differences from an iAP Project
| Command | Handling in a mobile project |
|---|---|
init / attach | Creates the project with create-expo. Settings specific to iAP (modules, features, database, artifact ID, etc.) are not asked |
update | Updates the assets. Does not update the Expo SDK |
switch / preset | Only the agents can be switched |
deploy | Not available (the app is not deployed to iAP) |
For details such as the options for non-interactive mode, see "Mobile App Development (Expo + smartlime)" in the Accel CLI README.