Skip to content

Repository files navigation

Xtension

Website: xtension.jodevelop.com — feature overview, downloads and published checksums.

Xtension is a browser extension built to improve the X/Twitter experience with practical tools. The current AI feature set includes optional OpenAI Codex-assisted correction, translation, reformulation, and reply generation inside the X/Twitter composer.

Voice dictation was removed in 0.6.7. ChatGPT-managed Codex exposes no transcription model, so the feature could not work; rather than ship a microphone code path that never produced a result, the extension no longer contains any audio capture code at all.

AI requests use the user's authenticated OpenAI Codex account. The user chooses an available Codex model and reasoning effort in Xtension; gpt-5.6-luna with maximum reasoning is the default.

Xtension is free software, released under the Apache License 2.0.

Xtension is an independent project. It is not affiliated with X Corp., Twitter, OpenAI, Microsoft, Google, Mozilla, or Apple.

Project Files

  • src/: extension source code.
  • assets/: committed runtime icons and the PDF menu icon used by the extension.
  • store-assets/: committed promotional images and screenshots for store listings.
  • store-listings/: listing copy for Chrome Web Store, Edge Add-ons, and AMO.
  • releases/browser/: mirrored browser zips of past versions. The signed Windows installer is not committed; it is attached to each GitHub Release (see releases/README.md).

These folders are generated by npm run build and are not tracked in Git:

  • browsers/edge: unpacked folder for Microsoft Edge.
  • browsers/chrome: unpacked folder for Chrome, Brave, Vivaldi, or Opera.
  • browsers/firefox: unpacked folder for Firefox.
  • browsers/safari: Safari conversion notes for Xcode on macOS.
  • dist/*.zip: store-ready archives.

Build

End users do not need any development tools to install the extension itself. They can install Xtension from the Chrome Web Store or from a release archive.

The extension package does not include a model, API key, or OpenAI credential. Correction, translation, reformulation, and reply generation run through the Xtension Codex Connector, a small local process the user installs separately on Windows. The connector starts the official Codex App Server, which owns the ChatGPT OAuth session and sends the selected request data to OpenAI. Xtension never asks for an OpenAI API key.

Xtension Codex Connector

The browser extension cannot spawn a desktop CLI or safely own its OAuth refresh token. The connector is the local boundary between the extension and Codex; it contains no Gemma, llama.cpp, Whisper, or other local model. The user downloads and runs the Windows installer from:

https://xtension.jodevelop.com/dl/XtensionBridgeSetup.exe

That URL redirects to the asset of the latest GitHub Release, and its SHA-256 is published at https://xtension.jodevelop.com/dl/XtensionBridgeSetup.SHA256.txt. Maintainers can also run the connector from source:

npm run bridge

The connector listens on http://127.0.0.1:47623 and exposes /ping, /transform, /transform-stream, and ChatGPT account endpoints to the extension. Every route except /ping requires a browser-extension Origin, and the Host header is validated to block DNS rebinding. It starts a persistent codex app-server in the signed-in Windows user's session, reuses Codex's ChatGPT-managed authentication, applies the selected model and reasoning effort to each request, denies tool approvals, and uses read-only ephemeral threads. For a shared local-token setup:

$env:XTENSION_BRIDGE_TOKEN='choose-a-local-token'
npm run bridge

Then enter the same token in Xtension's hidden connector configuration. The connector is bound to 127.0.0.1, requires a browser-extension Origin on every route except /ping, and validates the Host header.

Maintainers can build, sign, and package the Windows bridge executable and its silent per-user host with:

npm run bridge:build
npm run bridge:host:build
npm run bridge:sign
npm run bridge:installer:build
npm run bridge:installer:sign

The signing scripts sign XtensionBridge.exe, XtensionBridgeHost.exe, and XtensionBridgeSetup.exe with the same Trusted Signing flow used by ClonyVoice, then verify the signatures before publication.

Install the connector for the current Windows user, without administrator rights:

npm run bridge:install

The installer copies the connector into %LOCALAPPDATA%\Programs\Xtension\Bridge, registers a current-user startup entry, starts the hidden supervisor in that same Windows session, and verifies the loopback endpoint. This is what lets Codex reuse the user's existing ChatGPT OAuth session.

To rebuild the browser packages locally:

npm run build
npm run check

Localization

Xtension uses the standard WebExtension _locales system. The generated browser packages ship five locales:

de, en, es, fr, ja.

The browser automatically selects the best matching locale from the user's UI language and falls back to en.

Local Installation

Edge

  1. Open edge://extensions.
  2. Enable Developer mode.
  3. Click Load unpacked.
  4. Select browsers/edge.

Chrome / Brave / Vivaldi / Opera

  1. Open chrome://extensions or the equivalent extension page for your Chromium browser.
  2. Enable Developer mode.
  3. Click Load unpacked.
  4. Select browsers/chrome.

Firefox

  1. Open about:debugging#/runtime/this-firefox.
  2. Click Load Temporary Add-on.
  3. Select browsers/firefox/manifest.json.

Safari

Safari requires Xcode on macOS. Use browsers/chrome as the source with the Safari converter:

xcrun safari-web-extension-converter browsers/chrome --bundle-identifier com.example.xtension

Publication

See STORE_SUBMISSION.md.

Generated archives:

  • dist/xtension-chrome-v0.6.7.zip
  • dist/xtension-edge-v0.6.7.zip
  • dist/xtension-firefox-v0.6.7.zip
  • dist/SHA256SUMS.txt
  • dist/XtensionBridgeSetup.exe
  • dist/XtensionBridgeSetup.SHA256.txt

GitHub Releases

See RELEASES.md to install Xtension from a GitHub release while store publication is pending.

Permissions

  • https://x.com/*, https://*.x.com/*, https://twitter.com/*, https://*.twitter.com/*: inject the action into X/Twitter article, tweet, and thread menus.
  • https://pbs.twimg.com/*: fetch public X/Twitter images, avatars, card images, and video preview thumbnails referenced by the selected content.
  • http://localhost:47623/*, http://127.0.0.1:47623/*: connect to the Xtension Codex Connector running on the user's computer on the default loopback port.

The extension is limited to X/Twitter for page injection. AI request data is sent from the extension to the local connector and then to OpenAI through the user's ChatGPT/Codex session; the extension itself cannot execute local commands.

About

Browser extension to improve the X/Twitter experience with practical tools, starting with clean PDF exports.

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages