- Click a
tel:link → it opens your phone app. Useless on a desktop or a laptop in a hotel room. - Travelling? You’re sitting on hold internationally at $3/minute.
- No way for an Artificial Intelligence (AI) agent to take over the call — the channel is opaque.
- Five different click-to-call widgets on the market; every one tied to a vendor Private Branch Exchange (PBX) with merchant lock-in.
Your AI, acting on any website you visit.
You go to a restaurant’s site, your bank, an airline, a doctor’s office. The site declares what visitors can do via a manifest at /.well-known/. Reach reads it, and your AI handles the action for you — book the table, dispute the charge, check in for the flight, schedule the appointment — without you copying form fields or sitting on hold. Works in Claude, ChatGPT, Chrome, Safari, and the Mac menu bar.
- Get authenticated userread
- List repository issuesread
- Create issuewrite
- List pull requestsread
- Delete repositorydestructive
Demo composition. Replace with recorded Graphics Interchange Format (GIF) before public launch.
Call any website. No phone number.
The original frustration that started this project: “I see a phone number on a website and I can’t call it from my Mac, especially when I’m travelling without my SIM.”
Reach answers that. A site declares a /.well-known/voice.json endpoint — your Reach extension or Mac menu bar dials it over Web Real-Time Communication (WebRTC). No Public Switched Telephone Network (PSTN). No Subscriber Identity Module (SIM) card. No Skype credits. Free, encrypted, two-way, anywhere Wi-Fi works.
- Open any site that publishes
/.well-known/voice.json. The ⚡ palette shows a 📞 Call action. - Click it. The Reach call window opens — consent gate, microphone permission, live audio meters, mute, hangup, hold timer.
- Connection is browser-to-publisher over WebRTC. Free for you. Cheap for the merchant ($0 of carrier minutes vs. $0.005–$0.02 PSTN-bound).
- The same
/.well-known/manifest layer Anthropic uses for Model Context Protocol (MCP) and Google uses for Universal Commerce Protocol (UCP) — open standard, no lock-in.
How it works under the hood
- The publisher hosts
/.well-known/voice.jsondeclaring their endpoint: WebSocket signaling Uniform Resource Locator (URL), Interactive Connectivity Establishment (ICE) servers, identity (Session Initiation Protocol Uniform Resource Identifier, SIP URI), audio/video flags, recording policy, business hours. - Reach reads the manifest just like any other
/.well-known/entry. The capability surfaces in the palette with a distinct 📞 Call badge. - Click. The Reach Call surface opens in either a separate browser window (Chrome / Safari extension) or inline in the Mac menu bar — both use the same
@inferlane/reach-voiceclient. - SIP-over-WebSocket handshake. WebRTC peer connection with Opus audio. Browser asks the user for microphone permission once, then it’s quiet.
- Hang up; window closes. Reach logs the metadata (domain, capability identifier, latency) through the optional InferLane cost-tracking surface — never the audio content.
Full specification at docs/voice-json-spec.md. Open for feedback at [email protected].
/.well-known/voice.json today — Reach is shipping the client + the standard + the operator dashboard (Phase B) so the publisher side has a clean path. The InferLane support line is the first endpoint; pilot customers (small businesses on Shopify, freelancers, agencies) come next. If the standard takes off the way robots.txt, security.txt, and agentic-commerce.json have, every site you visit becomes callable. If it doesn’t, you still have the open-source client + the merchant operator dashboard, and the consumer-grade alternative to enterprise PBX widgets.
The vision: your agent on every site you visit
Reach is built for the case where you arrive at a website you don’t operate — a bank, an airline, a doctor’s office, a small business’s booking page — and the site has published a manifest declaring what visitors can do. Your agent reads it and handles the action for you with your stored identity, your stored payment, your consent.
You go to your-bank.com. Tell your agent: “Dispute the $42.50 charge from last Tuesday — merchant overcharged me.”
You open qantas.com. “Check me in for tomorrow morning’s Sydney flight — aisle seat, no checked bag.”
You’re browsing a local restaurant’s site. “Book a table for 2 at 7 pm Saturday — window if available.”
You’re on your GP’s clinic page. “Book my annual physical for any morning the week of the 15th. Use my regular doctor.”
You land on a product page. “Buy this kettle in red, ship to home, use my saved card.”
You open your electricity provider’s site. “Pay this month’s bill — check the amount looks right against last month first.”
You visit the transport authority’s renewal portal. “Renew my driver’s licence — it expires in three weeks.”
You’re on a vendor’s help page after a delivery problem. “Open a ticket: my order didn’t arrive, here’s the tracking number.”
None of these sites publish manifests today. The vision works when banks, airlines, retailers, and small businesses start declaring what visitors can do at /.well-known/ — the same way they started declaring robots.txt in the 1990s and security.txt in the 2020s. Reach is the consent layer that makes this future workable. Sites can publish at any time; domain owners can opt out by serving /.well-known/reach-optout.
What works today: the developer-tool wedge
Consumer sites haven’t published manifests yet. Developer tools are where the standard lands first — they already have documented REST APIs, sophisticated users, and an interest in being addressable by agents. The shadow registry ships 14 hand-curated manifests covering those tools so Reach is useful on day one. As consumer sites adopt the standard, the registry shrinks.
You’re reading a GitHub repo that isn’t yours and you find a bug. “Open an issue on this project: the cache eviction logic has an off-by-one when TTL = 0.”
Someone sent you their Calendly link. “Find a 30-minute slot next week that doesn’t clash with my calendar and book it.”
You’re configuring a new SaaS vendor’s Slack workspace. “Post in their #integrations channel saying our connector is ready for review.”
You’re an agency consultant managing a client’s Stripe dashboard with delegated access. “Issue a refund for the duplicate charge to Acme Corp from Tuesday.”
You arrive at the Linear app for a team you just joined. “Show me the issues assigned to me in the Engineering project this sprint.”
You’re browsing a colleague’s Notion workspace. “Find the engineering on-call rota page — I think it was tagged handbook.”
Each card maps to a real capability in a manifest under packages/reach-registry/manifests/. The full bundled set covers github.com, stripe.com, linear.app, notion.so, slack.com, calendly.com, vercel.com, cloudflare.com, supabase.com, shopify.com, discord.com, anthropic.com, openai.com, and inferlane.dev. Hosts surface destructive actions with a confirmation prompt before they fire — Reach never auto-invokes anything tagged destructive.
Five surfaces, one install
Reach is the same product on every surface. Each card below opens a one-line email so we can tell you the moment it’s live.
.dxt. Auto-installs the MCP server.Homebrew tap and GitHub repository go live at launch. Until then, drop your email and we’ll send one short note when each surface ships.
How it works
When you tell Reach a Uniform Resource Locator (URL), it checks six standardized paths under /.well-known/: mcp.json, mcp/server-card.json, agentic-commerce.json, agent.json, ai-plugin.json, and openapi.json.
Reach maps every format to one capability schema. Tools end up shaped the same way to Claude, ChatGPT, the browser, or the Mac app — with consistent sensitivity flags (read, write, destructive).
Most sites haven't published a manifest yet. For the long tail, Reach loads community-curated entries from inferlane.dev/reach/registry/v1/. 14 sites at launch; many more via Pull Request.
Reach is the discovery layer. Destructive actions are never invoked from a click. You see the capability; your AI host (or you) chooses whether to call it.
Shadow registry
Community-curated manifests for sites that haven’t published their own. The GitHub repository goes public at launch — until then, request a site by emailing [email protected].
See a site missing? Email [email protected] with the docs link. Operate a domain and want it removed from the shadow registry? Same address, or publish /.well-known/reach-optout on the domain. Contribution guide goes public alongside the repository at launch.
What Reach does not do
- No payload logging. Reach never sees the inputs or outputs of any capability you invoke.
- No analytics by default. Cost-tracking through InferLane is opt-in and metadata-only.
- No remote code. All scripts ship inside the install bundle. No dynamic code loading.
- No auto-execution of destructive actions. Clicking a capability surfaces an intent. Your AI host invokes.
- No reading of page content. Extensions read the tab URL only.
Full detail: Privacy Policy · Terms of Service · Acceptable Use.