How I built a managed ChatGPT browser for my desktop AI companion: no pairing link, no borrowed tab
Description and use
<h1> How I built a managed ChatGPT browser for my desktop AI companion: no pairing link, no borrowed tab </h1> <p>The worst setup flow I shipped was the one that worked. To connect my desktop companion to ChatGPT, you copied a pairing link out of the app, pasted it into your browser, and hoped the two ends agreed about who they were talking to. It worked — and every user who did it had to understand my architecture to do it. A pairing link is a credential the user carries by hand, and a hand-carried credential is a credential that gets pasted into the wrong place, screenshotted into a bug repo
Problem
<h1> How I built a managed ChatGPT browser for my desktop AI companion: no pairing link, no borrowed tab </h1> <p>The worst setup flow I shipped was the one that worked. To connect my desktop companion to ChatGPT, you copied a pairing link out of the app, pasted it into your browser, and hoped the two ends agreed about who they were talking to. It worked — and every user who did it had to understand my architecture to do it. A pairing link is a credential the user carries by hand, and a hand-carried credential is a credential that gets pasted into the wrong place, screenshotted into a bug repo
Outcome
<h1> How I built a managed ChatGPT browser for my desktop AI companion: no pairing link, no borrowed tab </h1> <p>The worst setup flow I shipped was the one that worked. To connect my desktop companion to ChatGPT, you copied a pairing link out of the app, pasted it into your browser, and hoped the two ends agreed about who they were talking to. It worked — and every user who did it had to understand my architecture to do it. A pairing link is a credential the user carries by hand, and a hand-carried credential is a credential that gets pasted into the wrong place, screenshotted into a bug repo
Evidence
How I built a managed ChatGPT browser for my desktop AI companion: no pairing link, no borrowed tab
- Record date: 2026-11-01T11:14:11.379Z