← Back to docs

SocialGPT Browser Extension

Language: EN | EN | SV

SocialGPT Browser Extension

Tornevall Networks Social Media Tools is a browser-wide extension for AI-assisted replies, fact-checking, and social media workflows. The source tree stays Chrome-first for development, while release packaging can now emit separate archives for Chrome, Edge, Opera, and Firefox. All AI processing runs server-side through the Tornevall Networks Tools platform.

Who needs this

Users who have a Tornevall Networks Tools account and want AI-powered assistance while browsing, moderating social media, or reading content on any website.

Installation

  1. Install the extension from the Chrome Web Store, or load it unpacked from the projects/socialgpt-chrome folder in the Tools repository.
  2. Open the extension popup by clicking the extension icon, or open the extension config/options page for the larger settings layout.
  3. Register at tools.tornevall.net and generate a personal bearer token from your account settings.
  4. Paste the bearer token into the popup and click Test Tools β†’ OpenAI to verify the connection.

As soon as you paste or edit the token, the popup/config page now also performs a lightweight token-only validation call and shows an inline spinner plus a clear accepted/rejected result.

Multi-browser packaging

  • The root projects/socialgpt-chrome/manifest.json remains the Chrome-first source manifest.
  • Release packaging now runs through projects/socialgpt.sh, which creates browser-specific archives under projects/socialgpt-chrome/dist/.
  • Chrome, Edge, and Opera reuse the source manifest as-is.
  • Firefox receives a build-time manifest patch that adds browser_specific_settings.gecko without changing the source manifest in the repository.
  • This packaging flow does not increment the extension version by itself.

Permission model

The extension uses a two-tier permission model designed to minimize default access while preserving full browser-wide capability for users who want it.

Baseline mode (default after install)

In baseline mode the extension:

  • Injects content scripts statically only on Facebook, SoundCloud, and X / Twitter
  • Communicates only with tools.tornevall.net and tools.tornevall.com
  • Provides context menu items (Open Toolbox, Verify fact) on all pages β€” these use the activeTab permission to inject scripts temporarily when the user triggers the menu item

No passive injection happens on arbitrary pages in baseline mode.

Global browser-wide AI mode

Users with a valid Tools bearer token can enable this mode from the extension popup:

  1. Open the popup
  2. Check Enable global browser-wide AI mode
  3. Approve the Chrome permission dialog that appears (grants <all_urls>)
  4. The AI Toolbox and Verify fact overlays become available on all websites you visit

Disabling the toggle removes the broad permission immediately. The extension never activates global mode automatically.

Features

AI reply panel (Toolbox)

On pages with text composition fields, a floating button appears near the active input. Clicking it opens the Toolbox panel where you can:

  • Send an AI-assisted reply with configurable model, language, and quick-reply preset
  • Verify a fact using the surrounding context
  • Ask follow-up questions

The Toolbox header is now draggable, so you can move the panel away from the page UI instead of leaving it anchored to the default composer edge. The Toolbox close Γ— button now also works again alongside that draggable-header behavior.

Verify fact and Open Toolbox (selection overlay)

When you select text on any page (in global mode, or on the supported platforms in baseline mode), two small floating buttons appear:

  • Verify fact β€” sends the selected text to Tools for fact-checking
  • Open Toolbox β€” imports the selected text into the Toolbox context field

Both buttons can be dragged and reset with double-click or Esc. Selection detection was also hardened for short direct selections and double-click timing, so these floating actions appear more reliably on pages with sensitive editors.

Context menu (right-click)

Right-clicking anywhere on a page provides:

  • Open Toolbox β€” opens the Toolbox panel with optionally pre-filled selected text
  • Verify fact with Toolbox β€” starts a fact-check using the selected text, link, or page URL

These work on all pages. On pages without a running content script, the background injects the required scripts via activeTab when the menu item is clicked.

The popup now also includes Open Toolbox in active tab as a no-right-click fallback. If the page already has a live text selection, the popup shortcut imports that selection into Toolbox automatically.

As of 1.2.16, the popup shortcut and the right-click Open Toolbox / Verify fact with Toolbox flows are routed frame-aware through the background worker. On iframe-heavy pages the extension now prefers the most relevant injected frame (existing Toolbox frame, selected-text frame, focused editable frame, otherwise the top frame) instead of depending on whichever frame happened to answer first.

Facebook admin activities

On Facebook group admin_activities pages, the extension can capture admin log entries and submit them to Tools for reporting and statistics.

This now has two explicit consent steps:

  1. Turn on Enable Facebook admin activity statistics in the popup to allow the feature to appear on matching Facebook pages at all.
  2. Use the inline page control to enable reporting for the current Facebook URI.

If the popup toggle is off, Facebook admin pages stay quiet and no admin-statistics overlay is shown. Even when the popup toggle is on, submission is still disabled by default on each page load until the page-local control is enabled.

On the Tools dashboard, ingested Facebook admin-activity rows remain scoped to the owner of the bearer token that submitted them. The repeat-rejections panel now shows a top-10 list of people who were rejected more than once, and the regular activity by outcome chart includes an optional checkbox that overlays a Rejected more than once series when you want that comparison in the same chart.

The Facebook dashboard now also derives a second moderation layer from the stored admin-log sentence itself, so Approved / Rejected can be split between join requests and pending posts without changing the extension payload format. Anonymous pending posts are still counted as pending posts, but the summary cards also show how many of those post decisions were anonymous.

Shared Facebook chart links (/shared/facebook/chart/{token}) now auto-refresh once per minute and show a live countdown in the corner.

SoundCloud insights capture

On SoundCloud 4 Artists insights pages, the extension can capture GraphQL-based analytics payloads and submit them to Tools. Auto-ingest must be explicitly enabled in the popup before any data is sent.

Popup controls

The options/config page now mirrors the same controls as the popup, but in a larger three-card layout for easier reading and editing. Use whichever surface you prefer β€” both save the same settings. Both surfaces now also localize dynamically at runtime, with Swedish selected automatically when the browser prefers Swedish and English used as fallback. As of extension 1.2.15, that UI localization no longer leaks into the actual AI responder defaults: the Answer language and Verify-fact language selectors stay authoritative for generated output even when the popup/config page itself is shown in Swedish. The popup/options page now also exposes a dedicated Extension language selector (Auto, English, Swedish) so the extension chrome can be localized separately from the AI output language.

Control Purpose
Tools API Bearer Token Your personal token from tools.tornevall.net β€” required for all AI features
Use dev / beta server Switches to tools.tornevall.com for development and testing
Enable global browser-wide AI mode Activates full cross-site AI overlay after permission confirmation
Enable Facebook admin activity statistics Global master switch for showing the Facebook admin statistics overlay on matching pages
Enable Facebook admin debug diagnostics Shows extra diagnostics on Facebook admin pages
Open Toolbox in active tab Opens Toolbox directly from the popup and imports the current selection when available
Extension language Controls the popup/config/Toolbox UI language separately from generated AI reply language
Responder name Your name used in AI-generated replies
Auto detect Facebook name Tries to auto-fill responder name from your Facebook profile
Answer language Language for AI replies (default: match context)
Verify-fact language Language for fact-check results (default: match context)
Fact-check model AI model used for fact-checking
Default quick-reply style Tone preset for quick-reply panel
Responder profile Persona description sent to the AI (stored in Tools)
Advanced mark-mode context Optional local-only settings on the config page for richer mark labels and broader DOM context extraction
Test Tools β†’ OpenAI Tests the connection end-to-end and verifies your token

1.2.15 language selection fix

Version 1.2.15 fixes a regression introduced during the popup/config runtime localization work:

  • localized UI defaults no longer overwrite the responder profile field
  • the test-question field is no longer rewritten with translated default text at runtime
  • users affected by the accidental Swedish default responder-profile text get an automatic repair path the next time their extension settings are loaded
  • the SocialGPT on-page chrome (Toolbox, floating action buttons, fact-check actions, and context-menu labels) now follows the same separate extension-language setting instead of staying hardcoded in English

Practical effect: choosing English (or another supported output language) should once again produce output in that language instead of drifting back to Swedish because the extension UI itself is Swedish.

Advanced mark-mode context

The larger config/options page now includes an Advanced mark-mode context section for Toolbox users who need more traceability than plain [1], [2] labels.

Default behavior is unchanged:

  • marked context still uses compact numbered headers unless you change the setting
  • no broader DOM extraction is used unless you opt in

Available options:

  • Compact numbering only β€” preserves the existing minimal [1], [2], … headers
  • Numbering + generated mark id β€” adds a local id such as tn-mark-2
  • Numbering + mark id + element details β€” also includes a short descriptor based on tag / id / classes and a short text hint when available
  • Current marked block only β€” preserves the existing extraction behavior
  • Go one parent up β€” extracts one DOM level above the marked block
  • Go one parent up + scan direct child blocks β€” uses that broader parent node and also summarizes nearby direct child blocks
  • Use the whole current frame/document text β€” captures the visible text from the current page/frame document when one small DOM block is too thin

When a richer mark-label mode is enabled, the page also shows a visible badge on the selected element so you can map the on-page marker to the context text shown in Toolbox.

The extension now also runs its content scripts in nested frames (including matching about:blank child frames) where Chrome allows it, which improves iframe-backed page support for mark mode and selection overlays.

Storage

Storage area Contents
chrome.storage.sync Token, settings, model catalog, global mode flag, Facebook admin statistics feature flag β€” synced across devices
chrome.storage.session Debug logs, per-tab state β€” cleared when browser closes

The extension does not read, store, or transmit page content or URLs outside of explicit user-triggered AI actions.

Version telemetry and safe disclosure

  • SocialGPT AI requests now send additive client metadata (client_name, client_version, client_platform) to POST /api/ai/socialgpt/respond so Tools can identify which extension build created a request.
  • The client_platform field now reflects the active browser build more accurately (chrome_extension, edge_extension, opera_extension, or firefox_extension) instead of always claiming Chrome.
  • When a user explicitly asks which AI model/version is being used, the Tools-side guardrails now allow the reply to state the current model identifier and the client version.
  • The same guardrails explicitly block attempts to extract Tools internals such as hidden prompts, source code, .env values, passwords, tokens, API keys, or similar secrets.
  • When such a request pattern is detected, Tools can report the incident to the configured support email recipient.

Remote code

The extension does not download or execute remote code. All JavaScript is bundled locally. Remote communication is limited to HTTPS API calls to the Tools platform, which return JSON responses β€” not executable code.

Related

  • Tools platform: https://tools.tornevall.net
  • SocialGPT AI endpoint: /api/ai/socialgpt/respond
  • Extension settings endpoint: /api/social-media-tools/extension/settings
  • Extension token validation endpoint: /api/social-media-tools/extension/validate-token
  • Auth note: legacy personal tools_ai_bearer tokens still work, but other personal API keys can now also be used for these AI endpoints when the key is marked AI-capable and the token owner has approved OpenAI access.
  • Chrome packaging/compliance documentation: CHROME_WEB_STORE_COMPLIANCE.md in the extension source directory