Skip to main content

moai init Initialization

UPDATED 2026-08-08 2 min read EDIT ON GITHUB ↗

moai init initializes a MoAI project in the current directory or a new folder. It lays down the .claude/ and .moai/ structure and settings required for Claude Code integration, and — when needed — configures the project mode, language, and quality gates through an interactive wizard.

Usage

bash
moai init [project-name]
PatternBehavior
moai init <name>Create a ./<name>/ folder and initialize inside it
moai init .Initialize in the current directory
moai initInitialize in the current directory (same as moai init .)

Accepts at most 1 argument.

Key Flags

Deployment scope

FlagDescription
--allDeploy the full catalog (core + optional packs + harness artifacts). The default is core-only slim mode
--forceRe-initialize an existing project (backs up the current .moai/)
--no-hooksSkip git hook installation

Project defaults

FlagDescription
--root <dir>Project root (default: current directory)
--name <name>Project name (default: directory name)
--language <lang>Primary programming language
--framework <name>Framework (default: auto-detect or none)
--mode <ddd|tdd>Development methodology (default: tdd)
--non-interactiveSkip the interactive wizard — use flags and defaults only

Wizard question flags

FlagDescription
--project-mode <personal|team>Project mode (default: personal)
--enable-lspEnable LSP integration (default: true)
--enforce-qualityEnforce quality gates (default: true)
--enable-designEnable the design workflow (default: true)

Git / model policy

FlagDescription
--git-mode <manual|personal|team>Git workflow mode (default: manual)
--git-provider <github|gitlab>Git provider
--github-username <name>GitHub username (required for personal/team mode)
--profile <high|medium|low>Model+effort profile — stored in profile of llm.yaml (selects the profile matrix column). The legacy value max is accepted as input and normalized to high
--model-policy <high|medium|low>Legacy performance tier — stored in performance_tier of llm.yaml (read as an alias when profile is absent)

Examples

bash
# Initialize in a new folder
moai init my-app

# Initialize in the current directory
moai init .

# Specify a methodology
moai init --mode tdd

# Deploy the full catalog (bypass slim mode)
moai init --all

# Non-interactive (e.g. CI)
moai init . --non-interactive --language go
CommandDescription
moai updateSync templates for an initialized project
moai statusCheck initialization status
moai doctorValidate the environment after initialization

See also