Highly extendable AI Web Chat UI from the community for the community.
⚠️ Early Development Stage: This repository is in a very early stage of development. Features may be incomplete, APIs may change, and breaking changes are expected.
🤝 We are looking for co-maintainers!
- 🗨️ OpenAI Chat integration
- 🧩 Modular architecture for easy extensibility
We try to keep the root of the repo slim and add things like package.json file where it actually belongs to.
modAI-chat/
├── backend/
│ ├── omni/ # Python FastAPI backend
│ └── tools/dice-roller/ # Example tool microservice
├── docs/ # User, admin & developer documentation
├── frontend/
│ └── omni/ # Svelte TypeScript SPA
└── e2e_tests/
├── tests_omni_full/ # Playwright E2E – full stack
└── tests_omni_light/ # Playwright E2E – light
In modAI there is not the one-and-only frontend but we (potentially) have more than one, or even transitioning from one to another (e.g. rewrite). Why more than one frontend: because there are different use cases. e.g. one full fledged frontend containing all features the backend offers and a second one very small chat bubble frontend which can be used to be integrated in existing sites.
For easy dependency installation of the whole repo, run
just installthis installes the python/npm dependencies for all subprojects.
Start the lightweight local OIDC identity provider (runs on port 9000):
docker compose -f resources/compose-files/compose-nanoidp.yaml up -dnanoidp Dashboard: http://localhost:9000
cd backend/omni
cp .env.sample .env
just install
just startcd frontend/omni
ln -sf modules_with_backend.json public/modules.json
just install
just startBrowse to http://localhost:5173/
User: user1
Password: password
modAI's modular architecture allows you to develop your own modules in separate repositories and integrate them into the frontend and backend.
- Frontend modules: See frontend/omni/docs/EXTERNAL-MODULE-DEVELOPMENT.md for a step-by-step guide on creating, integrating, and deploying custom frontend modules.
- Backend modules: See backend/omni/docs/EXTERNAL-MODULE-DEVELOPMENT.md for extending the backend with custom modules.
Contributions are welcome in form of pull requests, issues or discussions. If you plan to implement something new or bigger, it is advisable to start a discussion first.
For details, see our contribution guidelines
There are plenty of successful repos out in the wild which are lead by single persons, but often this overwhelms and stresses the maintainer and obviously leads to a very bad work-life balance.
We believe that a one-man-show is not the right way and therefore are happy if you also want to take over responsibility. The whole project is divided into different chunks with dedicated responsible persons.
| Component | Overall responsibility |
|---|---|
| frontend/omni | @guenhter and maybe you? |
| backend | @guenhter and maybe you? |
| CI/CD | @guenhter and maybe you? |
The responsibilities for frontend and backend are defined more granular in the respective README.md files.
This project is licensed under the terms specified in the LICENSE file.
See ROADMAP.md for planned features and development milestones.
