PHPackages                             sitegeist/chatterbox - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. sitegeist/chatterbox

ActiveNeos-package[Utility &amp; Helpers](/categories/utility)

sitegeist/chatterbox
====================

v0.2.0(2mo ago)310.1k↓64.2%GPL-3.0-or-laterPHPPHP ^8.2CI passing

Since Jan 26Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/sitegeist/Sitegeist.Chatterbox)[ Packagist](https://packagist.org/packages/sitegeist/chatterbox)[ RSS](/packages/sitegeist-chatterbox/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (2)Dependencies (17)Versions (25)Used By (0)

Sitegeist.Chatterbox
====================

[](#sitegeistchatterbox)

Headless AI Chat with OpenApi backed Endpoint connecting the OpenAi-API with Neos.

Authors &amp; Sponsors
----------------------

[](#authors--sponsors)

- Bernhard Schmitt -
- Melanie Wüst -
- Martin Ficzel -

*The development and the public-releases of this package is generously sponsored by .*

Installation
------------

[](#installation)

Sitegeist.Chatterbox is available via packagist. Run `composer require sitegeist/chatterbox` to require this package. You may also want to install `flowpack/cors` or any other CORS package if you are using the endpoints from different urls .

We use semantic versioning, so every breaking change will increase the major version number.

Setup
-----

[](#setup)

1. Configure Accounts

At first the OpenAI-Api Connections that are to be used are configured.

```
Sitegeist:
  Flow:
    OpenAiClientFactory:
      accounts:
        example:
          apiKey: '___secret___'
          organisation: '___secret___'
```

2. Configure Tools and Knowledge

The tools and knowledge and instructions that can later be assigned to assistants are configured. !!! This does not mean they are used automatically, but they can be selected afterward !!!

```
Sitegeist:
    Chatterbox:
        #
        # Instructions are repeated every time the assistant is called, use this for really important
        # information that must not be forgotten
        #
        # The interface to implement is: \Sitegeist\Chatterbox\Domain\Instruction\InstructionContract
        #
        instructions:
            currentDate:
                className: \Sitegeist\Chatterbox\Domain\Instruction\CurrentDateInstruction
                options:
                    description: 'Instructs the assistant about the current date'

        #
        # Tools represent function calls the assistants may choose to execute to perform their job.
        # To prevent hallucinations, it is recommended to make all important todos and data available
        # to the assistant via tools
        #
        # The interface to implement is: \Sitegeist\Chatterbox\Domain\Tools\ToolContract
        #
        tools:
            example_tool:
                # implements
                className: \Vendor\Site\ExampleTool
                options:
                    site: 'example'

        #
        # Knowledge represents information that will be indexed in a vector store and can be accessed via file_search
        # Prima usecase is the content of the website the assistant should be aware of.
        #
        # The interface to implement is: \Sitegeist\Chatterbox\Domain\Knowledge\SourceOfKnowledgeContract
        #
        knowledge:
            # knowledge
            example_site_content_de:
                className: \Sitegeist\Chatterbox\Domain\Knowledge\ContentRepositorySourceOfKnowledge
                options:
                    description: 'Example Site Content DE'
                    root: '/sites/example'
                    dimensions: { language: 'de' }
```

3. Create Assistants

In the next step assistants can be created in the "Chatterbox AI Assistants" BE Module. Here you assign the account, define the instructions and select the tools knowledge and instructions available to this specific assistant.

4. Update Assitants Knowledge

Once an assistant was configured the command `./flow knowledge:upload --account example`

5. Use API

To actually communicate with the chatbot FE Apis are provieded with a specification that can be accessed via `GET /openapi/document/chatterbox` or via cli-command `./flow openapidocument:render chatterbox`

The actual communication happen usesing the three endpoints:

- POST /chatterbox/chat/start ... inititate a chat. Returns the answer together with a thread-id that is used in the consecutive calls
- GET /chatterbox/chat/history ... read a full thread
- POST /chatterbox/chat/post ... add a message to a thread

Tools con return metadata in addition to the response that is sent to the OpenAI-API. This allows communicating with the frontend without sending the data to an AI that may or may not be trusted.

Contribution
------------

[](#contribution)

We will gladly accept contributions. Please send us pull requests.

###  Health Score

48

—

FairBetter than 93% of packages

Maintenance86

Actively maintained with recent releases

Popularity28

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 98.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~645 days

Total

2

Last Release

73d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/41de3ce33f7278b208dbea830e89b8ff1349fa145d8508127c89d4d94f6f34b0?d=identicon)[Nezaniel](/maintainers/Nezaniel)

![](https://www.gravatar.com/avatar/51e0a02d8e12b73949ec858638aa7e295e103022cc5a879f86ac8532c2c170bd?d=identicon)[sitegeist](/maintainers/sitegeist)

![](https://www.gravatar.com/avatar/829b4ccb51e8cff3c1e4b59d60cfe8d1b86f6d77fc31a6b3fc99227f432542ca?d=identicon)[mficzel](/maintainers/mficzel)

---

Top Contributors

[![mficzel](https://avatars.githubusercontent.com/u/1309380?v=4)](https://github.com/mficzel "mficzel (115 commits)")[![nezaniel](https://avatars.githubusercontent.com/u/1687674?v=4)](https://github.com/nezaniel "nezaniel (2 commits)")

---

Tags

chatneoscms

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/sitegeist-chatterbox/health.svg)

```
[![Health](https://phpackages.com/badges/sitegeist-chatterbox/health.svg)](https://phpackages.com/packages/sitegeist-chatterbox)
```

###  Alternatives

[grumpydictator/firefly-iii

Firefly III: a personal finances manager.

23.9k69.5k](/packages/grumpydictator-firefly-iii)[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.5k10](/packages/helsingborg-stad-municipio)[symfony/asset-mapper

Maps directories of assets &amp; makes them available in a public directory with versioned filenames.

1678.8M238](/packages/symfony-asset-mapper)[chameleon-system/chameleon-base

The Chameleon System core.

1028.6k5](/packages/chameleon-system-chameleon-base)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
