kachilu-browser is an anti-bot-aware browser automation CLI for AI agents such
as Codex and Claude.
CAPTCHA in the way? The LLM detects it through the SKILL and hands off completion automatically. Nothing complicated.
Human-like interaction is the default. When reCAPTCHA v2/v3 or Cloudflare
Turnstile appears, kachilu-browser detects the challenge and routes completion
through the local CLI/browser flow.
WSL2 is first-class: agents running in Linux can control the Windows-side browser profile you actually use, instead of a separate WSL-only browser.
Free to use. Local by design. No hosted relay, no telemetry, no external control plane between the agent and your browser.
Install
npm install -g kachilu-browser kachilu-browser onboard
When this page appears, tick the checkbox so the agent can connect to your browser:
OpenClaw
openclaw plugins install kachilu-browser openclaw gateway restart
OpenClaw uses the same npm package bundle, so no separate package name or extra install script is needed.
Onboarding targets
- If
--targetis omitted in an interactive terminal,kachilu-browser onboardprompts for the host target - In non-interactive runs, pass
--target codex,--target claudecode, or--target claudedesktop - For Codex and Claude Code on WSL2,
onboardpersistsKACHILU_BROWSER_AUTO_CONNECT_TARGET=windowsand auto-detectedKACHILU_BROWSER_WINDOWS_LOCALAPPDATAunless you override them - When targeting Windows browsers from WSL2,
onboardalso ensures%USERPROFILE%\.wslconfighas[wsl2] networkingMode=mirroredand reports whenwsl --shutdownis required codex: writes~/.codex/config.tomland links~/.codex/skills/kachilu-browserclaudecode: writes~/.claude.jsonand links~/.claude/skills/kachilu-browserclaudedesktop: writes the Claude Desktop local MCP config. Useclaude-desktopas an equivalent alias.- Claude Desktop Skills are distributed as
kachilu-browser-skill.zipon GitHub Releases and must be uploaded through Claude Desktop's Skills UI.
MCP control plane
Agents should keep using the MCP prepare/exec workflow whenever the tools are available, including after context compaction or resume. This preserves the host-managed session, profile, and WSL2 Windows-browser target from the MCP env block.
Raw kachilu-browser shell commands are a fallback for environments without MCP, explicit CLI requests, or intentional local WSL/Linux browser work. On WSL2, a raw shell command can miss KACHILU_BROWSER_AUTO_CONNECT_TARGET=windows and launch or control a WSL2-local browser instead of the intended Windows browser.
Successful prepare and exec responses include controlPlane: "mcp" and followUpTool: "kachilu_browser_exec" so agents can preserve the MCP route across context compaction and long-running resumes.
Release model
- Native binaries are built from the private source repo.
- The npm package bundles available native binaries so
npm install -g kachilu-browserworks without exposing the private source tree. - The source repo must provide
KACHILU_BROWSER_RELEASE_TOKENso it can create this repo's GitHub Release and push synced tags. - This public repo publishes the npm package via npm Trusted Publishing after the package already exists on npm.
- The very first npm publish for
kachilu-browsermust be done manually withnpm publish --access public. - If the package was unpublished, npm blocks republishing the same package name for 24 hours.
- This repo's publish workflow also refuses to publish if the package does not yet exist on npm.
- The npm package downloads matching native binaries from GitHub Releases only when the current platform binary was not bundled in the package.
Commands
kachilu-browser --help kachilu-browser onboard --help node scripts/mcp-server.mjs

