Skip to main content

Creating a New Project

This page explains the steps to create a new project using Accel CLI (@intra-mart/accel). Accel CLI is an integrated CLI tool for iAP development that creates project templates and migrates existing projects.

Tools required for development with Accel CLI

Development with Accel CLI requires tools such as Visual Studio Code, Bun, the Java SE Development Kit, Apache Maven, and Git. Complete Prerequisites and Required Tools and Installing Tools in advance.

Migrating a project created with e Builder

If you are migrating an existing project to a VSCode development environment, skip this chapter and proceed to Migrating an Existing Project.

About Accel CLI​

Accel CLI is published as the npm package @intra-mart/accel. Since it can be run directly via Bun's bunx, no prior installation is required.

The latest version is always fetched

Running bunx @intra-mart/accel ... always fetches the latest Accel CLI from the npm registry. You will never be left with an outdated local version.

You can also run these from the VSCode UI

The init and update operations described on this page can also be run from the VSCode extension. Instead of typing commands in a terminal, you fill in the same items on a form. See Creating and Managing Projects for details.

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

Replace my-project with the name of the project you want to create.

Running this command launches the CLI in interactive mode, which will prompt you to select the agent and other options. Follow the on-screen instructions to make your selections.

Project name​

Specify the project name.

o Enter project name
Used as the directory name and recorded in pom.xml <name> and package.json name
Provide a concise name that represents the system or feature you are creating (e.g. customer-portal, invoice-management)
| my-project

Artifact ID​

Specify the artifact ID, the unique identifier for the user module. Use alphanumeric characters, hyphens (-), underscores (_), and dots (.).

o Enter artifact ID (Maven artifactId)
Recorded in pom.xml as the Maven artifactId (the artifact's identifier)
The identifier that forms the built artifact's file name (jar/war) and Maven coordinates. Defaults to the project name;
change only if you want a different identifier
| my-project

IM-Juggling project path​

Enter this if you want to specify the IM-Juggling project to which the user module will be added. Specify the path to the directory containing the project file (juggling.im). If you do not need to specify one, leave this blank.

o Enter IM-Juggling project path (optional)
If set, the iAP version and modules are auto-detected from juggling.im
Path to an existing IM-Juggling project directory you want to link; leave empty to skip (e.g.
../customer-portal-juggling)
| /path/to/juggling.im-root-directory

iAP Version​

Select the iAP version for your development environment. Project template assets (rules, skills, etc.) are deployed to match the selected version.

o Select iAP version
| iAP release version. The deployed assets (CLAUDE.md, etc.) adapt to this version
| 2026 Spring (8.0.39)

Modules to Use​

Select the iAP modules to use in the project. Additional assets (rules, skills, etc.) for the selected modules will be deployed.

o Select modules to use
| iAP optional product modules. Each selection deploys matching skills, config, and CLAUDE.md, AGENTS.md sections
| IM-Workflow, IM-BPM, Job Scheduler

Features to Use​

Select the iAP features to use in project development. Additional assets (rules, skills, etc.) for the selected features will be deployed.

o Select features to use (optional)
| iAP features used in this project. Skills and CLAUDE.md, AGENTS.md sections for the selected features will be deployed
| Script Development Model, Design System, Internationalization (multilingual support)

Group name​

Specify the group name for the project. The group name is used as the unique identifier for the user module's group (group ID). Use alphanumeric characters, underscores (_), and dots (.).

o Enter group name
Recorded in pom.xml as the Maven groupId (dot-separated organization identifier)
An identifier for your organization or team; reverse-domain notation reduces collisions (e.g. com.example,
jp.co.intramart.app)
| com.example

Project version​

Specify the version number for the project.

o Enter project version
Recorded in pom.xml <version> and package.json version
The release version of your project; Semantic Versioning (MAJOR.MINOR.PATCH) is common (e.g. 0.1.0, 1.0.0-SNAPSHOT)
| 0.1.0

Project description​

Enter a description of the project (purpose, overview, etc.).

o Enter project description
Recorded in pom.xml <description> and used in headers of CLAUDE.md and similar files
A short description of what this system does; being specific helps future readers and search (e.g. Portal to manage
customer information)
| This is a sample project.

Database​

Select the type of database to use in the user module.

o Select database
| The DB iAP connects to. Used to generate sample config and example connection strings in assets
| postgresql

JavaScript usage in scripting​

Specify whether to use JavaScript for Server Side JavaScript (SSJS) development.

o Use JavaScript instead of TypeScript?
| Affects the whole project setup (presence of tsconfig.json, pom.xml / package.json dependencies and
| scripts, agent asset language guidance)
| Yes

Agent​

Select the agent to use for development. You can choose from GitHub Copilot, Claude Code, and OpenAI Codex. Multiple selections are allowed.

o Select agent
| claude-code deploys under .claude/, codex deploys under .codex/, github-copilot deploys under .github/
| (instructions, skills, etc.)
| github-copilot

Git repository initialization​

Choose whether to put the project under version control. If you select Yes, a Git repository will be initialized.

o Initialize Git repository?
| Runs git init inside the created project directory
| Yes
Details on options

For details on init command options (such as agent selection), refer to the Accel CLI README.

Contents of the Project Template​

Once the init command completes, a structure like the following is generated under a directory with the same name as the project. The role of each element is shown in the comments in the tree.

my-project
├ src - Directory for the user module's code and resources
├ d.ts - TypeScript type definitions for the scripting API (im-BizAPI)
├ .accel
│ └ settings.json - Accel CLI project settings
├ module.xml - Module metadata file
├ package.json - Defines dependencies and scripts such as build
├ pom.xml - Maven project definition file
├ settings.xml - Maven settings file (repository definitions)
├ .claude - Generated if Claude Code is selected
├ .github - Generated if GitHub Copilot is selected
└ .codex - Generated if Codex is selected

Depending on the agents you select, .claude/, .github/, and .codex/ are generated as applicable. The overall structure, including the generated files, is as follows:

my-project/
├── src/
├── d.ts/
├── .accel/
│ ├── settings.json
│ └── ...
├── module.xml
├── package.json
├── pom.xml
├── settings.xml
├── .claude/ # Generated if Claude Code is selected
│ ├── CLAUDE.md
│ └── ...
├── .github/ # Generated if GitHub Copilot is selected
│ ├── copilot-instructions.md
│ └── ...
├── .codex/ # Generated if OpenAI Codex is selected
│ ├── AGENTS.md
│ └── ...
...

The resource layout under the src directory follows the specification for the predefined directories described in Resource Layout.

module.xml is the module metadata file. For details, refer to Module Metadata (module.xml).

The roles of the main files and directories are as follows:

File / DirectoryDescription
src/Contains the user module's code and resources.
d.ts/TypeScript type definition files for the iAP scripting API (im-BizAPI).
.accel/settings.jsonAccel CLI project settings. Records the selected agent and other options.
module.xmlModule metadata file. For details, refer to Module Metadata (module.xml). For how it is handled in e Builder, refer to the intra-mart e Builder for Accel Platform Application Development Guide - module.xml.
package.jsonProject configuration file. Contains dependency declarations and script definitions such as build. Running bun run build executes the build script defined in this file.
pom.xmlMaven project definition file. Defines which libraries to use during build and where to output the artifacts.
settings.xmlMaven settings file. Defines the repositories (sources for libraries) to use.
.claude/Generated if Claude Code is selected. Contains instructions, rules, and skills for Claude Code.
.claude/CLAUDE.mdGenerated if Claude Code is selected. Helps Claude Code understand the project overview.
.github/Generated if GitHub Copilot is selected. Contains instructions, rules, and skills for GitHub Copilot.
.github/copilot-instructions.mdGenerated if GitHub Copilot is selected. Project instructions passed to GitHub Copilot.
.codex/Generated if OpenAI Codex is selected. Contains instructions, rules, and skills for OpenAI Codex.
.codex/AGENTS.mdGenerated if OpenAI Codex is selected. Project instructions passed to OpenAI Codex.
The relationship between GAV and module metadata

The <groupId> / <artifactId> / <version> (GAV) in pom.xml and the <id> / <version> (module metadata) in module.xml are separate pieces of identifying information used for different purposes. GAV is used for building and dependency resolution, while the module metadata is used to identify the module on iAP.

Based on the group name and artifact ID you enter in the init interactive prompts, Accel CLI automatically generates the <id> in module.xml as <groupId>.<artifactId> (e.g., com.example + my-project → com.example.my-project), and sets <version> to the same value as pom.xml.

Contents of the agent directories

The .claude / .github / .codex directories contain convention files, skill sets, and hook configurations that support agent-driven development (vibe coding).

Updating the Template​

The project template is expected to be updated periodically. To incorporate the latest template changes into your project, run the update command from the project root directory:

bunx @intra-mart/accel update
  • The contents of files you have edited are preserved. If your edits overlap with template updates, conflict markers in the same format as git (<<<<<<<) are inserted, so check the list of affected files shown at the end and resolve those files manually.
  • In interactive mode, you are first asked whether to reuse the existing settings (default: Yes). If you reuse them, the update proceeds as is; if you choose to re-enter them, you can change settings such as the iAP version, modules, and agent, with the current values as defaults.
  • After the update, install / build run automatically (they are skipped when conflicts occur, to avoid a build failure before resolution).
  • To run non-interactively, use bunx @intra-mart/accel update --non-interactive (settings you do not specify keep their current values). For the full list of options, see the npm README.
Commit before running update

Running with uncommitted changes is not recommended (a warning is shown). Committing before the update lets you return to the pre-update state if anything goes wrong.

If update is not available

update is only available for projects deployed from the asset repository (a git source). If it is not available — for example, in projects created with an older version of the CLI — replace the assets with detach → attach as before (note that this procedure does not merge your edits):

bunx @intra-mart/accel detach
bunx @intra-mart/accel attach
If you are migrating an existing project

To migrate an existing module project created with intra-mart e Builder for Accel Platform (an Eclipse-based integrated development environment) to a VSCode development environment, run bunx @intra-mart/accel attach in the root directory of the project you are migrating. For details, refer to Migrating an Existing Project.

Verification​

Navigate to the project directory and confirm that the main files have been generated.

Windows (PowerShell):

cd my-project
ls ('src', 'd.ts', '.accel/settings.json', 'module.xml', 'package.json', 'pom.xml', 'settings.xml')

Expected output on success:

Directory: C:\Users\username\my-project\src

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2026/04/27 10:30 0 .gitkeep

Directory: C:\Users\username\my-project \d.ts

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2026/04/27 10:30 bpm
d----- 2026/04/27 10:30 master
...

Directory: C:\Users\username\my-project\.accel

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2026/04/27 10:30 66025 settings.json

Directory: C:\Users\username\my-project

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2026/04/27 10:30 615 module.xml
-a---- 2026/04/27 10:30 380 package.json
...

macOS / Linux:

cd my-project
ls src d.ts .accel/settings.json module.xml package.json pom.xml settings.xml

Expected output on success:

.accel/settings.json module.xml package.json pom.xml settings.xml

d.ts:
bpm master ...

src:

If all files are present, the step is complete.

Git Repository Initialization and Verification (if Git initialization was selected)​

If you chose to initialize a Git repository when creating the project, a .git directory has been created. Run the following commands to commit the files and verify that the initial commit was created.

Windows (PowerShell):

cd my-project
git add .
git commit -m "Initial commit"
git log --oneline

macOS / Linux:

cd my-project
git add .
git commit -m "Initial commit"
git log --oneline

If the commit history is displayed, the step is complete. Example:

abc1234 (HEAD -> master) Initial commit
If a problem occurs during new project creation

Refer to the "CLI Execution and Verification Issues" section of Troubleshooting.