{"id":32470639,"url":"https://github.com/helebest/x-proxy","last_synced_at":"2026-04-16T08:00:52.734Z","repository":{"id":309750374,"uuid":"1037422938","full_name":"helebest/x-proxy","owner":"helebest","description":"x-proxy: a simple, fast, privacy-focused proxy switcher for Chrome","archived":false,"fork":false,"pushed_at":"2026-04-16T03:15:48.000Z","size":597,"stargazers_count":15,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-16T04:33:47.362Z","etag":null,"topics":["browser-extension","chrome","chrome-extension","chromium","chromium-extension","free","http-proxy","network-tools","privacy","proxy-manager","proxy-switcher","socks5"],"latest_commit_sha":null,"homepage":"https://helebest.github.io/x-proxy/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/helebest.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-13T14:49:02.000Z","updated_at":"2026-04-16T03:15:54.000Z","dependencies_parsed_at":"2025-09-20T05:25:32.008Z","dependency_job_id":"a01bd707-5be5-4c83-951b-f9257906a76c","html_url":"https://github.com/helebest/x-proxy","commit_stats":null,"previous_names":["helebest/x-proxy"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/helebest/x-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helebest%2Fx-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helebest%2Fx-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helebest%2Fx-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helebest%2Fx-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/helebest","download_url":"https://codeload.github.com/helebest/x-proxy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helebest%2Fx-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31876852,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T07:36:03.521Z","status":"ssl_error","status_checked_at":"2026-04-16T07:35:53.576Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser-extension","chrome","chrome-extension","chromium","chromium-extension","free","http-proxy","network-tools","privacy","proxy-manager","proxy-switcher","socks5"],"created_at":"2025-10-26T16:19:14.360Z","updated_at":"2026-04-16T08:00:52.728Z","avatar_url":"https://github.com/helebest.png","language":"JavaScript","funding_links":["https://ko-fi.com/lehe0324","https://www.paypal.com/paypalme/lehe324"],"categories":[],"sub_categories":[],"readme":"# X-Proxy\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/icons/icon-128.png\" alt=\"X-Proxy Logo\" width=\"128\" height=\"128\"\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eSimple, Fast, Privacy-Focused Proxy Switcher for Chrome\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/helebest/x-proxy/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/helebest/x-proxy/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/helebest/x-proxy\" alt=\"Release\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/helebest/x-proxy/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/helebest/x-proxy?style=social\" alt=\"Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://helebest.github.io/x-proxy/\"\u003e\u003cimg src=\"https://img.shields.io/badge/website-online-brightgreen\" alt=\"Website\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://helebest.github.io/x-proxy/\"\u003eWebsite\u003c/a\u003e •\n  \u003ca href=\"#-features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#-installation\"\u003eInstallation\u003c/a\u003e •\n  \u003ca href=\"#-quick-start\"\u003eQuick Start\u003c/a\u003e •\n  \u003ca href=\"#-contributing\"\u003eContributing\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## 💡 Why X-Proxy?\n\nManaging multiple proxy configurations shouldn't be complicated. X-Proxy makes it **simple**:\n\n- ⚡ **One-Click Switching** - Switch proxies in \u003c 100ms, no page reload needed\n- 🔒 **Privacy First** - No tracking, no telemetry, all data stored locally\n- 🎨 **Clean Interface** - Intuitive UI that gets out of your way\n- 🚀 **Modern Stack** - Built with TypeScript, Vite, and Manifest V3\n- 📦 **Lightweight** - \u003c 10MB memory footprint\n- 🆓 **Free \u0026 Open Source** - MIT licensed, use it however you want\n\n## 🌟 Features\n\n### Core Functionality\n- **🔄 HTTP/HTTPS, SOCKS5 \u0026 PAC**: Full support for common proxy protocols and PAC auto-config files\n- **📄 PAC File Support**: Use custom PAC (Proxy Auto-Configuration) scripts via URL or local file path\n- **📝 Unlimited Profiles**: Save and organize as many proxy configurations as you need\n- **⚡ Instant Switching**: Activate profiles with a single click from toolbar\n- **🎯 Domain Routing**: Configure specific domains to use proxy (whitelist mode)\n- **🔧 System Integration**: Seamless Chrome proxy API integration\n- **🔐 Proxy Authentication**: Username/password support for authenticated proxies\n- **📤 Import/Export**: Backup and restore proxy configurations as JSON\n- **💾 Local Storage**: All data stays on your device, no cloud sync\n\n### Developer-Friendly\n- **TypeScript** with strict mode for type safety\n- **Manifest V3** compliant for future compatibility\n- **Comprehensive tests** with 71+ test cases\n- **Modern tooling** with Vite and Vitest\n- **Clean codebase** that's easy to contribute to\n\n## 📥 Installation\n\n### Option 1: Chrome Web Store (Recommended)\n\nVisit the [Chrome Web Store - X-Proxy](https://chromewebstore.google.com/detail/x-proxy/efbckpjdlnojgnggdilgddeemgkoccaf) and click \"Add to Chrome\"\n\n### Option 2: Build from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/helebest/x-proxy.git\ncd x-proxy\n\n# Install dependencies\nnpm install\n\n# Build the extension\nnpm run build\n\n# Load in Chrome:\n# 1. Open chrome://extensions/\n# 2. Enable \"Developer mode\"\n# 3. Click \"Load unpacked\"\n# 4. Select the `dist` folder\n```\n\n### Option 3: Download Release\nDownload the latest release from [GitHub Releases](https://github.com/helebest/x-proxy/releases) and load it in Chrome developer mode.\n\n**Works on all Chromium browsers**: Chrome, Edge, Brave, Opera, and more!\n\n## 🚀 Quick Start\n\n### Basic Usage\n\n1. **Click the X-Proxy icon** in your Chrome toolbar\n2. **Add a profile** by clicking \"Add Profile\"\n3. **Configure your proxy**:\n   ```\n   Name: My Proxy\n   Type: HTTP or SOCKS5\n   Host: proxy.example.com\n   Port: 8080\n   ```\n4. **Click Save** and then click the profile to activate\n5. **Click \"System\"** to return to direct connection\n\n### Domain Routing (New in v1.2.0)\n\nConfigure specific domains to use proxy while others go direct:\n\n1. **Open Options** (right-click extension icon → Options)\n2. **Edit or create a profile**\n3. **Enable \"Domain Routing Rules\"** toggle\n4. **Add domains** (one per line):\n   ```\n   *.google.com\n   github.com\n   *.youtube.com\n   ```\n5. **Save** and activate the profile\n\n**How it works**:\n- ✅ Listed domains → Use proxy\n- ⏭️ All other domains → Direct connection\n- 🔸 Supports wildcards: `*.example.com` matches all subdomains\n\n### Example Configurations\n\n**SOCKS5 Proxy**:\n```\nType: SOCKS5\nHost: 127.0.0.1\nPort: 1080\n```\n\n**HTTP Proxy with Domain Routing**:\n```\nType: HTTP\nHost: proxy.company.com\nPort: 8080\nDomain Routing: Enabled\nDomains:\n  *.google.com\n  *.github.com\n  *.stackoverflow.com\n```\n\n## 🎯 Use Cases\n\n- **Web Development**: Test apps behind different proxy configurations\n- **Privacy**: Route traffic through privacy-focused proxies\n- **Geo-Testing**: Access region-specific content during development\n- **Corporate Networks**: Easily switch between work and personal proxies\n- **Self-Hosted Proxies**: Manage multiple self-hosted proxy servers (Squid, Shadowsocks, V2Ray, etc.)\n\n## 🏗️ Architecture\n\n```\nx-proxy/\n├── background.js       # Service worker - proxy management logic\n├── popup.js           # Popup UI - quick access interface\n├── options.js         # Options page - full profile management\n├── manifest.json      # Extension manifest (Manifest V3)\n├── vite.config.*.ts  # Separate builds for each component\n└── docs/              # GitHub Pages website\n```\n\n### Key Components\n\n- **Background Service Worker**: Manages Chrome proxy API and profile state\n- **Popup Interface**: Quick switching and status display\n- **Options Page**: Full-featured profile management\n- **Local Storage**: Chrome storage API for data persistence\n\nSee the codebase for detailed implementation. Key files: `background.js`, `popup.js`, `options.js`.\n\n## 🛠️ Development\n\n### Available Commands\n\n```bash\n# Development\nnpm run build              # Build all components\nnpm run watch              # Watch mode for development\nnpm run type-check         # TypeScript type checking\nnpm run lint               # Code quality checks\n\n# Testing\nnpm test                   # Run all tests\nnpm run test:unit          # Unit tests only\nnpm run test:coverage      # Coverage report\n\n# Utilities\nnpm run clean              # Clean build artifacts\nnpm run generate-icons     # Generate icon assets\n```\n\n### Tech Stack\n\n- **Language**: TypeScript (strict mode)\n- **Build Tool**: Vite\n- **Testing**: Vitest + Testing Library\n- **APIs**: Chrome Extension APIs (Manifest V3)\n- **Storage**: Chrome Storage API (local)\n\n## 🧪 Testing\n\nX-Proxy has comprehensive test coverage:\n\n```bash\nnpm test              # Run all tests\nnpm run test:watch    # Watch mode\nnpm run test:coverage # Coverage report\n```\n\n**Test Coverage**:\n- Unit tests for core logic\n- Integration tests for Chrome APIs\n- E2E tests for user workflows\n- Bug regression tests\n\n## 🤝 Contributing\n\nContributions are welcome! Here's how you can help:\n\n### Good First Issues\n- 🐛 Bug fixes\n- 📝 Documentation improvements\n- 🌐 Translations\n- ✨ UI/UX enhancements\n\n### Wanted Features\n- Firefox port (WebExtensions)\n- Dark mode theme\n- Profile sharing via URL\n- Connection testing\n\n### How to Contribute\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Commit** your changes (`git commit -m 'feat: add amazing feature'`)\n4. **Push** to the branch (`git push origin feature/amazing-feature`)\n5. **Open** a Pull Request\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.\n\n## 📊 Performance Metrics\n\nX-Proxy is designed to be lightweight and fast:\n\n| Metric | Value |\n|--------|-------|\n| Startup Time | \u003c 50ms |\n| Proxy Switching | \u003c 100ms |\n| Memory Usage | \u003c 10MB |\n| CPU Usage | Minimal when idle |\n| Extension Size | ~2MB installed |\n\n## 🔒 Privacy \u0026 Security\n\nYour privacy is important:\n\n- ✅ **No Telemetry** - Zero data collection or tracking\n- ✅ **Local Storage Only** - All data stays on your device\n- ✅ **No External Requests** - Extension doesn't phone home\n- ✅ **Open Source** - Audit the entire codebase\n- ✅ **Minimal Permissions** - Only `proxy` and `storage` required\n\nRead our [Privacy Policy](https://helebest.github.io/x-proxy/PRIVACY_POLICY/) for details.\n\n## 📄 License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n**TL;DR**: You can use, modify, and distribute this software freely, even for commercial purposes.\n\n## 🌐 Links\n\n- **Website**: https://helebest.github.io/x-proxy/\n- **Issues**: https://github.com/helebest/x-proxy/issues\n- **Discussions**: https://github.com/helebest/x-proxy/discussions\n- **Changelog**: [CHANGELOG.md](CHANGELOG.md)\n- **Contributing Guide**: [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## 💖 Support\n\nIf you find X-Proxy useful, consider:\n\n- ⭐ **Starring** the repository\n- 🐛 **Reporting bugs** or suggesting features\n- 🤝 **Contributing** code or documentation\n- 💝 **Donating** via [Ko-fi](https://ko-fi.com/lehe0324) or [PayPal](https://www.paypal.com/paypalme/lehe324)\n\n## 📈 Roadmap\n\n### v1.0.0 ✅ (Current - Extension Release)\n- [x] Core proxy switching functionality\n- [x] HTTP/HTTPS, SOCKS5 \u0026 PAC support\n- [x] Profile management (create, edit, delete)\n- [x] Clean, intuitive UI\n- [x] TypeScript + Manifest V3\n- [x] Comprehensive test suite\n- [x] Chrome Web Store publication ✅\n\n### v1.1.0 ✅ (GitHub Pages \u0026 SEO)\n- [x] SEO optimization for GitHub Pages\n- [x] Unified button styling\n- [x] FAQ section with schema markup\n- [x] Enhanced README and documentation\n\n### v1.2.0 ✅ (Domain Routing)\n- [x] PAC script support\n- [x] Domain-based routing rules (whitelist mode)\n- [x] Wildcard domain matching\n- [x] Profile-level routing configuration\n- [x] Automatic PAC script generation\n\n### v1.3.0 ✅ (Bypass List)\n- [x] Whitelist/Blacklist mode selection (Issue #6)\n- [x] Dynamic UI based on routing mode\n- [x] Enhanced PAC script for blacklist mode\n- [x] Backward compatible with existing profiles\n\n### v1.3.1 ✅ (Current - Bug Fix)\n- [x] Fixed domain validation for blacklist mode (Issue #9)\n- [x] Added IPv4/IPv6 address support in routing rules\n- [x] Added localhost and simple hostname support\n\n### v1.4.0 ✅ (Import/Export)\n- [x] Import/export profiles (JSON format)\n\n### v1.4.1 ✅ (Bug Fix + Tests)\n- [x] Fixed domain routing bug (missing `mode` in normalization)\n- [x] Added unit tests for normalization and PAC script generation\n- [x] Configured vitest with real test scripts\n\n### v1.4.2 ✅ (Proxy Authentication)\n- [x] Username/password authentication for proxy servers (Issue #17)\n- [x] `chrome.webRequest.onAuthRequired` handler\n- [x] Auth normalization and handler unit tests (TDD)\n\n### v1.5.0 ✅ (PAC File Support)\n- [x] Custom PAC (Proxy Auto-Configuration) file support (Issue #19)\n- [x] HTTP/HTTPS URLs and local file paths (e.g., `C:\\data\\proxy.pac`)\n- [x] Dedicated PAC URL input in profile editor\n- [x] Import/Export support for PAC profiles\n- [x] 28 new unit tests + 44 E2E Playwright tests\n\n### v1.5.1 ✅ (Visual Enhancements)\n- [x] Dynamic toolbar icon color matching active profile\n- [x] Dark mode UI improvements\n- [x] Vite security upgrade (v6.4.2)\n\n### v2.0.0 (Future)\n- [ ] Profile sharing via URL\n- [ ] Connection testing\n- [ ] Firefox support (WebExtensions)\n- [ ] Advanced proxy features\n- [ ] Statistics and analytics (local only)\n- [ ] Custom themes\n\nSee [CHANGELOG.md](CHANGELOG.md) for detailed version history.\n\n## 🙏 Acknowledgments\n\nBuilt with:\n- [TypeScript](https://www.typescriptlang.org/)\n- [Vite](https://vitejs.dev/)\n- [Vitest](https://vitest.dev/)\n- [Chrome Extensions API](https://developer.chrome.com/docs/extensions/)\n\nInspired by projects like SwitchyOmega and FoxyProxy, but with a focus on simplicity and privacy.\n\n## 📞 Contact\n\n- **GitHub Issues**: For bug reports and feature requests\n- **GitHub Discussions**: For questions and community chat\n- **Email**: helebest@gmail.com\n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with ❤️ by \u003ca href=\"https://github.com/helebest\"\u003ehelebest\u003c/a\u003e • \u003ca href=\"https://ko-fi.com/lehe0324\"\u003e☕ Ko-fi\u003c/a\u003e • \u003ca href=\"https://www.paypal.com/paypalme/lehe324\"\u003e💝 PayPal\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003csub\u003eSimple, reliable proxy switching for Chrome\u003c/sub\u003e\n\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelebest%2Fx-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhelebest%2Fx-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelebest%2Fx-proxy/lists"}