Thank you for your interest in contributing to OpenBot! We're building the future of local-first, multi-agent AI assistants, and we'd love for you to join us.
OpenBot is a monorepo consisting of:
server/: The core Node.js/TypeScript backend that orchestrates agents and handles the Melony event bus.web/: A React-based dashboard for interacting with your OpenBot instance.docs/: Detailed documentation on architecture, plugins, and agents.
-
Clone the repository:
git clone https://github.com/meetopenbot/openbot.git cd openbot -
Install dependencies: We use a root-level script to install dependencies for both the server and the web dashboard:
npm run install-all
-
Run in development mode: To start both the server and the web dashboard concurrently:
npm run dev
The server typically runs on
http://localhost:4001and the web dashboard onhttp://localhost:5173.
- Check the Issues to see if it's already being discussed.
- If not, feel free to open a new issue with a clear description and steps to reproduce.
- Fork the repository and create your branch from
main. - Make your changes. If you're adding a new feature, please include relevant documentation in the
docs/folder or update the READMEs. - Ensure your code builds:
cd server && npm run build
- Create a Pull Request with a clear title and description of your changes.
- TypeScript: We use TypeScript for both the server and the web dashboard. Please ensure your code is type-safe.
- Linting: Before submitting a PR, please run the linters:
npm run lint --prefix web
- Functional & Event-Driven: Since OpenBot is built on the Melony framework, try to stick to event-driven patterns when extending core functionality.
OpenBot is designed to be extensible. You can contribute in several ways:
- New Plugins: Add new capabilities (tools) to the
server/src/plugins/directory. - Built-in Agents: Define new specialized agents in
server/src/agents/. - UI Enhancements: Improve the React dashboard in the
web/directory.
We appreciate every contribution, big or small! If you have any questions, feel free to reach out via GitHub issues. Happy coding! 🚀