Control Contao with AI agents.

Open source · Contao 5.3 to 6.0

Contao gets a command layer — 140 commands for pages, articles, files, forms, layouts, users, settings and more, where there was neither a CLI nor an API before. Two ways to connect an AI agent build on it: over SSH or right in the back end. And every write leaves a version, an undo entry and a log line — exactly what a click in the back end leaves.

The three packages → View on GitHub

MIT licencePHP 8.2+Composer & pipx

web-werk-wien $contao-ai-cli --session web-werk-wien health core-bundlev1.16.1 backend-bundlev1.1.0 contao5.7.15 · PHP 8.4.26 bridgeready $

Other systems have both. Contao had neither.

The missing layer

Coming from WordPress or Drupal, you miss two things in Contao right away: a command line for content and an interface reachable from outside. vendor/bin/contao-console migrates, backs up and creates users — it cannot reach a page or a content element.

Command line and interface per system
System Command line for content Built-in interface
WordPress WP-CLI · wp post create REST API, since 4.7 (2016)
Drupal Drush · entity:create JSON:API, since 8.7 (2019)
Shopware 6 none — bin/console is maintenance Admin API
Contao 5 and 6.0 none — 19 commands, none for content none
Contao 6.1 (from 2027) none REST API and MCP, experimental
Contao with ConpAI 140 commands, system-wide JSON in, JSON out
  • contao:page:update
  • contao:content:create
  • contao:news:read
  • contao:file:meta
  • contao:form-field:create
  • contao:version:restore
  • and 117 more

38 areas — pages, articles, content elements, news, events, FAQ, files, layouts, themes, modules, forms, newsletters, members and permissions, image sizes, versions. 36 commands depend on the optional Contao bundles; without them, 104 are active.

And no language model involved

The ConpAI core is a pure command layer — usable from a shell script, a deployment or by hand. AI only comes in with the other two packages — and it keeps to Contao's rules too: the same checks as the back end, and in the back-end bundle the rights of the signed-in user.

Three packages, one execution layer

The family

The core executes, the CLI brings the agent in over SSH, the back-end bundle brings it into the back end. Use the core or the CLI on its own or both together — and get even more out of it with the back-end bundle.

contao-ai-cli

The SSH way

Python CLI that hands Contao's console commands to an AI agent over SSH — with no extra interface inside Contao.

v1.18.1pipx

contao-ai-cli

Install contao-ai-cli locally on your computer. It connects your agent to a Contao installation. All it needs is SSH access to the server. With both bundles you get the full feature set.

What makes it

  • One named session per installation
  • No REST interface, no extra endpoint
  • Installed with pipx on your computer
  • Requires Python 3.10 or newer

Installation

pipx install git+https://github.com/webwerkwien/contao-ai-cli@v1.18.1

contao-ai-core-bundle

Execution layer

140 console commands for reading and writing — through Contao's model layer, not around it. Both ways build on it.

v1.16.1Packagist

contao-ai-core-bundle

The command layer itself, without any language model. The commands use Contao's own models, so hooks and DCA callbacks run and serialized fields stay intact; writes invalidate the page cache themselves.

What makes it

  • Hooks and DCA callbacks stay active
  • Version, undo and system log on every write
  • Contao 5.3 to 6.0, PHP 8.2 and up

Installation

composer require webwerkwien/contao-ai-core-bundle

contao-ai-backend-bundle

The browser way

Back-end module with an AI agent right inside Contao — for editors and admins without SSH access.

v1.1.0Packagist

contao-ai-backend-bundle

The agent sits in the back end as a module and works with the same commands as the SSH way. Anyone who has never opened a command line won't notice a thing.

What makes it

  • No SSH, no command line
  • Built on symfony/ai
  • Requires the core bundle
  • Contao 5.7 to 6.0, PHP 8.2 and up

Installation

composer require webwerkwien/contao-ai-backend-bundle

An agent that leaves a trail

The P in ConpAI

An agent working silently past the database takes away the traceability a CMS exists for. That is why every write here takes the same path as a click in the back end.

Raw SQL can do none of this. That is exactly why these packages exist.

tl_version

Every change is versioned — visible and restorable in the back end, with the user it ran as.

tl_undo

Deleted records go to the recycle bin instead of into nothing — just as with a click in the back end.

System log

One line per operation. Whoever later asks what happened here finds an answer instead of a gap.