FranzAI Bridge

CORS bypass + API key injection for browser AI apps. Make API calls from any webpage. Your keys stay secure.

Install Extension Try Demo GitHub
Checking for extension...

Features

Everything you need to call AI APIs from static webpages

CORS Bypass

Make cross-origin requests from any webpage. The extension routes requests through its background script, which has no CORS restrictions.

Secure API Keys

API keys are stored in extension storage, never exposed to page JavaScript. Keys are auto-injected per provider.

Request Inspector

DevTools-style panel shows all requests/responses. See headers, bodies, timing, and errors in real-time.

Multi-Provider

Built-in support for OpenAI, Anthropic Claude, Google Gemini, and Mistral. Add custom rules for any API.

Zero Config

Just add your API key and start making requests. Works with existing fetch() code - no changes needed.

Allowlists

Control which pages can use the bridge and which APIs can be called. Prevent unauthorized access.

Supported AI Providers

Built-in injection rules for major AI APIs

O
OpenAI
A
Anthropic
G
Google Gemini
M
Mistral

Quick Start

Just use fetch() - the extension handles the rest

// Call OpenAI from any webpage - no backend needed
const response = await fetch("https://api.openai.com/v1/chat/completions", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    model: "gpt-5.1-codex-mini",
    messages: [{ role: "user", content: "Hello!" }]
  })
});

const data = await response.json();
console.log(data.choices[0].message.content);
// API key auto-injected by FranzAI Bridge!

Installation

Get started in under 2 minutes

Download Extension

Loading version...

Step-by-Step Installation

1

Download the Extension

Click the Download ZIP button above to get the latest version of FranzAI Bridge.

The ZIP file contains everything needed - no build required.
2

Extract the ZIP File

Unzip the downloaded file to a folder you'll keep (e.g., ~/Extensions/franzai-bridge).

macOS/Linux: unzip franzai-bridge-latest.zip -d franzai-bridge
Keep this folder! Chrome needs it to run the extension.
3

Open Chrome Extensions Page

Go to chrome://extensions in your browser, or:

Menu → More Tools → Extensions
Developer mode
← Enable this toggle (top right)
4

Load the Extension

Click "Load unpacked" and select the extracted folder.

The extension should now appear in your extensions list!
5

Open the Side Panel

Click the FranzAI Bridge icon in your toolbar to open the side panel.

← Click this icon
6

Add Your API Keys

In the side panel, go to Settings and click "+ Add ENV Variable".

Name OPENAI_API_KEY
Target api.openai.com
Value sk-proj-••••••••••••
Keys are target-restricted - each key only sent to its configured domain. Never exposed to pages or other sites.

You're Ready!

Start making AI API calls from any webpage. Try the live demo to test your setup.

Test Your Setup →

Using with local HTML files?

To use FranzAI Bridge with file:// URLs, enable file access:

  1. Go to chrome://extensions
  2. Find "FranzAI Bridge V2" and click Details
  3. Enable "Allow access to file URLs"

How It Works

The extension intercepts fetch() and routes requests through its background script

Your Page
fetch("api.openai.com")
Content Script
chrome.runtime.sendMessage
Background Script
No CORS!
1 Validate allowlists
2 Inject API key
3 Make real fetch()
4 Return response
response.json()
passes through
response data

FAQ

Is my API key secure?

Yes. API keys are stored in Chrome's extension storage, which is not accessible to page JavaScript. Keys are only used when making requests through the bridge.

Does this work with any API?

Yes. While we have built-in support for major AI providers, you can add custom injection rules for any API.

Is there a request size limit?

Bodies are limited to 5 MB due to Chrome extension messaging constraints. This is sufficient for most API calls.

Does it support streaming responses?

Not currently. Responses are fully buffered before being returned to the page.

Can I use this on file:// URLs?

Yes. Enable "Allow access to file URLs" in the extension settings at chrome://extensions.