171 lines
8.2 KiB
Markdown
171 lines
8.2 KiB
Markdown
# Search with ChatGPT Powered by OpenAI Firefox Extension
|
||
|
||
This extension adds ChatGPT as a configurable Firefox search provider. Type
|
||
`gpt <query>` in the address bar to open the query in a new ChatGPT session.
|
||
It uses no API key, custom server, or intermediary handler.
|
||
|
||
This is an unofficial extension provided by Zavage Software Inc.
|
||
|
||
- [Firefox Add-ons listing](https://addons.mozilla.org/en-US/firefox/addon/search-with-chatgpt/)
|
||
- [Project website](https://zavage-software.com/portfolio/search-with-ChatGPT)
|
||
- [Project repository](https://git-repos.zavage.net/zavage-software/search-with-chatgpt-powered-by-openai-extension)
|
||
- [Feedback or report a bug](https://zavage-software.com/contact-us)
|
||
- [Zavage Software](https://zavage-software.com)
|
||
|
||
See `LICENSE.txt` for licensing terms.
|
||
|
||
## Ask about selected text
|
||
|
||
Highlight text on a webpage, right-click it, and choose **Ask ChatGPT**.
|
||
ChatGPT opens with your selection. If the prompt is not sent automatically,
|
||
press Enter in ChatGPT to send it. Try selecting a paragraph you want explained or
|
||
translated.
|
||
|
||
You can also press **Alt+Shift+G** to use the current selection. With nothing
|
||
selected, the shortcut opens a blank chat. Change the shortcut under
|
||
**Manage Extension Shortcuts** in the `about:addons` gear menu.
|
||
|
||
The options panel shows your currently configured shortcut and refreshes when
|
||
it changes or you return to the panel. If you remove it, the panel shows
|
||
“No keyboard shortcut assigned”. Its **Change keyboard shortcut** button opens
|
||
Firefox’s shortcut editor when supported; otherwise follow the menu path above.
|
||
**Restore defaults** does not change your keyboard shortcut.
|
||
|
||
To customize the prompt, set **Prompt template** to something like
|
||
`Explain simply: {query}` or `Translate into Spanish: {query}`. The Simple menu action, Ask normally, and the shortcut use your template.
|
||
Other advanced actions use their own dedicated prompts.
|
||
|
||
## Search keyword and default engine
|
||
|
||
Open Firefox’s **Settings → Search**, or paste `about:preferences#search` into
|
||
the address bar. Under **Search Shortcuts**, edit ChatGPT’s keyword to replace
|
||
`gpt` with your preferred prefix. Under **Default Search Engine**, choose
|
||
ChatGPT to search without a prefix, or choose your previous engine to switch
|
||
back. See [Firefox’s search settings guide](https://support.mozilla.org/en-US/kb/change-your-default-search-settings-firefox)
|
||
for illustrated instructions.
|
||
|
||
These are Firefox settings; the extension’s **Restore defaults** button does
|
||
not change them.
|
||
|
||
## Options
|
||
|
||
Open `about:addons`, select this extension, and choose the **Options** tab
|
||
(**Preferences** on macOS and Linux). Available settings:
|
||
|
||
- **Context menu** — **Simple** (default) keeps the direct selection action;
|
||
**Advanced** offers contextual presets; **Off** hides the menu. The keyboard
|
||
shortcut works in every mode. Existing enabled/disabled preferences migrate
|
||
to Simple/Off. Changes apply without restarting Firefox.
|
||
- **Show Translate in advanced menu** — off by default. When enabled, choose
|
||
**Ask each time** for a language dialog, or enter a **Preferred language**
|
||
to translate directly. An empty or invalid preferred language falls back to
|
||
asking. Enter continues; Escape or Cancel opens nothing.
|
||
- **Request a temporary chat** — asks ChatGPT not to save the conversation.
|
||
ChatGPT may not honour this; check its own indicator before relying on it.
|
||
- **Ask ChatGPT to use web search** — a hint to ChatGPT's interface, not a
|
||
guarantee.
|
||
- **Open in** — a new tab, a new background tab, or a new window.
|
||
- **Prompt template** — wraps your text, for example `Explain simply: {query}`.
|
||
|
||
Restore defaults resets extension preferences to Simple mode with translation
|
||
hidden; it does not change Firefox's search engine or shortcut settings.
|
||
|
||
In Advanced mode, selected text offers **Ask normally**, **Explain**,
|
||
**Summarize**, and **Debug code**. Translate appears only when enabled. The
|
||
extension does not try to detect code. A selected link uses selection actions;
|
||
without a selection, a link offers **Ask about this link** and **Review link
|
||
safety**. Page background offers **Ask about this page** and **Summarize this
|
||
page**. Link/page actions send only the URL. ChatGPT may be unable to access
|
||
its content, and a link review is not a guarantee of safety.
|
||
|
||
Long selections require confirmation before sending shortened text. Link URLs
|
||
are never shortened: unsupported schemes, embedded login credentials, and URLs
|
||
that cannot fit are rejected. The extension does not simulate submission; ChatGPT controls whether a URL
|
||
prompt is sent automatically or waits in the composer.
|
||
|
||
These settings apply to selecting text and choosing
|
||
**Ask ChatGPT** from the right-click menu, or pressing
|
||
<kbd>Alt</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>. Rebind the shortcut under
|
||
**Manage Extension Shortcuts** in the Add-ons gear menu.
|
||
|
||
The `gpt <query>` address-bar search is unchanged and does not read these
|
||
settings.
|
||
|
||
The options panel, the right-click item, and the keyboard shortcut require
|
||
Firefox 112 or newer. On older versions the extension still installs and the
|
||
`gpt <query>` address-bar search still works; only these newer features are
|
||
inactive.
|
||
|
||
## Sending your prompt
|
||
|
||
The extension opens ChatGPT with the prompt in the URL. ChatGPT controls what
|
||
happens next: it may send the prompt automatically or leave it in the composer.
|
||
**If the prompt is not sent automatically, press Enter in ChatGPT.**
|
||
|
||
The extension does not click Send, simulate Enter, or call ChatGPT's internal
|
||
conversation API. This behavior can vary with changes to ChatGPT itself.
|
||
|
||
## Browser Support
|
||
|
||
Firefox Desktop is the current development and release target. Chrome, Brave,
|
||
other Chromium browsers, and additional WebExtension platforms may be evaluated
|
||
after the Firefox feature set is more substantial; they are not current targets.
|
||
|
||
## Development
|
||
|
||
Install Node.js 22 or newer, Firefox, and the locked development dependencies:
|
||
|
||
```sh
|
||
npm ci
|
||
```
|
||
|
||
Available commands:
|
||
|
||
- `npm run dev` launches the extension in a temporary Firefox profile and
|
||
reloads it when files change.
|
||
- `npm run lint` validates the extension and treats warnings as errors.
|
||
- `npm run test:unit` runs the `node:test` unit tests over `test/`.
|
||
- `npm run build` creates
|
||
`web-ext-artifacts/search-with-chatgpt-firefox-<version>.zip`.
|
||
- `npm test` runs the same lint, unit test, and build checks used by Gitea
|
||
Actions.
|
||
|
||
The generated ZIP is unsigned. Use `npm run dev` for local testing; signing and
|
||
submission to Mozilla Add-ons remain a separate release step.
|
||
|
||
Before submitting a change, confirm that `gpt <query>` opens
|
||
`https://chatgpt.com?q=<query>`, the provider remains non-default, and it can be
|
||
configured in Firefox search settings.
|
||
|
||
## Privacy Policy
|
||
|
||
This extension has no server, no API key, and no intermediary. Nothing is
|
||
reported to Zavage Software.
|
||
|
||
- Your settings are stored in your own browser profile. If you use Firefox Sync
|
||
with **Add-ons** enabled, they sync end-to-end encrypted through your own
|
||
Mozilla account.
|
||
- Selection actions and the shortcut place your selected text in the ChatGPT
|
||
URL. Advanced link/page actions instead place the chosen link or current
|
||
page URL in the prompt. URLs may include private query parameters or fragments;
|
||
use those actions only for URLs you want to share with ChatGPT.
|
||
- The extension reads the selected text or relevant URL only when you invoke
|
||
the action. It does not extract full page text, read page titles, or open a
|
||
link itself for a safety check.
|
||
- Language and confirmation dialogs hold pending content in memory only, not
|
||
in settings sync or persistent storage. Canceling sends no prompt to ChatGPT.
|
||
Closing or restarting Firefox discards pending actions.
|
||
|
||
## Model selection
|
||
|
||
Model selection is not currently supported. We tested model URL hints while
|
||
signed in and signed out, but could not make them change the selected model.
|
||
Signed-out testing used Luna; signed-in testing stayed on GPT-5.6 Sol with
|
||
medium effort regardless of the requested model. We removed the model setting
|
||
rather than offer a control that did not work. Choose your model and thinking
|
||
effort in ChatGPT itself where available. Previously saved extension model
|
||
values are ignored.
|
||
|
||
Temporary chat did work in manual testing. Check ChatGPT's temporary-chat
|
||
indicator before sending; web-search hints remain unverified.
|