OpenBee
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 binary

Running Locally

# Generate config
./bin/openbee config

# Start server
./bin/openbee server

Running 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:

TypeUsage
featNew feature
fixBug fix
docsDocumentation
testTests
refactorCode restructuring
choreBuild, dependencies
ciCI/CD changes

Example: feat: add webhook support for WeCom platform

Pull Request Process

  1. Fork the repository
  2. Create a branch from main
  3. Make focused, well-tested changes
  4. Submit a PR with a clear description
  5. Address review feedback

On this page