Skip to main content

Content Crafter Bundle

Content Crafter reads and changes content in OpenDXP through a language model. Editors ask questions about their data in a chat, and describe changes that the bundle turns into a plan, runs as a job, and optionally holds for review.

ReleaseSupported OpenDXP VersionsSupported Symfony VersionsRelease DateMaintainedBranch
2.x1.x7.4--Feature Branch2.x
1.x1.x7.4--No1.x

Requirements​

  • OpenDXP 1.x with the Admin bundle
  • A symfony/ai platform bridge for your model vendor, for example symfony/ai-open-ai-platform
  • A Messenger consumer for background jobs

symfony/ai-bundle ships with this bundle and registers itself. Do not add it to bundles.php.

Installation​

composer require open-dxp/content-crafter-bundle

Add the bundle to config/bundles.php:

return [
OpenDxp\Bundle\ContentCrafterBundle\OpenDxpContentCrafterBundle::class => ['all' => true],
];

Create the tables and register the permissions:

bin/console opendxp:bundle:install OpenDxpContentCrafterBundle

The installer refuses to run when any of the bundle's tables already exist. Upgrading from 1.x uses migrations instead:

bin/console doctrine:migrations:migrate --prefix 'OpenDxp\Bundle\ContentCrafterBundle\Migrations'

Read UPGRADE.md before upgrading. Almost nothing from 1.x survives unchanged.

Install the backend assets:

bin/console assets:install public --relative --symlink

First run​

Declare a platform and a model in config/packages/ai.yaml:

ai:
platform:
openai:
api_key: '%env(OPEN_AI_API_KEY)%'

agent:
content_crafter_chat:
platform: 'ai.platform.openai'
model: 'gpt-5-mini'

Open Content Crafter > Crafter-Settings > Engines and assign a model to the Assistant role. Nothing runs without it, see Engines.

Grant the permissions your users need under Settings > Users. A fresh installation grants none, see Configuration.

Run the consumer that carries out jobs:

bin/console messenger:consume content_crafter

Documentation​

Everything is documented under docs, which names the order to read it in. Four places to start:

  • Asking is the first guide. Open the chat, ask a question, read the answer. Nothing it does changes any content.
  • Writing follows it: how a sentence becomes a plan, a routine and a job.
  • Configuration lists every configuration key and every permission.
  • Extending is where a developer makes their own data readable and writable.

License​

DACHCOM.DIGITAL AG, Löwenhofstrasse 15, 9424 Rheineck, Schweiz dachcom.com, [email protected] Copyright © 2026 DACHCOM.DIGITAL. All rights reserved.

This bundle is licensed under the GNU General Public License version 3 (GPLv3), see LICENSE.md.