Contributing to Vibe
June 17, 2025 ยท View on GitHub
Thank you for your interest in contributing to Vibe! This document provides guidelines and information for contributors.
๐ Getting Started
Prerequisites
- Node.js 18.0.0 or higher
- pnpm 9.0.0 or higher
- Python 3.10 (for MCP servers)
- Git
Development Setup
-
Clone the repository:
git clone https://github.com/co-browser/vibe.git cd vibe -
Install dependencies:
pnpm install -
Set up environment variables:
cp .env.example .env # Edit .env with your API keys and configuration -
Start development:
pnpm dev
๐ Project Structure
vibe/
โโโ apps/
โ โโโ electron-app/ # Main Electron application
โ โโโ mcp-server/ # MCP server implementations
โโโ packages/
โ โโโ agent-core/ # Core agent functionality
โ โโโ shared-types/ # Shared TypeScript types
โ โโโ tab-extraction-core/ # Tab content extraction
โโโ scripts/ # Development scripts
โโโ .github/ # GitHub workflows and templates
๐งโ๐ป Development Guidelines
Code Style
- TypeScript: Use TypeScript for all new code
- ESLint: Code must pass ESLint checks (
pnpm lint) - Prettier: Code must be formatted with Prettier (
pnpm format) - Conventional Commits: Use conventional commit messages
Commit Messages
We use Conventional Commits for automatic versioning:
feat:- New features (minor version bump)fix:- Bug fixes (patch version bump)docs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
Examples:
feat: add new tab automation features
fix: resolve memory leak in agent service
docs: update installation instructions
Testing
- Write tests for new functionality
- Ensure all tests pass:
pnpm test - Add integration tests for complex features
TypeScript
- Use strict TypeScript configuration
- Add proper type annotations
- Avoid
anytypes when possible - Check types with:
pnpm typecheck
๐ง Available Scripts
# Development
pnpm dev # Start development environment
pnpm build # Build all packages
pnpm build:mac/win/linux # Build platform-specific distributions
# Quality Assurance
pnpm lint # Lint code
pnpm lint:fix # Fix linting issues
pnpm format # Format code with Prettier
pnpm typecheck # Check TypeScript types
pnpm test # Run tests
# Maintenance
pnpm clean # Clean build artifacts
pnpm setup # Initial setup with submodules
๐ Reporting Issues
When reporting issues, please include:
-
Environment information:
- Operating system and version
- Node.js and pnpm versions
- Electron app version
-
Steps to reproduce:
- Clear, step-by-step instructions
- Expected vs actual behavior
- Screenshots or logs if relevant
-
Additional context:
- Error messages
- Relevant configuration
- Recent changes or updates
๐ก Feature Requests
For feature requests:
- Check existing issues to avoid duplicates
- Describe the problem the feature would solve
- Provide use cases and examples
- Consider implementation and potential challenges
๐ Pull Request Process
-
Fork and branch:
git checkout -b feat/your-feature-name -
Make your changes:
- Follow coding standards
- Add tests if applicable
- Update documentation
-
Test your changes:
pnpm lint pnpm typecheck pnpm test pnpm build -
Commit with conventional messages:
git commit -m "feat: add amazing new feature" -
Push and create PR:
- Push to your fork
- Create a pull request
- Fill out the PR template
- Link related issues
PR Requirements
- โ Code passes all checks (lint, typecheck, tests)
- โ Conventional commit messages
- โ Updated documentation (if applicable)
- โ Tests added for new functionality
- โ No breaking changes (unless discussed)
๐๏ธ Architecture Overview
Core Components
- Electron App: Main desktop application with React frontend
- Agent Core: AI-powered automation engine
- MCP Services: Model Context Protocol server implementations
- Tab Extraction: Browser tab content processing
Key Technologies
- Frontend: React 19, TypeScript, Tailwind CSS
- Backend: Electron, Node.js, Python
- AI/ML: OpenAI SDK, LangChain, MCP
- Build Tools: Electron Vite, Turbo, PNPM
๐ค Community Guidelines
- Be respectful and inclusive
- Help others learn and grow
- Ask questions if something is unclear
- Share knowledge and best practices
- Provide constructive feedback
๐ License
This project has no license specified. Please respect the intellectual property and contribution terms.
๐ Getting Help
- Documentation: Check the README and docs
- Issues: Search existing GitHub issues
- Community: Join our Discord server (link in README)
- Email: Contact the maintainers
Thank you for contributing to Vibe! ๐