🌿 A premium Zen-inspired vertical tabs sidebar for Chrome.
📥 Install from Chrome Web Store
- Vertical Sidebar — Hover on the left edge or press
Alt+Vto reveal your tabs - Pin Sidebar — Keep it open while you browse
- Tab Search — Quickly find any tab with instant search
- Smart URL Bar — Press
Alt+Tfor new tab orAlt+Kto edit current URL - Tab Groups — Organize tabs into collapsible color-coded groups
- Drag & Drop — Reorder tabs effortlessly
- Tab Previews — Hover over tabs to see page snapshots
| Shortcut | Action |
|---|---|
Alt+V |
Toggle sidebar |
Alt+T |
Open new tab search |
Alt+K |
Edit current page URL |
- Node.js 18+
- npm
- Clone this repository
- Run
npm installto install dependencies - Run
npm run buildto build the extension - Open
chrome://extensionsin Chrome - Enable "Developer mode"
- Click "Load unpacked" and select the
dist/folder
npm install # Install dependencies
npm run build # Build for production
npm run dev # Watch mode (auto-rebuild on save)vertical-chrome/
├── public/ # Static assets (copied to dist/)
│ ├── manifest.json # Chrome extension manifest
│ ├── styles/ # CSS files (modular)
│ │ ├── base.css # Variables & container
│ │ ├── sidebar.css # Sidebar panel
│ │ ├── tabs.css # Tab list & groups
│ │ ├── drag-drop.css # Drag-and-drop
│ │ ├── context-menu.css # Context menu
│ │ ├── modals.css # URL & group modals
│ │ └── onboarding.css # Onboarding
│ ├── popup.html # Extension popup
│ ├── panel.html # Side panel
│ └── icon-*.png # Extension icons
├── src/ # Source code
│ ├── background.js # Service worker
│ ├── popup.js # Popup script
│ ├── panel.js # Side panel script
│ └── content/ # Content script (modular)
│ ├── index.js # Main orchestrator
│ ├── state.js # Centralized state
│ ├── icons.js # SVG icons
│ ├── utils.js # Utilities
│ ├── favicon.js # Favicon handling
│ ├── sidebar.js # Sidebar UI
│ ├── tabs.js # Tab rendering
│ ├── context-menu.js # Right-click menus
│ ├── url-bar.js # URL input
│ ├── modals.js # Modal dialogs
│ └── onboarding.js # First-run experience
├── dist/ # Build output (load this in Chrome)
├── vite.config.js # Vite bundler config
└── package.json
This extension:
- Does NOT collect any personal data
- Does NOT transmit any information externally
- All data stays on your device
See PRIVACY.md for details.
If you enjoy Zenith, consider buying me a coffee ☕
MIT License - See LICENSE
Made with ☕ and a love for clean browsing.