# BridgeHook > Webhook testing for apps built with AI, and for the agents building them. Every local port gets a permanent public URL (https://.bridgehook.dev); webhooks reach the server on your machine through the BridgeHook Chrome extension or a dashboard tab, queue while it is off and arrive in order, can return your server's reply to the sender (sync mode), and can be driven by coding agents through a remote MCP server at https://relay.bridgehook.dev/mcp. Dashboard: https://app.bridgehook.dev. Source (MIT): https://github.com/hallelx2/bridgehook. Every page below is also in one file: https://docs.bridgehook.dev/llms-full.txt ## Getting Started - [Introduction](https://docs.bridgehook.dev/introduction.md): BridgeHook is webhook testing for apps built with AI, and for the agents building them. - [Quickstart](https://docs.bridgehook.dev/quickstart.md): Get a permanent webhook URL for a local port and see the first webhook arrive. ## Build with AI - [AI agents (MCP)](https://docs.bridgehook.dev/ai-agents.md): BridgeHook is a remote MCP server, so a coding agent such as Claude Code, Cursor, VS Code or Codex can build and debug webhook handlers against your real local server. - [AGENTS.md snippet](https://docs.bridgehook.dev/agent-instructions.md): Coding agents read a project file at the start of every session: AGENTS.md (Codex, Cursor and others), CLAUDE.md (Claude Code) or .github/copilot-instructions.md. - [Sync responses](https://docs.bridgehook.dev/sync-responses.md): Most webhooks only need a 2xx, and by default a BridgeHook URL answers 202 at once and delivers in the background. ## Provider Guides - [OpenAI webhooks](https://docs.bridgehook.dev/openai.md): OpenAI calls your endpoint when background work finishes: a background response, a batch, a fine-tuning job, an eval run. - [ElevenLabs agents](https://docs.bridgehook.dev/elevenlabs.md): ElevenLabs Agents use webhooks in two directions. - [Vapi](https://docs.bridgehook.dev/vapi.md): Vapi posts call events to your server URL, and some of them need an answer: tool-calls, assistant-request, transfer-destination-request and knowledge-base-request. - [Stripe](https://docs.bridgehook.dev/stripe.md): Point a Stripe event destination at your BridgeHook URL instead of running stripe listen. - [GitHub](https://docs.bridgehook.dev/github.md): Use your BridgeHook URL as a repository, organization or GitHub App webhook. ## Core Concepts - [How It Works](https://docs.bridgehook.dev/how-it-works.md): Three parts: a relay in the cloud, a forwarder in your browser, and your local server. - [Live updates (SSE)](https://docs.bridgehook.dev/sse-technology.md): BridgeHook pushes "something changed" to your browser with Server-Sent Events, the same one-way HTTP stream used for streamed LLM output. - [No-install mode](https://docs.bridgehook.dev/browser-bridge.md): A dashboard tab can do the extension's job. ## Security - [Security Model](https://docs.bridgehook.dev/security-model.md): A webhook URL is meant to be public: you paste it into Stripe, OpenAI or Vapi. - [Channel Keys](https://docs.bridgehook.dev/channel-secrets.md): Anyone can send to a webhook URL, which is the point of one. - [Path Allowlist](https://docs.bridgehook.dev/path-allowlist.md): A webhook URL is public, so anyone can send to any path under it. ## Hosted Mode - [Authentication](https://docs.bridgehook.dev/auth.md): BridgeHook uses Better-Auth. - [Device Pairing](https://docs.bridgehook.dev/device-pairing.md): A dashboard tab forwards only while it is open. - [Billing](https://docs.bridgehook.dev/billing.md): Hosted BridgeHook is on the Free plan for everyone today. - [Replay](https://docs.bridgehook.dev/replay.md): Every webhook is persisted with its full request body, headers, response, and timing. ## Comparison - [BridgeHook vs ngrok](https://docs.bridgehook.dev/vs-ngrok.md): ngrok is a general-purpose tunnel: it exposes a local port to the internet through an agent you run. - [BridgeHook vs Cloudflare Tunnel](https://docs.bridgehook.dev/vs-cloudflare-tunnel.md): Cloudflare Tunnel connects a service to Cloudflare through the cloudflared daemon. - [BridgeHook vs localtunnel](https://docs.bridgehook.dev/vs-localtunnel.md): localtunnel is an open-source tunnel started with npx localtunnel --port 3000, served from loca.lt or your own server. - [Tradeoffs](https://docs.bridgehook.dev/tradeoffs.md): What BridgeHook is good at, and where something else is the better tool. ## API Reference - [Relay API Reference](https://docs.bridgehook.dev/relay-api.md): The hosted relay is https://relay.bridgehook.dev; webhook intake is on each channel's own host. - [SSE Events](https://docs.bridgehook.dev/sse-events.md): GET /api/me/stream is a per-user Server-Sent Events stream covering all of your channels. ## Deployment - [Self-Hosting](https://docs.bridgehook.dev/self-hosting.md): BridgeHook is fully open source. - [Architecture](https://docs.bridgehook.dev/architecture.md): BridgeHook is one pnpm monorepo: the relay, the dashboard, the extension and these docs.