A simple browser extension for managing tabs and URLs: batch creation, URL extraction, domain blocking, redirects, and profile-based configuration management. Built with React + Vite (Manifest V3) for optimal performance and simplicity.
- Generate multiple URLs from patterns using
{id}
or{idp}
(zero-padded) - Flexible start/end ID ranges with clear error handling
- Open all URLs or process in batches with progress tracking
- List current window tabs with quick select/deselect and URL filtering
- Export with customizable templates:
<id>
,<idp>
,<url>
,<name>
- Real-time preview of formatted output
- Add/edit/remove blocked domains using
declarativeNetRequest
- Bulk add domains (one per line) with success/failure feedback
- Copy results for easy sharing
- Create redirect rules from
fromUrl
→toUrl
(supports wildcards) - Bulk import: each line contains
fromUrl toUrl
separated by space - Visual feedback for bulk operations with copy functionality
- Create/load/delete/rename profiles with active status indicators
- Import/Export JSON (supports multiple profiles at once)
- Each profile stores all states of these above features.
-
Install dependencies
npm install
-
Build extension
npm run build
This creates a
dist
folder with production-ready extension files. -
Load extension in browser
Chrome/Edge:
- Open
chrome://extensions/
(oredge://extensions/
) - Enable Developer mode
- Click Load unpacked
- Select the
dist
folder
- Open
- Batch URLs: Enter pattern like
https://example.com/page/{id}
, set start/end IDs, generate and open in batches - Extractor: Select tabs, customize export format, then copy/export
- Block Sites: Add domains individually or use "Add multiple" for bulk operations, save to apply
- Redirects: Create rules or import bulk, save to apply
- Profiles: Create profiles with descriptions, save current state, import/export JSON
heta/
├── public/
│ ├── manifest.json # Extension manifest
│ ├── icon16.png # 16x16 icon
│ ├── icon48.png # 48x48 icon
│ └── icon128.png # 128x128 icon
├── src/
│ ├── tabs/ # Main screens
│ │ ├── BatchUrl.jsx # Batch URL generator
│ │ ├── Extractor.jsx # URL extraction & export
│ │ ├── BlockSite.jsx # Domain blocking & bulk add
│ │ ├── Redirect.jsx # Redirect rules & bulk add
│ │ ├── Instance.jsx # Instance management
│ │ └── ProfileManager.jsx # Profile management
│ ├── components/ # Reusable UI components
│ │ ├── ExportFormatDialog.jsx
│ │ ├── ToastWithProgress.jsx
│ │ └── ...
│ ├── utils/ # Utility functions
│ │ ├── storage.js # Chrome Storage wrapper
│ │ ├── urlUtils.js # URL utilities
│ │ └── ...
│ ├── constants/ # App constants
│ │ └── ui.js # UI constants
│ ├── App.jsx # Main app component
│ ├── App.css # Styles
│ └── main.jsx # Entry point
├── dist/ # Built extension files
├── vite.config.js # Vite configuration
└── package.json
npm run dev
After code changes:
- Rebuild:
npm run build
- Reload extension in browser
npm run build
- React 18 - UI framework
- Vite 5 - Build tool & dev server
- Chrome Extension Manifest V3 - Extension platform
- Chrome Storage API - Local storage
- Material-UI - Component library
- CSS3 - Styling with gradients and transitions
Core Capability | Feature Name | Practical Use Case |
---|---|---|
Instance & Profile Manager | Separate Life & Work | Create separate profiles: "Work" (only Slack, Jira, company Gmail) and "Personal" (YouTube, Facebook, News). Switch between them with one click to eliminate distractions. |
Instance Manager | Restore Study/Research Sessions | After searching for references for a project, Save all 15 tabs as "Research Project A". The next day, simply Restore that Instance to resume where you left off. |
Core Capability | Feature Name | Practical Use Case |
---|---|---|
Domain Blocker | Deep Work Mode | Create a "Deep Work" profile and add Block rules for facebook.com, tiktok.com, youtube.com. When this profile is active, access to these sites is blocked so you can stay focused. |
Redirect Manager | Force Better Tools | Add a redirect rule: typing a.b (your own shortcut) in the address bar automatically opens your app.asana.com/project-dashboard . |
Core Capability | Feature Name | Practical Use Case |
---|---|---|
Batch URL Generator | Bulk Product Price Check | Frequently compare prices across e-commerce sites. Use a pattern with changing product IDs to generate links for 10 different websites, then open them in batches (Batch Size) to avoid overloading your computer. |
Batch URL Generator | Watch Episodes/Lessons by Index | Need to open episodes 5–12 of a series or an online course? Enter a pattern with the episode ID to generate the exact URLs for all the episodes you need. |
Core Capability | Feature Name | Practical Use Case |
---|---|---|
URL Extractor | Build a Reading List | While browsing you find 20 articles/blog posts to read later. Use the Extractor to quickly capture all URLs with Page Titles and export a clean Markdown list to paste into Notion or Evernote. |
URL Extractor | Capture Project References | After finishing a project, use the Extractor to collect all opened reference links in the Chrome window in the format: "[Page Title] - URL" so you can drop them into your documentation. |
If you find Heta useful, please consider supporting its development:
MIT License - see LICENSE file for details.
Developed with ❤️ by TrongAJTT
Made with React + Vite + Chrome Extension Manifest V3