Skip to content

Computer Use Chrome extension is unavailable in Chrome Web Store; is there an offline installer? #21700

Description

@DevDengChao

What happened

The Chrome extension used by Codex Desktop's Computer Use / Google Chrome integration cannot currently be downloaded from the Chrome Web Store.

The Chrome Web Store page opens at:

https://chromewebstore.google.com/detail/hehggadaopoacecdllhhajmbjkdcmjag/error

but it shows an error page saying the item cannot be purchased or downloaded. In my localized Chrome UI, the message is:

此商品无法购买或下载

Image

In Codex Desktop settings, the Computer Use > Google Chrome page still shows Chrome as not connected and offers "Reinstall extension", but following the store link leads back to the unavailable item page.

Environment

  • OS: Windows
  • Codex desktop app package: Microsoft Store / WindowsApps
  • Appx package observed locally: OpenAI.Codex_26.506.2212.0_x64__2p2nqsd0c76g0
  • Area: Settings > Computer Use > Google Chrome
  • Chrome Web Store extension ID from the failing URL: hehggadaopoacecdllhhajmbjkdcmjag

Expected behavior

The Chrome extension needed for Computer Use should be installable from the Chrome Web Store, or Codex should provide a documented fallback installation path.

Actual behavior

The Chrome Web Store reports that the item cannot be purchased or downloaded, so the Computer Use Google Chrome integration cannot be connected through the in-app install/reinstall flow.

Question / request

Is there an official offline installer, CRX package, unpacked extension bundle, or another documented fallback that users can download and install manually when the Chrome Web Store page is unavailable in their region/account/browser?

If an offline package is not currently available, could one be provided or documented for cases where Chrome Web Store distribution is blocked or unavailable?

Activity

  1. added
    bugSomething isn't working
    appIssues related to the Codex desktop app
    windows-osIssues related to Codex on Windows systems
    on May 8, 2026
  2. caidwang commented on May 8, 2026

    @caidwang

    the same for mac of intel/m chip

  3. mudassirzulfiqar commented on May 8, 2026

    @mudassirzulfiqar

    Same

  4. coolMornSec commented on May 9, 2026

    @coolMornSec
    Image Windows Codex Desktop
  5. mudassirzulfiqar commented on May 9, 2026

    @mudassirzulfiqar

    I have read that for EU region its not available, no idea how credible this statement is.

  6. CUIT-fenghuiyu commented on May 12, 2026

    @CUIT-fenghuiyu

    same!

  7. EtherealBloom commented on May 14, 2026

    @EtherealBloom

    same

  8. debugtheworldbot commented on May 14, 2026

    @debugtheworldbot

    I know the problem, if you are in hong kong, this extension is not available
    Try switching your VPN to the US

  9. hu1990a commented on May 17, 2026

    @hu1990a

    Mine is the same. Even when the VPN is switched to the US, it still doesn't work.

  10. menduo commented on May 17, 2026

    @menduo

    Mine is the same. Even when the VPN is switched to the US, it still doesn't work.

    @hu1990a It appears to be tied to the region associated with your Google account, rather than the region of your network connection.

  11. sylarXu commented on May 23, 2026

    @sylarXu

    switch vpn to a US work for me

  12. 8 remaining items

  13. vladradishevsky commented on Jun 18, 2026

    @vladradishevsky

    Offline installation from crx

    codex-openai-1.1.5.crx
    SHA-256: 54e8d5c26f0e47ee9e33b56276b7e1305991dd5de7b046a4c74e57e076f0545f

    1. Download the extension package to a normal folder
    2. Rename .crx to .zip
    3. unzip the extension so you have any directory
    4. Open Chrome and go to chrome://extensions/
    5. Enable Developer mode using the toggle in the top-right corner
    6. Click Load unpacked
    7. Select the extracted extension folder, not the .crx file itself
    8. Chrome will load the extension and it should appear in the extensions list
  14. xuwenxinedu commented on Jun 19, 2026

    @xuwenxinedu

    It works, but it needs a few extra steps. Fortunately, those steps can be handled by Codex as well.

    from codex

  15. simfor99 commented on Jun 23, 2026

    @simfor99

    Quick update: the Codex Chrome extension appears to be available again for my Chrome profile/account.

    I can now see the extension installed and enabled on chrome://extensions:

    • Extension: Codex
    • Version: 1.1.5
    • ID: hehggadaopoacecdllhhajmbjkdcmajg
    • Description: Control Chrome with Codex.

    So at least for my account/region, the Chrome extension is back and no offline CRX workaround seems necessary anymore.

  16. gabykeidi-del commented on Jun 24, 2026

    @gabykeidi-del

    Same issue here on macOS + Chrome.

    The official Codex extension URL redirects to /detail/hehggadaopoacecdllhhajmbjkdcmajg/error, and the extension is unavailable in both the store page and search.

    I tested VPN off, different VPN regions, and a clean Chrome profile, with the same result every time.

    This looks like Web Store/account-region gating rather than a local Chrome issue. Please confirm whether the extension is currently region/account restricted or provide an official reinstall path.

  17. NextSwift commented on Jul 2, 2026

    @NextSwift

    codex chrome extension are forbidden in some region, here is a solution:

  18. gdszyy commented on Jul 10, 2026

    @gdszyy

    You'll need TUN mode for you US vpn.

  19. k2bg4fhw85-wq commented on Jul 15, 2026

    @k2bg4fhw85-wq

    VPN US Work, thanks

  20. hearme1991 commented on Jul 21, 2026

    @hearme1991

    VPN US Work

  21. snowysuki2233 commented on Aug 2, 2026

    @snowysuki2233

    I know the problem, if you are in hong kong, this extension is not available Try switching your VPN to the US

    Thanks! u really helps me a lot~

  22. naipi11 commented on Aug 18, 2026

    @naipi11

    If Computer Use -> Google Chrome shows the Web Store error page (.../hehggadaopoacecdllhhajmbjkdcmjag/error), the listing is region-gated. The extension is not missing from the app.

    Method:

    1. Open that Chrome Web Store item from a US-region network / VPN.
    2. Install the official extension there, then turn the VPN off.
    3. In Codex Desktop, open Computer Use -> Google Chrome and use Reinstall / reconnect.
    4. Confirm Chrome shows the Codex Computer Use extension as enabled.

    Do not sideload a random CRX. If the store page still 404s from every region, this is an availability outage, not a local install problem.

    Independent community workaround; not an official OpenAI fix.

  23. alanhe421 commented on Sep 9, 2026

    @alanhe421

    just depends on region, you can use proxy. eg us proxy

  24. Vita1986 commented on Sep 11, 2026

    @Vita1986

    Reproduced on 2026-09-11 with the current Windows desktop build.\n\nEnvironment:\n- Windows 11 x64\n- Codex Desktop / Microsoft Store package: 26.903.9818.0\n- Google Chrome: 153.0.8010.37 (official 64-bit build)\n- Extension ID: hehggadaopoacecdllhhajmbjkdcmajg\n\nSteps/result:\n1. Settings -> Computer Use -> Google Chrome shows Browser extension is not installed.\n2. Clicking Install opens the official Chrome Web Store URL and redirects to /detail/hehggadaopoacecdllhhajmbjkdcmajg/error.\n3. The store shows This product is unavailable.\n4. Codex Desktop was updated/reinstalled and fully restarted.\n5. Local Chrome policies were checked: only QuicAllowed=0 and DnsOverHttpsMode=off are configured; no extension blocklist/allowlist policy was found.\n\nThe public store listing is currently visible through web indexing and identifies OpenAI as the publisher, but the actual Chrome profile cannot install it. Please confirm whether this is an account, country, workspace, or rollout entitlement issue and provide an official supported installation path. A paid account is affected.\n\nTask/chat ID for support correlation: 01a04350-770e-7422-bd12-a5cc2962dc89

  25. burgaburga commented on Sep 16, 2026

    @burgaburga

    Reproduced on Windows with the current ChatGPT Desktop build.

    • ChatGPT Desktop: 26.908.40834
    • Release date: 2026-09-12
    • Google Chrome: 153.0.8010.36
    • Extension ID: hehggadaopoacecdllhhajmbjkdcmajg
      Clicking the Google Chrome install option from ChatGPT/Codex redirects the Chrome Web Store to /error and shows “此商品无法购买或下载 / This item cannot be purchased or downloaded”.
      I also tested with a confirmed US IP exit using system-wide TUN mode, and the result is unchanged.
      I submitted diagnostics through ChatGPT Desktop feedback.
      Feedback ID:
      no-active-thread-01a0a8a0-2edc-7312-8a65-ed8d7f3ab783
      Please confirm whether this is an account/workspace rollout restriction or a Chrome Web Store distribution issue, and provide an official supported installation method if available.
  26. web3daemon commented on Oct 7, 2026

    @web3daemon

    Working offline installation workaround for Codex Chrome extension on Windows

    I managed to get the Codex Chrome extension working offline on Windows after Codex kept showing:

    Not installed
    

    and the extension popup showed:

    Disconnected
    

    The main issue was not the extension files themselves.

    The problem was that when the .crx file was extracted and loaded using Load unpacked, Chrome assigned the extension a different ID because the extracted manifest.json did not contain the original public key.

    Codex Desktop expects a specific stable extension ID:

    hehggadaopoacecdllhhajmbjkdcmajg
    

    Once the correct public key was restored in manifest.json, Chrome generated the expected ID and Codex connected successfully.


    Environment

    This worked for me on:

    Windows
    Codex Desktop
    Codex Chrome extension version: 1.1.5
    Chrome
    

    The Codex app installed on my machine referenced this stable Chrome extension ID internally:

    hehggadaopoacecdllhhajmbjkdcmajg
    

    1. Download the CRX manually

    Chrome may refuse to download/install a .crx directly from a non-Web-Store URL.

    I downloaded it using PowerShell instead:

    Invoke-WebRequest "https://storage.yandexcloud.net/temp-sgjfgsdj/codex-openai-1.1.5.crx" `
      -OutFile "$env:USERPROFILE\Downloads\codex-openai-1.1.5.crx"

    After that, verify that the file exists:

    Get-Item "$env:USERPROFILE\Downloads\codex-openai-1.1.5.crx"

    2. Verify the SHA-256

    Run:

    Get-FileHash "$env:USERPROFILE\Downloads\codex-openai-1.1.5.crx" -Algorithm SHA256

    For the CRX I used, the SHA-256 was:

    54E8D5C26F0E47EE9E33B56276B7E1305991DD5DE7B046A4C74E57E076F0545F
    

    If your hash is different, stop and verify where your file came from before continuing.


    3. Extract the CRX

    Copy it as a ZIP:

    Copy-Item `
      "$env:USERPROFILE\Downloads\codex-openai-1.1.5.crx" `
      "$env:USERPROFILE\Downloads\codex-openai-1.1.5.zip"

    Then extract it:

    Expand-Archive `
      "$env:USERPROFILE\Downloads\codex-openai-1.1.5.zip" `
      "$env:USERPROFILE\Downloads\codex-openai-1.1.5" `
      -Force

    You should now have a directory like:

    C:\Users\<USERNAME>\Downloads\codex-openai-1.1.5
    

    Inside it there should be:

    manifest.json
    background.js
    popup.html
    images\
    ...
    

    4. First attempt: Load unpacked

    Open:

    chrome://extensions/
    

    Enable:

    Developer mode
    

    Click:

    Load unpacked
    

    and select:

    C:\Users\<USERNAME>\Downloads\codex-openai-1.1.5
    

    The extension should load.

    However, in my case Chrome assigned it a different extension ID.

    Codex Desktop therefore still showed:

    Not installed
    

    and the extension showed:

    Disconnected
    

    5. Why this happens

    The extracted manifest.json did not contain a "key" field.

    Without the original extension public key, Chrome generates a different extension ID for an unpacked extension.

    That means the extension can look completely correct and still not be recognized by Codex.

    The ID generated by Chrome from the unpacked extension was different from the stable ID expected by Codex.

    Expected ID:

    hehggadaopoacecdllhhajmbjkdcmajg
    

    6. Extract the public key from the CRX3 header

    The CRX file was CRX version 3.

    You can confirm this and extract the RSA public keys using Python.

    Create:

    C:\Users\<USERNAME>\Downloads\check_crx.py
    

    with the following contents:

    import struct
    import hashlib
    import base64
    
    PATH = r"C:\Users\<USERNAME>\Downloads\codex-openai-1.1.5.crx"
    
    
    def read_varint(data, pos):
        result = 0
        shift = 0
    
        while True:
            b = data[pos]
            pos += 1
    
            result |= (b & 0x7F) << shift
    
            if not (b & 0x80):
                return result, pos
    
            shift += 7
    
    
    def parse_fields(data):
        pos = 0
        fields = []
    
        while pos < len(data):
            key, pos = read_varint(data, pos)
    
            field_num = key >> 3
            wire_type = key & 7
    
            if wire_type == 0:
                value, pos = read_varint(data, pos)
                fields.append((field_num, wire_type, value))
    
            elif wire_type == 2:
                length, pos = read_varint(data, pos)
                value = data[pos:pos + length]
                pos += length
                fields.append((field_num, wire_type, value))
    
            elif wire_type == 1:
                value = data[pos:pos + 8]
                pos += 8
                fields.append((field_num, wire_type, value))
    
            elif wire_type == 5:
                value = data[pos:pos + 4]
                pos += 4
                fields.append((field_num, wire_type, value))
    
            else:
                raise ValueError(f"Unsupported wire type: {wire_type}")
    
        return fields
    
    
    def extension_id_from_key(pubkey):
        digest = hashlib.sha256(pubkey).digest()[:16]
    
        return "".join(
            chr(ord("a") + int(c, 16))
            for c in digest.hex()
        )
    
    
    with open(PATH, "rb") as f:
        data = f.read()
    
    if data[:4] != b"Cr24":
        raise SystemExit("Not a CRX file")
    
    version = struct.unpack("<I", data[4:8])[0]
    
    print("CRX version:", version)
    
    if version != 3:
        raise SystemExit(f"Expected CRX3, got CRX{version}")
    
    header_len = struct.unpack("<I", data[8:12])[0]
    header = data[12:12 + header_len]
    
    print("Header length:", header_len)
    
    top_fields = parse_fields(header)
    
    found = False
    
    for field_num, wire_type, value in top_fields:
    
        # CRX3 field 2 = sha256_with_rsa
        if field_num == 2 and wire_type == 2:
    
            proof_fields = parse_fields(value)
    
            for pf_num, pf_wire, pf_value in proof_fields:
    
                # field 1 = public_key
                if pf_num == 1 and pf_wire == 2:
    
                    pubkey = pf_value
    
                    ext_id = extension_id_from_key(pubkey)
    
                    print()
                    print("Public key length:", len(pubkey))
                    print("Extension ID:", ext_id)
                    print("Manifest key:")
                    print(base64.b64encode(pubkey).decode())
    
                    found = True
    
    if not found:
        print("RSA public key not found")

    Replace:

    <USERNAME>
    

    with your Windows username.

    Then run:

    python "$env:USERPROFILE\Downloads\check_crx.py"

    7. Find the key that produces the Codex extension ID

    In my CRX, the script found two RSA public keys.

    One of them produced:

    hehggadaopoacecdllhhajmbjkdcmajg
    

    This matched the stable extension ID expected by my installed Codex runtime.

    The corresponding public key was:

    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr5M/DZ28sAuOnk9v8C2IPTLNEZ0F0pv9qwRzMAbGbE0NB6I6T+wS6Na2n0sbQOK98iezN2FX26dsBWMELXtf4YCETdRiFSBOnNhZObZdrxeTTrhk1AhKA/Id5vgDWfSZ3Q+9BjBWHYK9yuTGo3PMK/yOW/CH6cSn07btvn7Aq+t+KrAwGOJewCN7gGojOrshJs/YwdxwxpUnb7s6QbFGkPKg9G6as4y4ipQ8fiQHRAcKm+mUK/CoCVSL+c4Yog0CSJqEEaruOeh8CgM4V0LX4kw5rs/4THAvTwtYRsW0n3faVR7uGj1eadsWuKciQHxpRMI9I4EE7yuaxavv3Agf6QIDAQAB
    

    8. Add the original key to manifest.json

    You can modify the extracted manifest automatically with PowerShell.

    Run:

    $path = "$env:USERPROFILE\Downloads\codex-openai-1.1.5\manifest.json"
    
    $j = Get-Content $path -Raw | ConvertFrom-Json
    
    $j | Add-Member `
      -NotePropertyName key `
      -NotePropertyValue "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr5M/DZ28sAuOnk9v8C2IPTLNEZ0F0pv9qwRzMAbGbE0NB6I6T+wS6Na2n0sbQOK98iezN2FX26dsBWMELXtf4YCETdRiFSBOnNhZObZdrxeTTrhk1AhKA/Id5vgDWfSZ3Q+9BjBWHYK9yuTGo3PMK/yOW/CH6cSn07btvn7Aq+t+KrAwGOJewCN7gGojOrshJs/YwdxwxpUnb7s6QbFGkPKg9G6as4y4ipQ8fiQHRAcKm+mUK/CoCVSL+c4Yog0CSJqEEaruOeh8CgM4V0LX4kw5rs/4THAvTwtYRsW0n3faVR7uGj1eadsWuKciQHxpRMI9I4EE7yuaxavv3Agf6QIDAQAB" `
      -Force
    
    $j | ConvertTo-Json -Depth 20 |
      Set-Content $path -Encoding UTF8

    You can verify that the key was added:

    Get-Content "$env:USERPROFILE\Downloads\codex-openai-1.1.5\manifest.json"

    You should now see:

    "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A..."

    9. Remove the incorrectly loaded extension

    Open:

    chrome://extensions/
    

    Remove the Codex extension that was loaded before adding the key.

    This is important because Chrome will not retroactively change the ID of the already-loaded unpacked extension.


    10. Load the extension again

    Click:

    Load unpacked
    

    and select:

    C:\Users\<USERNAME>\Downloads\codex-openai-1.1.5
    

    Now check the extension ID.

    It should be:

    hehggadaopoacecdllhhajmbjkdcmajg
    

    If it is still different, verify that:

    1. the "key" field exists in manifest.json
    2. you loaded the correct extracted directory
    3. the directory you selected directly contains manifest.json

    11. Restart Chrome and Codex

    Fully close both applications.

    It may help to verify in Task Manager that there are no remaining:

    chrome.exe
    codex.exe
    

    processes.

    Then start:

    1. Codex
    2. Chrome

    Open the Codex extension popup.

    For me, the status changed from:

    Disconnected
    

    to:

    Connected
    

    Codex Desktop also stopped showing:

    Not installed
    

    The browser connection then worked normally.


    Result

    Working state:

    Extension ID:
    hehggadaopoacecdllhhajmbjkdcmajg
    
    Extension:
    Connected
    
    Codex:
    Chrome installed / connected
    

    Optional: verify what extension ID your Codex build expects

    I also verified the expected extension ID directly inside the browser runtime bundled with Codex.

    On my installation, Codex files were located under:

    %LOCALAPPDATA%\OpenAI\Codex\runtimes\
    

    Searching for the extension ID:

    Get-ChildItem "$env:LOCALAPPDATA\OpenAI\Codex" `
      -Recurse `
      -File `
      -Include *.json,*.js,*.mjs,*.cjs `
      -ErrorAction SilentlyContinue |
    Select-String -Pattern "hehggada"

    My installed Codex browser runtime contained the stable Chrome configuration:

    hehggadaopoacecdllhhajmbjkdcmajg
    

    So this was not a guessed ID — it matched the configuration used by the installed Codex build.


    Optional: native messaging troubleshooting

    During troubleshooting I also checked the Chrome Native Messaging registry entries.

    Example:

    reg query "HKCU\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension" /s
    reg query "HKLM\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension" /s
    reg query "HKLM\Software\WOW6432Node\Google\Chrome\NativeMessagingHosts\com.openai.codexextension" /s

    In my case those checks initially returned no matching registry entry.

    However, I did not manually create or modify the native messaging host.

    Once the extension was loaded with the correct extension ID and Chrome/Codex were restarted, the extension connected successfully.

    So I would recommend fixing the extension ID first before manually touching Native Messaging configuration.


    Why the workaround works

    Chrome extension IDs are derived from the extension's public key.

    When the CRX is installed normally, Chrome has access to the signing/public-key information.

    When the CRX is manually extracted, the resulting manifest.json may not contain the "key" property.

    If you then use:

    Load unpacked
    

    Chrome generates an ID based on the unpacked extension state instead of preserving the original store extension identity.

    Codex Desktop looks for a known extension ID.

    Therefore:

    correct files + wrong ID = Codex says "Not installed"
    

    while:

    correct files + original public key + correct ID = Connected
    

    Important security note

    The CRX URL above is not a Chrome Web Store URL.

    Do not blindly install third-party extension packages.

    At minimum:

    1. verify the SHA-256
    2. inspect the extension permissions
    3. inspect manifest.json
    4. only use a package whose origin you trust

    The hash I used for version 1.1.5 was:

    54E8D5C26F0E47EE9E33B56276B7E1305991DD5DE7B046A4C74E57E076F0545F
    

    This guide documents the package and version that worked for me. Future Codex/extension releases may use a different CRX, key, hash, or extension ID.


    TL;DR

    If you already have the correct 1.1.5 CRX:

    1. Download it.
    2. Verify SHA-256.
    3. Extract it.
    4. Add the original public key to manifest.json.
    5. Remove the previously loaded unpacked extension.
    6. Load the folder again.
    7. Verify the ID is:
    hehggadaopoacecdllhhajmbjkdcmajg
    
    1. Restart Chrome and Codex.
    2. The extension should show:
    Connected
    

    The critical part is preserving the original extension identity by restoring the "key" field.

  27. hotea commented on Oct 11, 2026

    @hotea

    Change your IP to US region, then you can install the extension from chrome store

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbrowserbugSomething isn't workingcomputer-usewindows-osIssues related to Codex on Windows systems

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions