diff --git a/src/bg.js b/src/bg.js
index 394f0fd..4c3da6f 100644
--- a/src/bg.js
+++ b/src/bg.js
@@ -7,6 +7,7 @@
 import {cleanUpOptions, disableItemsWithMissingPermissions} from './common/optionsUtils.js';
 import KillSwitchMechanism from './killSwitch/index.js';
 import {handleBgOptionChange, handleBgOptionsOnStart} from './options/bgHandler.js';
+import UpdateNotifier from './updateNotifier/index.js';
 
 // #!if browser_target == 'chromium_mv3'
 // XMLHttpRequest is not present in service workers (MV3) and is required by the
@@ -61,7 +62,8 @@
 });
 
 // When the extension is first installed or gets updated, set new options to
-// their default value and update the kill switch status.
+// their default value, update the kill switch status and prompt the user to
+// refresh the Community Console page.
 chrome.runtime.onInstalled.addListener(details => {
   if (details.reason == 'install' || details.reason == 'update') {
     chrome.storage.sync.get(null, options => {
@@ -69,6 +71,9 @@
     });
 
     killSwitchMechanism.updateKillSwitchStatus();
+
+    const updateNotifier = new UpdateNotifier();
+    updateNotifier.notify(details.reason);
   }
 });
 
diff --git a/src/common/optionsPermissions.js b/src/common/optionsPermissions.js
index 1bfd082..a475ac7 100644
--- a/src/common/optionsPermissions.js
+++ b/src/common/optionsPermissions.js
@@ -12,6 +12,9 @@
     // #!if ['chromium', 'chromium_mv3'].includes(browser_target)
     'declarativeNetRequestWithHostAccess',
     // #!endif
+    // #!if browser_target == 'chromium_mv3'
+    'scripting',
+    // #!endif
   ]),
   origins: new Set([
     // Host permissions:
diff --git a/src/common/styles/md3.js b/src/common/styles/md3.js
index d3b098c..a634fb2 100644
--- a/src/common/styles/md3.js
+++ b/src/common/styles/md3.js
@@ -17,8 +17,10 @@
     --md-icon-button-unselected-hover-icon-color: var(--TWPT-custom-md-icon-color);
     --md-icon-button-unselected-focus-icon-color: var(--TWPT-custom-md-icon-color);
     --md-icon-button-unselected-pressed-icon-color: var(--TWPT-custom-md-icon-color);
-    --mdc-theme-on-surface: var(--TWPT-primary-text, #000);
-    --mdc-dialog-heading-ink-color: var(--TWPT-primary-text);
     --mdc-theme-surface: var(--TWPT-primary-background, #fff);
+    --mdc-theme-on-surface: var(--TWPT-primary-text, #000);
+    --mdc-theme-primary: var(--TWPT-md-sys-color-primary, #6750a4);
+    --mdc-theme-on-primary: var(--TWPT-md-sys-color-on-primary, #fff);
+    --mdc-dialog-heading-ink-color: var(--TWPT-primary-text);
   }
 `;
diff --git a/src/contentScripts/communityConsole/handleInstall.js b/src/contentScripts/communityConsole/handleInstall.js
new file mode 100644
index 0000000..14362c0
--- /dev/null
+++ b/src/contentScripts/communityConsole/handleInstall.js
@@ -0,0 +1,4 @@
+import UpdateHandler from './updateHandler/index.js';
+
+const updateHandler = new UpdateHandler();
+updateHandler.handle('install');
diff --git a/src/contentScripts/communityConsole/handleUpdate.js b/src/contentScripts/communityConsole/handleUpdate.js
new file mode 100644
index 0000000..88c187b
--- /dev/null
+++ b/src/contentScripts/communityConsole/handleUpdate.js
@@ -0,0 +1,4 @@
+import UpdateHandler from './updateHandler/index.js';
+
+const updateHandler = new UpdateHandler();
+updateHandler.handle('update');
diff --git a/src/contentScripts/communityConsole/updateHandler/banner/components/consts.js b/src/contentScripts/communityConsole/updateHandler/banner/components/consts.js
new file mode 100644
index 0000000..d279671
--- /dev/null
+++ b/src/contentScripts/communityConsole/updateHandler/banner/components/consts.js
@@ -0,0 +1 @@
+export const TWPT_UPDATE_BANNER_TAG = 'twpt-update-banner-v1';
diff --git a/src/contentScripts/communityConsole/updateHandler/banner/components/index.js b/src/contentScripts/communityConsole/updateHandler/banner/components/index.js
new file mode 100644
index 0000000..81bd20c
--- /dev/null
+++ b/src/contentScripts/communityConsole/updateHandler/banner/components/index.js
@@ -0,0 +1,122 @@
+import consoleCommonStyles from '!!raw-loader!../../../../../static/css/common/console.css';
+import {msg} from '@lit/localize';
+import {MDCBanner} from '@material/banner';
+import {css, html, unsafeCSS} from 'lit';
+import {createRef, ref} from 'lit/directives/ref.js';
+
+import {I18nLitElement} from '../../../../../common/litI18nUtils.js';
+import {SHARED_MD3_STYLES} from '../../../../../common/styles/md3.js';
+
+import {TWPT_UPDATE_BANNER_TAG} from './consts.js';
+import mdcStyles from './mdcStyles.scss?string';
+
+export default class TwptUpdateBanner extends I18nLitElement {
+  static properties = {
+    isinstall: {type: Boolean},
+  };
+
+  static styles = [
+    css`
+    :host {
+      position: sticky;
+      top: 0;
+      z-index: 97;
+    }
+
+    .mdc-banner {
+      background-color: var(--TWPT-drawer-background, #fff)!important;
+    }
+
+    .mdc-banner__graphic {
+      color: var(--mdc-theme-on-primary)!important;
+      background-color: var(--mdc-theme-primary)!important;
+    }
+
+    .mdc-banner__text {
+      color: var(--TWPT-primary-text, #000)!important;
+    }
+    `,
+    css`${unsafeCSS(consoleCommonStyles)}`,
+    SHARED_MD3_STYLES,
+    css`${unsafeCSS(mdcStyles)}`,
+  ];
+
+  bannerRef = createRef();
+
+  constructor() {
+    super();
+    this.isinstall = false;
+    this.mdcBanner = null;
+  }
+
+  firstUpdated() {
+    this.mdcBanner = new MDCBanner(this.bannerRef.value);
+    this.mdcBanner.open();
+  }
+
+  render() {
+    let descriptionMsg;
+    if (this.isinstall) {
+      descriptionMsg = msg(
+          'The TW Power Tools extension has been installed. Please reload this page so that it is activated.',
+          {
+            desc:
+                'Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.'
+          });
+    } else {
+      descriptionMsg = msg(
+          'The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.',
+          {
+            desc:
+                'Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.'
+          });
+    }
+    const reloadMsg =
+        msg('Reload', {desc: 'Button which reloads the current page.'});
+    return html`
+      <div ${ref(this.bannerRef)}
+          class="mdc-banner mdc-banner--centered mdc-banner--mobile-stacked"
+          role="banner">
+        <div class="mdc-banner__content"
+             role="alertdialog"
+             aria-live="assertive">
+          <div class="mdc-banner__graphic-text-wrapper">
+            <div
+                class="mdc-banner__graphic"
+                role="img"
+                alt="Update">
+              <md-icon class="mdc-banner__icon">update</md-icon>
+            </div>
+            <div class="mdc-banner__text">
+              ${descriptionMsg}
+            </div>
+          </div>
+          <div class="mdc-banner__actions">
+            <md-text-button
+                class="mdc-banner__primary-action"
+                label="${reloadMsg}"
+                @click=${this._reloadPage}>
+            </md-text-button>
+          </div>
+        </div>
+      </div>
+    `;
+  }
+
+  _reloadPage() {
+    location.reload();
+  }
+}
+// This element is injected each time an extension is installed/updated, so it
+// might already be defined. If it isn't, register it. If there are any breaking
+// changes, change TWPT_UPDATE_BANNER_TAG to a higher version.
+if (window.customElements.get(TWPT_UPDATE_BANNER_TAG) === undefined) {
+import(
+      /* webpackMode: "eager" */
+      '@material/web/icon/icon.js');
+import(
+      /* webpackMode: "eager" */
+      '@material/web/button/text-button.js');
+
+  window.customElements.define(TWPT_UPDATE_BANNER_TAG, TwptUpdateBanner);
+}
diff --git a/src/contentScripts/communityConsole/updateHandler/banner/components/mdcStyles.scss b/src/contentScripts/communityConsole/updateHandler/banner/components/mdcStyles.scss
new file mode 100644
index 0000000..1f87a5c
--- /dev/null
+++ b/src/contentScripts/communityConsole/updateHandler/banner/components/mdcStyles.scss
@@ -0,0 +1 @@
+@use "@material/banner/styles";
diff --git a/src/contentScripts/communityConsole/updateHandler/banner/index.js b/src/contentScripts/communityConsole/updateHandler/banner/index.js
new file mode 100644
index 0000000..c2da6b4
--- /dev/null
+++ b/src/contentScripts/communityConsole/updateHandler/banner/index.js
@@ -0,0 +1,14 @@
+import {TWPT_UPDATE_BANNER_TAG} from './components/consts.js';
+
+export default class UpdateBanner {
+  addBanner(reason) {
+    const main = document.querySelector('.scrollable-content > main');
+    if (main === null) {
+      console.error(`[updateHandlerBanner] Couldn't find main element.`);
+      return;
+    }
+    const banner = document.createElement(TWPT_UPDATE_BANNER_TAG);
+    if (reason === 'install') banner.setAttribute('isinstall', '');
+    main.prepend(banner);
+  }
+}
diff --git a/src/contentScripts/communityConsole/updateHandler/index.js b/src/contentScripts/communityConsole/updateHandler/index.js
new file mode 100644
index 0000000..8eaa815
--- /dev/null
+++ b/src/contentScripts/communityConsole/updateHandler/index.js
@@ -0,0 +1,17 @@
+import {injectScript} from '../../../common/contentScriptsUtils.js';
+import MWI18nServer from '../../../common/mainWorldI18n/Server.js';
+
+import UpdateBanner from './banner/index.js';
+
+export default class UpdateHandler {
+  constructor() {
+    new MWI18nServer();
+    injectScript(chrome.runtime.getURL('updateHandlerLitComponents.bundle.js'));
+    this.updateBanner = new UpdateBanner();
+  }
+
+  handle(reason) {
+    console.debug(`Handling extension update (reason: ${reason}).`);
+    this.updateBanner.addBanner(reason);
+  }
+}
diff --git a/src/injections/litComponentsInject.js b/src/injections/litComponentsInject.js
index 9506c8c..09e8ec8 100644
--- a/src/injections/litComponentsInject.js
+++ b/src/injections/litComponentsInject.js
@@ -5,6 +5,7 @@
 import '../contentScripts/communityConsole/workflows/components/index.js';
 import '../contentScripts/communityConsole/threadToolbar/components/index.js';
 import '../contentScripts/communityConsole/flattenThreads/components/index.js';
+import '../contentScripts/communityConsole/updateHandler/banner/components/index.js';
 
 import {injectStylesheet} from '../common/contentScriptsUtils.js';
 
diff --git a/src/injections/updateHandlerLitComponents.js b/src/injections/updateHandlerLitComponents.js
new file mode 100644
index 0000000..9b82ee2
--- /dev/null
+++ b/src/injections/updateHandlerLitComponents.js
@@ -0,0 +1,8 @@
+import '../contentScripts/communityConsole/updateHandler/banner/components/index.js';
+
+import {injectStylesheet} from '../common/contentScriptsUtils.js';
+
+// This is necessary for the MD3 components. It is also done in
+// litComponentsInject.js, but when installing the extension
+// litComponentsInject.js hasn't been injected yet.
+injectStylesheet('https://fonts.googleapis.com/icon?family=Material+Icons');
diff --git a/src/lit-locales/source/ar.xlf b/src/lit-locales/source/ar.xlf
index 893f73a..8597246 100644
--- a/src/lit-locales/source/ar.xlf
+++ b/src/lit-locales/source/ar.xlf
@@ -26,6 +26,18 @@
         <target>عَرض متداخِل</target>
         <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
       </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
     </body>
   </file>
 </xliff>
diff --git a/src/lit-locales/source/ca.xlf b/src/lit-locales/source/ca.xlf
index 3553adc..76b8cb4 100644
--- a/src/lit-locales/source/ca.xlf
+++ b/src/lit-locales/source/ca.xlf
@@ -26,6 +26,18 @@
   <target>Vista anidada</target>
   <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
 </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
     </body>
   </file>
 </xliff>
diff --git a/src/lit-locales/source/de.xlf b/src/lit-locales/source/de.xlf
index 66fbce0..92bfdc0 100644
--- a/src/lit-locales/source/de.xlf
+++ b/src/lit-locales/source/de.xlf
@@ -21,6 +21,18 @@
   <source>Nested view</source>
   <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
 </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
 </body>
 </file>
 </xliff>
diff --git a/src/lit-locales/source/es.xlf b/src/lit-locales/source/es.xlf
index 3ff72c1..2303137 100644
--- a/src/lit-locales/source/es.xlf
+++ b/src/lit-locales/source/es.xlf
@@ -26,6 +26,18 @@
   <target>Vista anidada</target>
   <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
 </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
     </body>
   </file>
 </xliff>
diff --git a/src/lit-locales/source/fr.xlf b/src/lit-locales/source/fr.xlf
index 3ee36db..44fab08 100644
--- a/src/lit-locales/source/fr.xlf
+++ b/src/lit-locales/source/fr.xlf
@@ -24,6 +24,18 @@
         <source>Nested view</source>
         <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
       </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
     </body>
   </file>
 </xliff>
diff --git a/src/lit-locales/source/id.xlf b/src/lit-locales/source/id.xlf
index 789b10d..c706ab1 100644
--- a/src/lit-locales/source/id.xlf
+++ b/src/lit-locales/source/id.xlf
@@ -21,6 +21,18 @@
   <source>Nested view</source>
   <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
 </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
 </body>
 </file>
 </xliff>
diff --git a/src/lit-locales/source/it.xlf b/src/lit-locales/source/it.xlf
index 589121b..b52109b 100644
--- a/src/lit-locales/source/it.xlf
+++ b/src/lit-locales/source/it.xlf
@@ -21,6 +21,18 @@
   <source>Nested view</source>
   <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
 </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
 </body>
 </file>
 </xliff>
diff --git a/src/lit-locales/source/ja.xlf b/src/lit-locales/source/ja.xlf
index 6d3d51b..589042e 100644
--- a/src/lit-locales/source/ja.xlf
+++ b/src/lit-locales/source/ja.xlf
@@ -21,6 +21,18 @@
   <source>Nested view</source>
   <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
 </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
 </body>
 </file>
 </xliff>
diff --git a/src/lit-locales/source/ko.xlf b/src/lit-locales/source/ko.xlf
index 1c0fec8..918259e 100644
--- a/src/lit-locales/source/ko.xlf
+++ b/src/lit-locales/source/ko.xlf
@@ -21,6 +21,18 @@
   <source>Nested view</source>
   <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
 </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
 </body>
 </file>
 </xliff>
diff --git a/src/lit-locales/source/pl.xlf b/src/lit-locales/source/pl.xlf
index b12990d..85ff3ea 100644
--- a/src/lit-locales/source/pl.xlf
+++ b/src/lit-locales/source/pl.xlf
@@ -21,6 +21,18 @@
   <source>Nested view</source>
   <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
 </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
 </body>
 </file>
 </xliff>
diff --git a/src/lit-locales/source/pt_BR.xlf b/src/lit-locales/source/pt_BR.xlf
index 2fa97d2..a69913f 100644
--- a/src/lit-locales/source/pt_BR.xlf
+++ b/src/lit-locales/source/pt_BR.xlf
@@ -21,6 +21,18 @@
   <source>Nested view</source>
   <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
 </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
 </body>
 </file>
 </xliff>
diff --git a/src/lit-locales/source/ru.xlf b/src/lit-locales/source/ru.xlf
index 85cf100..3f625c1 100644
--- a/src/lit-locales/source/ru.xlf
+++ b/src/lit-locales/source/ru.xlf
@@ -26,6 +26,18 @@
         <target>Вложенный вид</target>
         <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
       </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
     </body>
   </file>
 </xliff>
diff --git a/src/lit-locales/source/th.xlf b/src/lit-locales/source/th.xlf
index 0ea88a7..2db0fdf 100644
--- a/src/lit-locales/source/th.xlf
+++ b/src/lit-locales/source/th.xlf
@@ -21,6 +21,18 @@
   <source>Nested view</source>
   <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
 </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
 </body>
 </file>
 </xliff>
diff --git a/src/lit-locales/source/tr.xlf b/src/lit-locales/source/tr.xlf
index 4136d7c..63b2570 100644
--- a/src/lit-locales/source/tr.xlf
+++ b/src/lit-locales/source/tr.xlf
@@ -21,6 +21,18 @@
   <source>Nested view</source>
   <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
 </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
 </body>
 </file>
 </xliff>
diff --git a/src/lit-locales/source/vi.xlf b/src/lit-locales/source/vi.xlf
index b9ccf93..b82dae0 100644
--- a/src/lit-locales/source/vi.xlf
+++ b/src/lit-locales/source/vi.xlf
@@ -21,6 +21,18 @@
   <source>Nested view</source>
   <note from="lit-localize">Label for the switch which lets users enable/disable the nested view in a thread.</note>
 </trans-unit>
+<trans-unit id="s0f92c01a67197f53">
+  <source>The TW Power Tools extension has been installed. Please reload this page so that it is activated.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been installed, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sb2c523c904424868">
+  <source>The TW Power Tools extension has been updated. Please reload this page so that it continues to work properly.</source>
+  <note from="lit-localize">Message shown as a banner when the extension has been updated, to let the user know that they should reload the page.</note>
+</trans-unit>
+<trans-unit id="sd5b6130b4937488c">
+  <source>Reload</source>
+  <note from="lit-localize">Button which reloads the current page.</note>
+</trans-unit>
 </body>
 </file>
 </xliff>
diff --git a/src/updateNotifier/index.js b/src/updateNotifier/index.js
new file mode 100644
index 0000000..b4c0bb0
--- /dev/null
+++ b/src/updateNotifier/index.js
@@ -0,0 +1,25 @@
+export default class UpdateNotifier {
+  getCommunityConsoleTabs() {
+    return new Promise(res => {
+      chrome.tabs.query(
+          {url: 'https://support.google.com/s/community*'}, tabs => res(tabs));
+    });
+  }
+
+  notify(reason) {
+    this.getCommunityConsoleTabs().then(tabs => {
+      for (const tab of tabs) {
+        const script = reason === 'install' ? 'handleInstall.bundle.js' :
+                                              'handleUpdate.bundle.js';
+        // #!if browser_target == 'chromium_mv3'
+        chrome.scripting.executeScript({
+          target: {tabId: tab.id},
+          files: [script],
+        });
+        // #!else
+        chrome.tabs.executeScript(tab.id, {file: script});
+        // #!endif
+      }
+    });
+  }
+}
