Skip to main content
Chrome extensions support two distinct UI surfaces: a popup that appears when the user clicks your toolbar icon, and an options page that opens as a full browser tab. Choosing the right one depends on what the user needs to accomplish.

Quick comparison

The popup

Use the popup for interactions that take a few seconds: toggling a setting, showing a count, triggering a one-time action, or displaying status information about the current page. Manifest declaration:
Minimal popup.html:
popup.js — trigger an action and display the result:
The popup’s JavaScript execution context is destroyed when the popup closes. Do not use the popup to manage long-running state — use chrome.storage or the background service worker for that.

The options page

Use the options page for settings the user configures once and rarely changes: API keys, default behaviors, account information, or bulk data management. Manifest declaration:
For options pages that open in a smaller panel instead of a full tab, use options_ui:
options.js — save and load settings:
Open the options page programmatically (from the popup or background worker):

When to use each

Use the popup when...

  • The user needs to see current status (e.g., “3 trackers blocked on this page”)
  • A single click or toggle is the entire interaction
  • The UI relates to what the user is currently doing on the page
  • Speed matters — the user expects an instant response

Use the options page when...

  • The user needs to enter credentials or API keys
  • There are multiple settings grouped into sections
  • The user needs to read and manage saved data
  • The interaction requires more screen space or multi-step input
You can include both. A common pattern is a popup that shows a summary and a link to the options page: “Manage settings →“

Prompt Extensy to include each

Popup only:
“Add a toolbar popup that shows the word count of the current page and lets the user copy it to the clipboard.”
Options page only:
“Create an options page where users can enter their OpenAI API key and choose the default summarization length.”
Both:
“Build an extension with a popup for quick one-click summarization and an options page for setting the API key, summary length, and preferred language.”
Extensy will generate the HTML, CSS, and JavaScript for each surface and wire them together with chrome.storage for shared state.