Thanks for your interest in contributing! This guide will help you get started.
- Node.js 18+
- npm 9+
- Git
git clone https://github.com/idemerge/llm-api-bench.git
cd llm-benchmark
cp .env.example .env
# Backend (runs on port 3001)
cd backend && npm install && npm run dev &
# Frontend (runs on port 5173)
cd ../frontend && npm install && npm run devcp .env.example .env
docker compose up -d├── backend/ # Express + TypeScript API server
│ ├── src/
│ │ ├── routes/ # API route handlers
│ │ ├── services/ # Business logic
│ │ └── database/ # SQLite schema & queries
│ └── package.json
├── frontend/ # React + Vite + TypeScript
│ ├── src/
│ │ ├── components/ # Shared UI components
│ │ ├── pages/ # Page-level components
│ │ └── services/ # API client
│ └── package.json
├── docker-compose.yml
├── Dockerfile
└── start.sh
- Search existing issues first
- Use the Bug Report issue template
- Include steps to reproduce, expected vs actual behavior, and screenshots if applicable
- Open an issue using the Feature Request template
- Describe the use case and why it would be useful
- Fork the repository
- Create a feature branch from
main:git checkout -b feat/your-feature
- Make your changes — follow the coding conventions below
- Test your changes locally
- Commit with a descriptive message:
git commit -m "feat: add support for X" - Push and open a Pull Request against
main
- Language: All code, comments, and commit messages in English
- Commit style: Conventional Commits —
feat:,fix:,docs:,refactor:,chore:,style:,ci: - Frontend: React functional components, TypeScript strict mode, Tailwind CSS for styling
- Backend: Express routes → service layer → database. Raw SQL with
better-sqlite3, no ORM - Formatting: Follow the existing code style in each file
LLM API Bench supports adding custom LLM providers. To add one:
- Create a new adapter in
backend/src/services/following the existing pattern (seeopenai-adapteras reference) - Implement the standard interface:
chat,chatStream,listModels - Register the adapter in the provider factory
- Add the provider option to the frontend settings page
By contributing, you agree that your contributions will be licensed under the MIT License.