Thank you for your interest in contributing to AI Maestro! This document provides guidelines for contributing to the project.
Be Respectful:
- Treat all contributors with respect
- Welcome newcomers and help them get started
- Focus on constructive feedback
- Assume good intentions
Zero Tolerance for:
- Harassment or discrimination of any kind
- Personal attacks
- Trolling or inflammatory comments
- Spam or self-promotion
Before submitting a bug report:
- Check existing issues to avoid duplicates
- Test with the latest version
- Gather relevant information (OS version, Node version, error messages)
Bug report should include:
- Clear, descriptive title
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Environment details (macOS version, Node version, tmux version)
Feature requests should include:
- Clear description of the feature
- Use case and benefits
- Potential implementation approach
- Why it fits with the project goals
Note: Please check the roadmap in README.md first!
Before submitting a PR:
- Discuss major changes in an issue first
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Follow the coding standards below
PR Requirements:
- Clear description of changes
- Reference related issue(s)
- Update documentation if needed
- Ensure the code runs without errors
- Follow existing code style
PR Process:
- Fork the repo
- Create your feature branch
- Make your changes
- Test thoroughly
- Commit with clear messages
- Push to your fork
- Open a Pull Request
The fastest way to get AI Maestro running for testing your changes:
curl -fsSL https://raw.githubusercontent.com/23blocks-OS/ai-maestro/main/scripts/remote-install.sh | shThis automatically installs prerequisites, clones, and builds the project.
For making contributions:
# Fork the repo on GitHub first, then:
git clone https://github.com/YOUR_USERNAME/ai-maestro.git
cd ai-maestro
# Install dependencies
yarn install
# Start development server
yarn dev
# Test your changes at http://localhost:23000- Use TypeScript for all new code
- Define proper types (no
anyunless absolutely necessary) - Use interfaces for object shapes
- Export types from
types/directory
- Use functional components with hooks
- Keep components small and focused
- Use meaningful component and variable names
- Add JSDoc comments for complex logic
// ✅ Good
interface SessionListProps {
sessions: Session[]
onSessionSelect: (id: string) => void
}
export default function SessionList({ sessions, onSessionSelect }: SessionListProps) {
// Component logic
}
// ❌ Avoid
export default function SessionList(props: any) {
// Component logic
}- Place components in
components/ - Place hooks in
hooks/ - Place utilities in
lib/ - Place types in
types/ - One component per file
- Files: PascalCase for components (
SessionList.tsx) - Files: camelCase for utilities (
websocket.ts) - Variables: camelCase (
sessionId,isConnected) - Constants: UPPER_SNAKE_CASE (
MAX_RECONNECT_ATTEMPTS) - Types/Interfaces: PascalCase (
Session,WebSocketMessage)
Use conventional commit messages:
feat: add session export functionality
fix: resolve WebSocket reconnection issue
docs: update installation instructions
refactor: improve color palette organization
style: format SessionList component
test: add tests for useWebSocket hook
chore: update dependenciesagents-web/
├── app/ # Next.js pages and API routes
├── components/ # React components
├── hooks/ # Custom React hooks
├── lib/ # Utilities and helpers
├── types/ # TypeScript type definitions
├── docs/ # Documentation
└── server.mjs # Custom server
High Priority:
- Bug fixes
- Performance improvements
- Documentation improvements
- Accessibility enhancements
- Test coverage
Welcome Contributions:
- UI/UX improvements
- New features (aligned with roadmap)
- Code refactoring
- Examples and tutorials
Lower Priority:
- Major architectural changes (discuss first!)
- Features outside the roadmap
- Breaking changes
Currently, there's no automated test suite. When contributing:
Manual Testing Checklist:
- Start the dashboard (
yarn dev) - Create test agents
- Test agent switching
- Test agent management (create/rename/delete)
- Test notes functionality
- Test terminal interaction
- Check browser console for errors
- Test on different browsers (Chrome, Safari, Firefox)
When to update documentation:
- Adding new features
- Changing existing behavior
- Adding new configuration options
- Fixing documentation errors
Files to update:
README.md- Main documentationCLAUDE.md- Claude Code contextdocs/OPERATIONS-GUIDE.md- User guidedocs/REQUIREMENTS.md- System requirements
Need help contributing?
- Open a GitHub Discussion
- Comment on an existing issue
- Reach out to maintainers
Resources:
By contributing to AI Maestro, you agree that your contributions will be licensed under the MIT License.
All contributors will be:
- Listed in the project's contributor list
- Credited in release notes for significant contributions
- Appreciated and thanked for their work!
Thank you for contributing to AI Maestro! 🎉
Every contribution, no matter how small, makes a difference.