Thank you for your interest in contributing to Vibe! This document provides guidelines and information for contributors.
- Node.js 18.0.0 or higher
- pnpm 9.0.0 or higher
- Python 3.10 (for MCP servers)
- Git
-
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
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
- 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
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- Write tests for new functionality
- Ensure all tests pass:
pnpm test - Add integration tests for complex features
- Use strict TypeScript configuration
- Add proper type annotations
- Avoid
anytypes when possible - Check types with:
pnpm typecheck
# 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 submodulesWhen 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
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
-
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
- ✅ Code passes all checks (lint, typecheck, tests)
- ✅ Conventional commit messages
- ✅ Updated documentation (if applicable)
- ✅ Tests added for new functionality
- ✅ No breaking changes (unless discussed)
- 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
- Frontend: React 19, TypeScript, Tailwind CSS
- Backend: Electron, Node.js, Python
- AI/ML: OpenAI SDK, LangChain, MCP
- Build Tools: Electron Vite, Turbo, PNPM
- Be respectful and inclusive
- Help others learn and grow
- Ask questions if something is unclear
- Share knowledge and best practices
- Provide constructive feedback
This project has no license specified. Please respect the intellectual property and contribution terms.
- 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! 🚀