A container-aware, privacy-first Firefox New Tab workspace launchpad (Manifest V3).
Install FoxLaunch on Mozilla Add-ons.
FoxLaunch organizes your shortcuts into dedicated Firefox Multi-Account Container swimlanes and dispatches tabs directly into their isolated container contexts with a single click. It runs locally, with no tracking, telemetry, or remote CDN assets.
- ποΈ Container-Aware Swimlanes: Automatically discovers your Firefox Multi-Account Containers (
browser.contextualIdentities), rendering collapsible swimlanes styled with native Firefox container color accents and icons. βοΈ Reorderable Swimlanes: Drag swimlanes or use the keyboard reorder controls to arrange containers in your preferred order.- β‘ 1-Click Container Dispatch: Launches shortcuts directly inside their assigned container profile (
browser.tabs.create({ cookieStoreId })).- Foreground Launch: Left-click opens foreground tab (optionally auto-closing the launcher tab).
- Background Launch: Middle-click or
Ctrl/Cmd+ Left-Click opens in the background without closing the launcher.
- π Instant Search & Filter: Press
/from anywhere on the page to focus the search bar and filter shortcuts across all swimlanes in real time. - βοΈ In-Page Shortcut CRUD:
- Add and edit shortcuts with container assignment and URL validation (
https://,http://,about:). - Drag-and-drop intra-swimlane reordering.
- Delete with a 5-second countdown Undo Toast.
- Add and edit shortcuts with container assignment and URL validation (
- π¨ Local Favicons & Offline Procedural Avatars: Captured site favicons are saved as local image data and displayed without loading remote images in the launcher. If no favicon is available, a letter avatar is generated locally as an SVG data URI with WCAG AA luminance contrast.
- βοΈ Customizable Settings:
- Launcher tab behavior:
Keep launcher tab openorClose launcher tab on launch. - Theme mode:
System Default,Dark, orLight. - Card size:
Small,Medium(default), orLarge, applied instantly across all swimlanes and saved locally. - Container swimlane visibility: Show all (default), Only show these, or Hide these. Select containers and/or enter name patterns, one per line (e.g.
Work*,Dev-*). Patterns match whole names case-insensitively;*matches any text and other characters are literal. Empty filters show no containers in βOnly show theseβ and hide none in βHide theseβ. The default context always remains visible. Filters save locally, apply to newly discovered containers, and never delete hidden shortcuts. - Factory reset with two-stage confirmation.
- Launcher tab behavior:
- πΆ First-Run Onboarding: Guided 4-step walkthrough overlay for new users with keyboard navigation and step indicators.
- π Privacy & Strict CSP: Manifest V3 compliant (
script-src 'self'), with no telemetry, analytics, remote scripts, orinnerHTMLusage. - βΏ Accessible: WCAG 2.1 AA keyboard navigation, modal focus traps, and Escape-key dismissal.
| Key or action | Result |
|---|---|
/ |
Focus and select the search field |
Esc |
Clear and leave search, or dismiss the active modal/menu |
Tab / Shift+Tab |
Navigate controls; focus stays within an open modal |
Enter |
Open the focused shortcut in a foreground tab |
Middle-click or Ctrl/Cmd + click |
Open the shortcut in a background tab |
FoxLaunch requires Firefox 142 or newer. For the most container-aware experience, install Firefox Multi-Account Containers or configure containers in Firefox.
| Permission | Why FoxLaunch requests it |
|---|---|
contextualIdentities |
Discover container names, colors, and icons so shortcuts can be organized in the matching swimlanes. |
cookies |
Firefox's container APIs use cookie stores to isolate contexts; FoxLaunch addresses those stores by ID and does not read individual cookie values. |
storage |
Save shortcuts, locally cached favicons, and preferences on your device. |
tabs |
Open shortcuts in the selected container and capture favicons from matching browser tabs. |
Contributions are welcome! Start with the contributor guide for development setup, architecture, and pull request guidance. Use Conventional Commits v1.0.0; submit routine pull requests to main. The release branch is reserved for maintainer-led releases.
Before submitting a pull request, run:
pnpm run typecheck
pnpm run build
pnpm run lint:ext
pnpm run test:e2eSee CHANGELOG.md for version history. FoxLaunch follows Semantic Versioning and Keep a Changelog principles.
- Language & Runtime: TypeScript 5.8+ (Strict Mode), Vanilla DOM (no frontend framework runtime)
- Bundler & Build Tool: Vite 6
- Extension Platform: WebExtensions Manifest V3 (
chrome_url_overrides.newtab) - Testing: Playwright for Desktop Firefox (140 E2E tests across 9 suites), Node test runner (40 unit tests)
- Linter: Mozilla
web-ext lint(0 errors, 0 warnings, 0 notices)
- Node.js (v20+)
- pnpm (v9+)
- Mozilla Firefox
# Clone the repository
git clone https://github.com/melkorCBA/fox-launch.git
cd fox-launch
# Install dependencies
pnpm install# Start Vite development server
pnpm run dev# Typecheck TypeScript source
pnpm run typecheck
# Build production bundle to dist/
pnpm run build
# Run Mozilla WebExtension linter
pnpm run lint:ext
# Run automated Playwright test suite in Desktop Firefox
pnpm run test:e2e- Build the production extension:
pnpm run build
- Open Firefox and navigate to
about:debugging#/runtime/this-firefox. - Click "Load Temporary Add-on...".
- Navigate to the project root and select
dist/manifest.json. - Open a new tab (
Ctrl+TorCmd+T) to use FoxLaunch!
Production extension builds are published to GitHub Packages.
GitHub Packages requires registry authentication even for public packages:
- Generate a GitHub Personal Access Token (classic) with the
read:packagesscope. - Configure your local or project
.npmrc(do not commit your token):
@melkorcba:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}- Export your token in your environment:
export GITHUB_TOKEN=ghp_yourTokenHere- Install the package:
npm install @melkorcba/fox-launch
# or
pnpm add @melkorcba/fox-launchThe package contains the production dist/ extension bundle, manifest.json, and pre-packaged .zip archives.
If FoxLaunch makes your Firefox container workflow smoother and you would like to support its ongoing development and maintenance, you can buy me a coffee on Ko-fi:
This project is licensed under the MIT License.
