Project and AI Commands
ldev project init
Create a new project scaffold linked to local tooling.
ldev project init --list-liferay-versions
ldev project init my-project
ldev project init my-project --liferay-version dxp-2026.q1.7-lts --services postgres,elasticsearch
ldev project init --name my-project --dir ~/projects/my-project
ldev project init . --name my-project --liferay-version dxp-2026.q1.7-lts
ldev project init . --name my-project --services postgres
ldev project init . --name my-project --services postgres,elasticsearch
ldev project init --name my-project --dir . --commitOptions:
[dir]— destination directory; when--nameis omitted, the project name defaults to the directory name--name <name>— project name used for the scaffold--dir <dir>— destination directory; overrides the optional[dir]argument--list-liferay-versions— list promoted release keys fromhttps://releases-cdn.liferay.com/releases.json--all-liferay-versions— include non-promoted releases when listing versions--liferay-version <release-key>— configure the generated workspace and Docker image for the selected release--services postgres,elasticsearch— opt in to additional Docker services--commit— create a git commit for the generated changes (by default, no commit is created)
After scaffold:
cd my-project
ldev start --activation-key-file /path/to/activation-key.xml
ldev oauth install --write-envldev setup is optional. Use it only when you want to pre-pull Docker images or warm local runtime directories before starting.
ldev ai install
Install the standard reusable AI assets into a project.
ldev ai install --target .
ldev ai install --target . --project-context
ldev ai install --target . --project --project-context
ldev ai install --target . --skills-only
ldev ai install --target . --skill liferay-expert --skill developing-liferay
ldev ai install --target . --force
ldev ai install --target . --localOptions:
--target <dir>(required) — project root--force— overwriteAGENTS.mdif it already exists--local— keep AI tooling local by adding generated agent/editor files to.gitignore, whiledocs/aistays versionable--skills-only— only update vendor skills and managed rules from the manifest--project-context— install project-owned context scaffolding (docs/ai/project-context.md+ sample)--project— install project-owned skills and agents, filtered by detected project type; also installs the project context scaffold--skill <name>— install only specific vendor skills (repeatable)
What the install produces:
AGENTS.mdand tool-specific rule directories (.claude/rules,.cursor/rules,.gemini,.github/instructions,.windsurf/rules,.workspace-rules)- vendor-managed skills under
.agents/skills/ - optional project-owned skills and agents (
.agents/skills/project-*) and project menu-map scaffolding underdocs/ai/menu/
ldev ai update
Safely refresh vendor skills and managed rules listed in the manifest.
ldev ai update --target .
ldev ai update --target . --skill liferay-expert --skill developing-liferay--skill <name> rewrites the vendor manifest to the selected skill set and refreshes managed rules.
ldev ai status
Inspect managed AI rules, manifest state, and drift.
ldev ai status --target .
ldev ai status --target . --format textDefaults to JSON. Use this before install or update on an existing project to see what is managed, what has drifted, and what is project-owned.
ldev ai bootstrap
Aggregate project context and the doctor checks needed for an agent intent.
ldev ai bootstrap --intent=discover --json
ldev ai bootstrap --intent=develop --json
ldev --repo-root ../main-checkout ai bootstrap --intent=develop --json
ldev ai bootstrap --intent=develop --cache=60 --json
ldev ai bootstrap --intent=deploy --json
ldev ai bootstrap --intent=troubleshoot --json
ldev ai bootstrap --intent=migrate-resources --json
ldev ai bootstrap --intent=osgi-debug --jsonUse this as the standard agent entrypoint. It returns context and, when the intent needs readiness, doctor.
discoverstays context-only.developkeepsdoctorintentionally cheap: repo/config/tool presence and readiness for local editing, without runtime, portal, or OSGi probes.--cache <seconds>reuses the full bootstrap result for the same intent and working tree while the cached entry is newer than the requested TTL.
When you are inside a worktree but need context from the main checkout, prefer the global form ldev --repo-root <path> ai bootstrap ....
Typical next steps
ldev ai bootstrap --intent=develop --cache=60 --jsonIn Blade workspaces, ldev ai install coexists with the official AI folders and the .workspace-rules workflow instead of replacing them.