How-To Recipes

Route Calendars to Work Browser

when host is "calendar.google.com" then open firefox:work

Add this rule to automatically send every Google Calendar invite to your work profile. Combine with the scripting snippet below if you also want to label the entry for reporting:

if (matchHost("calendar.google.com")) {
  return action(openIn: useProfile("firefox:work"), labels: ["meetings", "work"]);
}

Queue Links from Chat

If you want to stay focused while Slack keeps sending you URLs:

if (matchApp("com.slack.Slack")) {
  return action(queue: true, labels: ["slack"]);
}

Later, open the Queue tab and process the items when you are ready.

Blocklist Certain Domains

if (matchHost("news.ycombinator.com")) {
  return action(queue: false, notes: "Blocked for focus");
}

Returning queue: false with no openIn turns the intent into a no-op while leaving an audit trail in History.

Snooze Personal Email During Work Hours

if (matchHost("mail.google.com") && between("09:00-17:30")) {
  return action(snoozeUntil: atTime("today 17:45"), labels: ["personal", "snoozed"]);
}

This script snoozes personal Gmail links until the workday ends.

Launch Debugger Profiles

if (matchUrl("https://staging.example.com/*")) {
  return action(openIn: "chrome:staging", labels: ["staging"], notes: "Runs with devtools open");
}

Configure chrome:staging with extra CLI flags (--auto-open-devtools-for-tabs, --disable-extensions) to make debugging faster.

Export & Share Automations

  1. Run whichbrowser export scripts --out ./scripts to dump every script as a .wb file.
  2. Commit them to source control.
  3. On another machine run whichbrowser import scripts ./scripts to load everything with one command.

Refer back to the Technical Reference for full API coverage when building your own recipes.

Last updated on