Temporarily put tabs to sleep and have them reappear exactly when you need them! Snoozr helps you manage your browser tabs by letting you hide tabs until a specific time or date, reducing clutter and improving productivity.
- 💤 Snooze Tabs: Hide tabs until you need them again
- ⏰ Flexible Timing: Snooze tabs for preset times (later today, tomorrow, next week) or a custom date/time
- 🔔 Notifications: Get notified when your snoozed tabs wake up
- 📋 Snooze Manager: View and manage all your snoozed tabs in one place
- 🌙 Dark Mode Support: Easy on the eyes with automatic theme detection
- 💾 Backup & Restore: Export and import snoozed tabs as versioned JSON
- 🛠️ Vite: for lightning-fast development and hot module replacement
- 🧰 TypeScript: for type safety and enhanced productivity
- ⚛️ React: for building dynamic and interactive UI components
- 📦 CRX: for easy packaging and distribution of your extension
- 🎨 Tailwind CSS: for hassle-free styling
- 🌼 DaisyUI: for beautiful UI elements
- 📥 Install the extension from the Chrome Web Store or load it unpacked
- 🖱️ Right-click on a tab or click the extension icon to snooze a tab
- ⏱️ Select when you want the tab to reappear
- 💤 The tab will close and reopen at the specified time
-
📤 Export: Open the Options page → Manage Snoozed Tabs → click "Export JSON" to download all current snoozed tabs. The file includes metadata:
exportedWithVersion: the Snoozr version used for exportexportedAt: export timestampsnoozedTabs: the exported tabs
-
📥 Import: On the same page, click "Import JSON" and choose a Snoozr export file.
- You will be asked to choose:
- Replace: replaces your current snoozed tabs with the imported list (existing alarms are cleared and recreated)
- Merge: adds imported tabs to your current list (alarms are created only for the imported tabs; conflicting IDs are safely regenerated)
- Snoozr validates imported entries and skips invalid ones; a summary indicates how many were imported/skipped.
- Backward compatibility: Snoozr accepts both the new export format and legacy raw arrays of
SnoozedTab.
- You will be asked to choose:
Note: exported JSON contains tab URLs and titles. Treat it as sensitive data.
- 📥 Clone the repository
- 🔧 Install dependencies with
pnpm install - 🚀 Start development server with
pnpm dev - 🏗️ Build the extension for production with
pnpm build
The release script requires the GitHub CLI (
gh) to be installed and authenticated.
- ✏️ Bump the version and build the zip automatically:
- Run
pnpm bump-and-build <patch|minor|major|x.y.z> - This will:
- Bump the version in
src/manifest.ts(using semver) - Run
pnpm build:zipto generate the release artefact
- Bump the version in
- Run
- 🤖 Run the release script:
- Run
./scripts/release.sh - This will:
- Read the version from
src/manifest.ts - Tag the release in git and push the tag
- Create a GitHub release and upload the generated zip file as the artefact
- Read the version from
- Run
- 📤 Upload the generated zip file to the Chrome Web Store Developer Dashboard
Example:
pnpm bump-and-build minorwill bump the minor version, update the manifest, and build the zip.