Human Setup Tutorial
A screenshot-first guide for setting up ChatGPT2LocalBridge without exposing private paths, tokens, or unlock codes.
1. Initialize local policy
Pick the workspace root ChatGPT is allowed to access. Start narrow, then expand later.
npx github:harzva/chatgpt2localbridge init --root ~/Projects

2. Run the local MCP server
Load the generated environment file and start the local HTTP transport.
set -a; source .env.local; set +a
npx github:harzva/chatgpt2localbridge --http 3838

3. Review Policy Center
Open the native app when you want to edit approved roots without hand-editing JSON. Add workspace roots narrowly, add ~/.codex/skills as a skill root, and avoid approving the whole ~/.codex directory.
npm run macos:install
open /Applications/ChatGPT2LocalBridge.app

4. Check health
The local health endpoint should return `status: ok` before you expose the bridge.
curl -sS http://127.0.0.1:3838/health

5. Expose a public HTTPS tunnel
Hosted ChatGPT needs an HTTPS URL. Use a fixed tunnel domain when you want the connector to survive restarts.
ngrok http 3838 --url=your-fixed-domain.ngrok-free.dev

6. Create the ChatGPT connector
In ChatGPT connector settings, create a custom connector and use the public `/mcp` URL. Choose OAuth for any public tunnel. Use No Authentication only for a private, short-lived local test.

7. Authorize
When the authorization page opens, enter the unlock code from `.env.local`. Do not paste that code into public chats or screenshots.

8. Linux connector variant
For Linux paths, deploy a bridge on the Linux host and create a second connector such as ChatGPT2LocalBridge Linux. Keep Mac and Linux policies separate.
REMOTE=linux-box \
REMOTE_ALLOWED_ROOTS="/srv/workspace,/home/agent/projects" \
PUBLIC_BASE_URL=https://linux-bridge.example.com \
bash scripts/deploy-linux-bridge.sh
9. Use the connector
Select the ChatGPT2LocalBridge connector in ChatGPT, then ask it to list or read files inside your approved workspace.
