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.
| Release | Supported OpenDXP Versions | Supported Symfony Versions | Release Date | Maintained | Branch |
|---|---|---|---|---|---|
| 2.x | 1.x | 7.4 | -- | Feature Branch | 2.x |
| 1.x | 1.x | 7.4 | -- | No | 1.x |
Requirements
- OpenDXP 1.x with the Admin bundle
- A
symfony/aiplatform bridge for your model vendor, for examplesymfony/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.