Developer Guide
Contributing
How to contribute to OpenBee
Prerequisites
- Go 1.25+
- Node.js 18+
- pnpm
- Git
Development Setup
git clone https://github.com/theopenbee/openbee.git
cd openbee
make web # Build frontend assets
make build # Build binaryRunning Locally
# Generate config
./bin/openbee config
# Start server
./bin/openbee serverRunning Tests
go test ./...Project Structure
cmd/openbee/ CLI entry point (main, server, config commands)
internal/
api/ HTTP API handlers (Gin router)
app/ Application lifecycle and component wiring
bee/ Core bot logic (Feeder, message routing)
claude/ Claude Code CLI integration (process management)
claudemd/ CLAUDE.md file management
config/ YAML configuration loading
mcp/ MCP server (tools, SSE transport)
msgingest/ Message ingestion and debouncing
model/ Data structures (Worker, Task, Execution)
platform/ Platform adapters (Feishu, DingTalk, WeCom, Telegram)
store/ SQLite data persistence
task_dispatcher/ Task execution coordination
task_scheduler/ Cron-based task scheduling
worker/ Worker lifecycle management
logger/ Structured logging (zap)
media/ Media handling (FFmpeg/FFprobe)
web/ React + TypeScript frontend (Vite, Tailwind)Commit Conventions
Follow Conventional Commits:
| Type | Usage |
|---|---|
feat | New feature |
fix | Bug fix |
docs | Documentation |
test | Tests |
refactor | Code restructuring |
chore | Build, dependencies |
ci | CI/CD changes |
Example: feat: add webhook support for WeCom platform
Pull Request Process
- Fork the repository
- Create a branch from
main - Make focused, well-tested changes
- Submit a PR with a clear description
- Address review feedback