See what people are saying (1)

SourceMessageScoreDate

I made a Chrome extension which allows ChatGPT to access your browser tabs (r/SideProject)

https://reddit.com/link/1wko823/video/4cg5th0yrhqh1/player Lately, I have been playing around with the following problem: Why can’t I just allow ChatGPT to access the tab where I am logged in? I wasn’t interested in any browser automation or developing a complex agent architecture. I simply needed…

1

Sep 19, 2026

README

TalkMyWebsite - Free

Chat with pages ChatGPT can never reach — your LinkedIn feed, Twitter/X timeline, Gmail, banking dashboard, internal tools, or any site that requires you to be logged in.

Watch demo video:

https://www.youtube.com/watch?v=yHULQCHIhIY


The problem this solves

You can paste a public URL into ChatGPT and ask it to browse that page. But ChatGPT's servers can't log in as you. That means it completely fails for:

SituationWhy it fails without TalkMyWebsite
Authenticated pagesLinkedIn, Twitter/X, Gmail, Notion, Slack, banking — ChatGPT is not logged in as you
Dynamic / personalised feedsYour social media feed is unique to you and changes every refresh — a URL is meaningless to ChatGPT
Internal / private toolsCompany intranets, dashboards behind VPN, localhost apps
Pages that block botsMany sites detect ChatGPT's crawler and return an error or empty content

TalkMyWebsite runs entirely inside your own browser — where you are already logged in — and serves the real page content to ChatGPT through a temporary private URL.


How it works

Your Browser (logged in as you)
  │
  ├── Tab: LinkedIn / Twitter / Gmail / any private site
  │         ↑ your session & cookies are here
  │
  └── TalkMyWebsite Chrome Extension
        │
        ├── Reads the fully-rendered HTML from your active tab
        │   (authenticated, personalised, dynamic — exactly what you see)
        │
        ├── Sends it to the local API running on your machine
        │
        └── Local API creates a temporary public URL via your tunnel
              │
              └──► ChatGPT fetches that URL and gets your private page content
                          │
                          └── ChatGPT sidebar (Alt+Shift+W) is already open
                              beside your tab with full context injected

ChatGPT never touches the real website. It fetches a temporary URL your own machine generates — containing the already-rendered, already-authenticated HTML your browser captured for it.


Architecture

ComponentRole
Extension (newExtension/)Captures tab HTML, opens ChatGPT sidebar, injects page context into every message, executes AI page commands
API (api/)NestJS server — manages rooms, serves scraped HTML at temp URLs, bridges extension ↔ ChatGPT via WebSocket
Tunnel (Cloudflare / ngrok)Makes your local API reachable by ChatGPT's servers over public HTTPS

Quick Start

1. Start the API

cd api
npm install
npm run start:dev

Runs at http://localhost:3000 — WebSocket at ws://localhost:3000/ws.

2. Expose it publicly (so ChatGPT can reach it)

ChatGPT's servers need to fetch your scrape URLs. Use a tunnel:

# Cloudflare Tunnel (recommended — no timeout issues, free)
cloudflared tunnel --url http://localhost:3000

# or ngrok
ngrok http 3000

Copy the HTTPS URL it gives you (e.g. https://abc.trycloudflare.com).

3. Build and load the extension

cd newExtension
cp .env.example .env
# Edit .env: set VITE_API_PUBLIC_URL to your tunnel HTTPS URL
npm install
npm run dev:chrome

Load unpacked in Chrome: chrome://extensionsDeveloper modeLoad unpacked → select newExtension/dist_chrome/.

Incognito support: After loading, open chrome://extensionsTalkMyWebsiteDetails → turn on Allow in Incognito. The manifest uses "incognito": "spanning" so one instance bridges incognito and normal windows.


Usage

  1. Open any page in a tab — LinkedIn, your email, a private dashboard, anything.
  2. Press Alt+Shift+W — ChatGPT opens as a sidebar beside the page.
  3. ChatGPT automatically receives the current page content with every message you send.
  4. Ask questions, summarise, extract data, or give instructions — ChatGPT has your full page context.

Example: Open your LinkedIn feed → press Alt+Shift+W → ask "Who posted something about hiring today?" — ChatGPT reads your actual personalised feed and answers.


Page Actions

If ChatGPT needs to interact with the page it replies with a command JSON:

{
  "webchat": true,
  "pageId": "your-page-uuid",
  "command": { "action": "click", "selector": "button.primary" }
}

The extension executes it automatically and ChatGPT can scrape the result.


Environment Variables

VariableWhereDefaultDescription
PORTAPI3000API listen port
SCRAPE_TIMEOUT_MSAPI30000Max time to wait for a scrape response
VITE_API_PUBLIC_URLExtension buildhttp://localhost:3000Public tunnel URL — ChatGPT fetches scrape links from here
VITE_WS_URLExtension buildws://localhost:3000/wsLocal WebSocket URL — extension connects here

Troubleshooting

401 Unauthorized from ChatGPT

  1. Popup must show green Connected before copying a URL.
  2. The API was restarted — copy a fresh URL after reconnecting.
  3. Wrong port — your tunnel must point to the same port the API runs on.

ChatGPT times out

  1. Verify the tunnel is working: curl https://YOUR-TUNNEL/v1/health → should return {"ok":true}.
  2. Make sure the target tab is open when ChatGPT fetches the scrape URL.
  3. Switch from ngrok to Cloudflare Tunnel — ngrok's free tier has aggressive timeouts.

Automated Tests

# Start API first
cd api && npm run start:dev

# In another terminal
cd api && npm run test:e2e
cd api && npm run test:integration

Project Layout

webchat/
  api/              NestJS scrape API + WebSocket gateway
  newExtension/     TalkMyWebsite Chrome extension (Vite + MV3)
    public/         Static assets & icons (icon-16/32/48/128.png)
    src/background/ Service worker
    src/chatgpt/    ChatGPT content script
    src/pages/      Popup & side panel UI

Contributors

NiteshSingh17

6 commits

See what people are saying (1)

SourceMessageScoreDate

I made a Chrome extension which allows ChatGPT to access your browser tabs (r/SideProject)

https://reddit.com/link/1wko823/video/4cg5th0yrhqh1/player Lately, I have been playing around with the following problem: Why can’t I just allow ChatGPT to access the tab where I am logged in? I wasn’t interested in any browser automation or developing a complex agent architecture. I simply needed…

1

Sep 19, 2026

README

TalkMyWebsite - Free

Chat with pages ChatGPT can never reach — your LinkedIn feed, Twitter/X timeline, Gmail, banking dashboard, internal tools, or any site that requires you to be logged in.

Watch demo video:

https://www.youtube.com/watch?v=yHULQCHIhIY


The problem this solves

You can paste a public URL into ChatGPT and ask it to browse that page. But ChatGPT's servers can't log in as you. That means it completely fails for:

SituationWhy it fails without TalkMyWebsite
Authenticated pagesLinkedIn, Twitter/X, Gmail, Notion, Slack, banking — ChatGPT is not logged in as you
Dynamic / personalised feedsYour social media feed is unique to you and changes every refresh — a URL is meaningless to ChatGPT
Internal / private toolsCompany intranets, dashboards behind VPN, localhost apps
Pages that block botsMany sites detect ChatGPT's crawler and return an error or empty content

TalkMyWebsite runs entirely inside your own browser — where you are already logged in — and serves the real page content to ChatGPT through a temporary private URL.


How it works

Your Browser (logged in as you)
  │
  ├── Tab: LinkedIn / Twitter / Gmail / any private site
  │         ↑ your session & cookies are here
  │
  └── TalkMyWebsite Chrome Extension
        │
        ├── Reads the fully-rendered HTML from your active tab
        │   (authenticated, personalised, dynamic — exactly what you see)
        │
        ├── Sends it to the local API running on your machine
        │
        └── Local API creates a temporary public URL via your tunnel
              │
              └──► ChatGPT fetches that URL and gets your private page content
                          │
                          └── ChatGPT sidebar (Alt+Shift+W) is already open
                              beside your tab with full context injected

ChatGPT never touches the real website. It fetches a temporary URL your own machine generates — containing the already-rendered, already-authenticated HTML your browser captured for it.


Architecture

ComponentRole
Extension (newExtension/)Captures tab HTML, opens ChatGPT sidebar, injects page context into every message, executes AI page commands
API (api/)NestJS server — manages rooms, serves scraped HTML at temp URLs, bridges extension ↔ ChatGPT via WebSocket
Tunnel (Cloudflare / ngrok)Makes your local API reachable by ChatGPT's servers over public HTTPS

Quick Start

1. Start the API

cd api
npm install
npm run start:dev

Runs at http://localhost:3000 — WebSocket at ws://localhost:3000/ws.

2. Expose it publicly (so ChatGPT can reach it)

ChatGPT's servers need to fetch your scrape URLs. Use a tunnel:

# Cloudflare Tunnel (recommended — no timeout issues, free)
cloudflared tunnel --url http://localhost:3000

# or ngrok
ngrok http 3000

Copy the HTTPS URL it gives you (e.g. https://abc.trycloudflare.com).

3. Build and load the extension

cd newExtension
cp .env.example .env
# Edit .env: set VITE_API_PUBLIC_URL to your tunnel HTTPS URL
npm install
npm run dev:chrome

Load unpacked in Chrome: chrome://extensionsDeveloper modeLoad unpacked → select newExtension/dist_chrome/.

Incognito support: After loading, open chrome://extensionsTalkMyWebsiteDetails → turn on Allow in Incognito. The manifest uses "incognito": "spanning" so one instance bridges incognito and normal windows.


Usage

  1. Open any page in a tab — LinkedIn, your email, a private dashboard, anything.
  2. Press Alt+Shift+W — ChatGPT opens as a sidebar beside the page.
  3. ChatGPT automatically receives the current page content with every message you send.
  4. Ask questions, summarise, extract data, or give instructions — ChatGPT has your full page context.

Example: Open your LinkedIn feed → press Alt+Shift+W → ask "Who posted something about hiring today?" — ChatGPT reads your actual personalised feed and answers.


Page Actions

If ChatGPT needs to interact with the page it replies with a command JSON:

{
  "webchat": true,
  "pageId": "your-page-uuid",
  "command": { "action": "click", "selector": "button.primary" }
}

The extension executes it automatically and ChatGPT can scrape the result.


Environment Variables

VariableWhereDefaultDescription
PORTAPI3000API listen port
SCRAPE_TIMEOUT_MSAPI30000Max time to wait for a scrape response
VITE_API_PUBLIC_URLExtension buildhttp://localhost:3000Public tunnel URL — ChatGPT fetches scrape links from here
VITE_WS_URLExtension buildws://localhost:3000/wsLocal WebSocket URL — extension connects here

Troubleshooting

401 Unauthorized from ChatGPT

  1. Popup must show green Connected before copying a URL.
  2. The API was restarted — copy a fresh URL after reconnecting.
  3. Wrong port — your tunnel must point to the same port the API runs on.

ChatGPT times out

  1. Verify the tunnel is working: curl https://YOUR-TUNNEL/v1/health → should return {"ok":true}.
  2. Make sure the target tab is open when ChatGPT fetches the scrape URL.
  3. Switch from ngrok to Cloudflare Tunnel — ngrok's free tier has aggressive timeouts.

Automated Tests

# Start API first
cd api && npm run start:dev

# In another terminal
cd api && npm run test:e2e
cd api && npm run test:integration

Project Layout

webchat/
  api/              NestJS scrape API + WebSocket gateway
  newExtension/     TalkMyWebsite Chrome extension (Vite + MV3)
    public/         Static assets & icons (icon-16/32/48/128.png)
    src/background/ Service worker
    src/chatgpt/    ChatGPT content script
    src/pages/      Popup & side panel UI

Contributors

NiteshSingh17

6 commits

Languages

TypeScript

90.0%

HTML

5.6%

JavaScript

4.1%