Thank you for considering contributing to browser-profiles! 🎉
# Clone the repo
git clone https://github.com/aitofy-dev/browser-profiles.git
cd browser-profiles
# Install dependencies
npm install
# Build
npm run build
# Test manually
npx tsx test.tsgit clone https://github.com/YOUR-USERNAME/browser-profiles.git
cd browser-profiles
git remote add upstream https://github.com/aitofy-dev/browser-profiles.gitgit checkout -b feature/my-feature- Edit files in
src/ - Run
npm run buildto compile - Test your changes
git add .
git commit -m "feat: add my feature"Use conventional commits:
feat:- New featurefix:- Bug fixdocs:- Documentationrefactor:- Code refactoringtest:- Adding tests
git push origin feature/my-featureThen open a Pull Request on GitHub.
src/
├── index.ts # Main exports
├── types.ts # TypeScript types
├── profile-manager.ts # Profile CRUD operations
├── chrome-launcher.ts # Chrome launch + anti-detect
├── fingerprint.ts # Fingerprint protection scripts
└── integrations/
├── puppeteer.ts # Puppeteer integration
├── playwright.ts # Playwright integration
└── extower.ts # ExTower API client
| File | Description |
|---|---|
profile-manager.ts |
Profile create/read/update/delete |
chrome-launcher.ts |
Launch Chrome with anti-detect flags |
fingerprint.ts |
WebRTC, Canvas, WebGL protection scripts |
Currently manual testing:
// test.ts
import { quickLaunch } from './src/integrations/puppeteer';
const { page, close } = await quickLaunch({
proxy: { type: 'http', host: 'proxy.example.com', port: 8080 },
});
await page.goto('https://browserscan.net');
// Check anti-detect score
await close();Error: Chrome not found
Solution: Install Chrome or set chromePath in options.
Error: Failed to configure proxy
Solution: Check proxy host/port/auth are correct.
Error: Failed to connect to browser
Solution: Ensure Chrome launched successfully, check port.
Enable debug logging:
const profiles = new BrowserProfiles({
debug: true, // Coming soon
});- TypeScript strict mode
- ES modules
- JSDoc comments for public APIs
- Consistent naming (camelCase)
- Open an issue on GitHub
- Check existing issues first
By contributing, you agree that your contributions will be licensed under the MIT License.