Kimi WebBridge is now called Kimi Browser Extension. If its sidebar opens but your local agent reports that the browser is offline, check the extension, the connection service, and the agent separately. Start with the original error from the tool call. A status badge alone cannot identify which connection failed.
A user on r/kimi reported that Claw called WebBridge offline even though the extension showed it as active. That symptom is a reason to check each connection separately. r/kimi
Key takeaways
Kimi lists Chrome and Edge on macOS or Windows. Install the extension in the profile that will run the task.
The sidebar and local-agent control have separate setup paths. An active sidebar is only one signal.
Connection refusedpoints to the local service address.extension_not_connectedpoints to the extension’s link to that service.Check the page title, full URL and visible text before allowing the agent to act.

Know which browser the agent should use
Kimi Code Desktop has its own browser in the right panel. Its tabs belong to that session. Choose the browser extension when an authorized task needs the browser profile where you already have the relevant site open. Kimi lists Chrome and Edge for the extension. Support for a particular browser and for a particular agent are separate questions.
Built-in browser Existing browser sessions
| Mode | Where it runs | When to use it |
|---|---|---|
| Built-in browser | Kimi Code session | Open a page for that session |
| Extension sidebar | Selected browser profile | Work directly from a browser tab |
| Local-agent control | Agent, loopback service and extension | Use an authorized browser profile from an agent task |
The built-in browser and the extension keep separate sessions. See the Kimi Code browser comparison for the differences, or how browser profiles work to understand why the same browser can show two different logins.
Follow the connection from agent to page
A local agent calls the loopback service. The extension maintains a WebSocket connection to the service and operates inside its browser profile. The default extension address in Kimi’s FAQ is ws://127.0.0.1:10086/ws. The agent’s local HTTP endpoint and the extension’s WebSocket URL serve different roles. If the agent runs in a container or on another machine, its loopback points to that environment.
Local Agent ── HTTP ──► Loopback service
Kimi extension ── WebSocket ──► Loopback service
Kimi extension ──► Browser profile ──► Test pageIf the agent runs outside the browser’s machine, see the Codex Cloud localhost guide for an example of what changes.
Install and check each component
Install Kimi Browser Extension from the Chrome Web Store or Edge Add-ons using Kimi’s links. If you use Kimi’s manual download, unzip it, open the browser’s extensions page, turn on developer mode and load the unpacked folder.
For Kimi Work, install the browser extension plugin from the plugin marketplace. In Settings, open Automatic Control > External Browser and choose Connect. For Kimi Code CLI, follow its plugin guide and install both the client plugin and the browser extension.
For another local agent, follow the client-specific instructions linked from Kimi’s setup guide. Confirm the local service is running. In the extension, open Settings > Local Agent Remote Control, choose Connect, then check the connection status.
For profile selection in another local client, compare the OpenClaw setup guide. Another example of separate client and browser setup is the DeepSeek Harness walkthrough.
Read the original error
Connection refused or failed to connect means the caller did not reach a listening service at that address. Verify where it ran, which port it used and whether the service is listening there. A service response of extension_not_connected places the problem on the extension side of the service. Check that the correct browser profile has the extension enabled and that both sides agree on the port. A startup message about a possible port conflict is a clue. Identify the listener before changing anything.
| Observed signal | Check first |
|---|---|
| Connection refused | Agent to local service |
extension_not_connected | Service to extension |
URL / WEBBRIDGE-CHECK | Browser profile and visible marker |
If the service will not start, read the accompanying log and identify the program using the port before changing it. Kimi uses 10086 by default. For a confirmed conflict, choose a free local port, restart the service with that address, then test and save the matching WebSocket URL in the extension. Reconnect the agent to the new port and use the service status to verify both the port and the extension connection. Follow Kimi’s instructions for the configuration file and restart commands.
If opening a page works but snapshot, screenshot or click keeps failing, Kimi’s FAQ suggests checking for an extension conflict. Try the same harmless action in a dedicated profile with just the Kimi extension. If it succeeds there, compare extensions one at a time in that profile.
Confirm the window with a read-only task
Open a harmless test page in the intended profile. Ask the agent to report the title, exact URL, and one visible marker. For example, use a page headed WEBBRIDGE-CHECK and ask for those three fields with no clicks, typing or form submissions. If the marker is absent, stop and compare the reported URL and profile before retrying. Save a redacted result without private page content or credentials.
A signed-in dashboard adds the same profile requirement. See the Codex signed-in dashboard example before using one as a test page.
Once the browser is connected, test one authorized tab
An r/codex user described controlling already-open tabs after installing the extension and a compatible skill. Use that report as an example of the workflow. The supported setup for your client still comes from its own documentation. r/codex
Check the connection before retrying the task
If the original error points to the service, restore that connection first. When the extension is connected, check the intended profile and confirm the page with a read-only request. Retry the original task only after the page evidence matches.
FAQ
When is the sidebar enough?
Use the sidebar to work from the browser UI. Use local-agent remote control when the browser action needs to be one step in an external agent’s task.
Which browser profile should I use?
Kimi Code Desktop has its own browser in the right panel. Its tabs belong to that session. Choose the browser extension when an authorized task needs the browser profile where you already have the relevant site open. Kimi lists Chrome and Edge for the extension. Support for a particular browser and for a particular agent are separate questions.
What does extension_not_connected mean?
The local service received the request, but the browser extension has yet to connect to it. Open the intended browser profile, enable the extension and check its connection address against the running service.
Why does the agent say Connection refused?
The caller could not reach a listener at that address. Check the local service status, its active port and the environment where the agent runs.
How can I confirm the agent reached the right tab?
Open a harmless test page in the intended profile. Ask the agent to report the title, exact URL, and one visible marker. For example, use a page headed WEBBRIDGE-CHECK and ask for those three fields with no clicks, typing or form submissions. If the marker is absent, stop and compare the reported URL and profile before retrying. Save a redacted result without private page content or credentials.
Can the agent and extension use different local ports?
Both connect to the same local service port. The agent uses HTTP and the extension uses WebSocket.