cx-composer
← blog5 min read

Meet CX Companion — the AI co-pilot for Liferay Client Extensions

CX Composer's AI graduates from Beta to Preview. CX Companion is a workspace-aware chat panel that scaffolds client extensions, edits yaml, pairs OAuth blocks, runs preflight validation, and queues every file write for review before anything hits disk. Plus: Website → Batch CX migration, broader schema coverage, and OpenAI-compatible endpoints.

announcementaicx companionliferay dxp

CX Composer's AI steps up. CX Companion is a dedicated, workspace-aware panel that reads your extensions, picks the right Client Extension type, scaffolds new ones, edits existing yaml, pairs OAuth blocks, and runs the full preflight validator — all without a single file touching disk until you click Accept. The AI graduates from Beta to Preview today in VS Code 1.5.6 and the JetBrains plugin 1.6.5.

##1. Watch the walkthrough

Three minutes, start to finish. The video shows a real workspace, a plain-English prompt ("I need to run a logic once an object entry is created"), and CX Companion scaffolding the full objectAction client extension — yaml, paired oAuthApplicationUserAgent, Dockerfile, assemble block, handler stub — into a pending-edits panel for review.

##2. CX Companion, up close

CX Companion isn't a general-purpose chatbot. It's a Liferay-CX-specific agent, grounded on the plugin's authoritative extension registry (all 28 CX types, every field, every valid value), the preflight validator, and your current workspace state. Here's what it actually does:

  • Scaffolds complete client extensions. Not just the yaml — the full project: paired OAuth blocks, Dockerfile, assemble block, LCP.json, README, and a working handler stub where the type calls for one.
  • Edits existing extensions in-place. Add a field, rename a resource path, swap an OAuth reference, update client-extension.yaml and every file that depends on it in a single staged change.
  • Auto-pairs OAuth blocks. Microservice-paired types (objectAction, workflowAction, notificationType, captcha, Commerce integrations) always ship with their matching oAuthApplicationUserAgent. Batch and site initializers get oAuthApplicationHeadlessServer. You never have to remember which pairing is required.
  • Preflight validation on every proposal. Before you see a staged edit, CX Companion runs the plugin's full yaml validator against it. If there's a missing required field, an unknown field, a type mismatch, or a broken OAuth reference, the warning appears on the review row — not after a failed deploy.
  • Pending-edits review queue. Nothing writes to disk until you click Accept. Review each file side-by-side with its current content, accept individually or as a batch, reject anything you don't want.

##3. Migrate a website into a batch CX

A dedicated feature inside CX Companion: paste any public URL and the plugin crawls the site, uses AI to infer an Object Definition schema from the extracted content, pulls each record out as an Object Entry, and produces a ready-to-deploy batch Client Extension folder — with the ObjectDefinition and every imported record in batch/*.batch-engine-data.json form, correctly shaped against the full 309-entity Liferay batch registry.

Useful for one-shot content migrations (an old marketing site, a blog, a product catalog) and for teams building their very first Object Definition and wanting a realistic seed data set to deploy with it.

##4. Beta → Preview, in plain terms

We shipped the AI features as Beta because the agentic loop was new and we wanted a visible "not GA yet" signal. The move to Preview reflects the hardening we've done since:

  • Every file write goes through the review queue — no silent writes.
  • Every AI-generated yaml is validated by the full preflight before it reaches you — no broken staged files.
  • Cross-block OAuth pairing is checked automatically — no orphaned microservice blocks.
  • Chat scope is restricted to Liferay Client Extensions — polite redirect for anything else, so the Companion stays focused on what it's good at.

We're calling it Preview because the surface is still evolving — not because it's unsafe to use. We're running it against real workspaces every day.

##5. Bring your own AI

CX Composer never proxies your prompts. You configure one of these providers and the plugin calls them directly from your IDE:

  • Anthropic (Claude 4.x family)
  • OpenAI (GPT-4o, o3-mini, etc.)
  • Google (Gemini 2.5)
  • Groq (Llama / Qwen on sub-second latency)
  • Azure OpenAI deployments
  • Ollama (local models, no network at all)
  • Any OpenAI-compatible endpoint — OpenRouter, Together, LM Studio, your own gateway

Keys live in your OS keychain (SecretStorage on VS Code; Keychain / Credential Manager / Secret Service on JetBrains). Nothing passes through cxcomposer.dev.

##6. Try it in 60 seconds

Grab the latest build, open any Liferay workspace, and look for CX Companion in the CX Composer sidebar (VS Code) or tool window (JetBrains). First run prompts you to configure an AI provider — pick one, paste a key, and you're live.

─── skip the boilerplate ───

Scaffold this in 10 seconds with CX Composer.

VS Code extension for Liferay developers. Wizard-driven scaffolding for all 28 Client Extension types, IntelliSense on client-extension.yaml, five layered validators, and per-extension build via Blade.