Skip to content

Commit da1d2ea

Browse files
authored
Add Kachilu Browser plugin (#55)
1 parent bdc128a commit da1d2ea

9 files changed

Lines changed: 272 additions & 2 deletions

File tree

.agents/plugins/marketplace.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,18 @@
304304
},
305305
"category": "Tools & Integrations"
306306
},
307+
{
308+
"name": "kachilu-browser",
309+
"source": {
310+
"source": "local",
311+
"path": "./plugins/kachilu-inc/kachilu-browser"
312+
},
313+
"policy": {
314+
"installation": "AVAILABLE",
315+
"authentication": "ON_INSTALL"
316+
},
317+
"category": "Tools & Integrations"
318+
},
307319
{
308320
"name": "kicad-happy",
309321
"source": {

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ Third-party plugins built by the community. [PRs welcome](#contributing)!
106106
- [Context Pack](https://github.com/Rothschildiuk/context-pack) - Generate compact first-pass repository briefings for coding agents before deeper exploration.
107107
- [Flow Studio Power Automate](https://github.com/ninihen1/power-automate-mcp-skills) - Debug, build, and operate Power Automate flows via FlowStudio MCP with action-level inputs and outputs.
108108
- [Jenkins CLI](https://github.com/avivsinai/jenkins-cli) - GitHub CLI-style interface for Jenkins controllers with jobs, pipelines, runs, logs, artifacts, credentials, and nodes.
109+
- [Kachilu Browser](https://github.com/kachilu-inc/kachilu-browser) - Anti-bot-aware browser automation for AI agents with MCP tools, CAPTCHA-aware workflows, and WSL2 Windows browser support.
109110
- [KiCad Happy](https://github.com/aklofas/kicad-happy) - KiCad EDA skills for schematic analysis, PCB layout review, component sourcing, BOM management, and manufacturing preparation.
110111
- [Langfuse Observability](https://github.com/avivsinai/langfuse-mcp) - Query traces, debug exceptions, analyze sessions, and manage prompts via MCP tools.
111112
- [Launch Fast](https://github.com/BlockchainHB/launchfast_codex_plugin) - Official Launch Fast plugin adapter for rapid SaaS deployment.

plugins.json

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
"$schema": "https://json-schema.org/draft/2020-12/schema",
33
"name": "awesome-codex-plugins",
44
"version": "1.0.0",
5-
"last_updated": "2026-04-19",
6-
"total": 43,
5+
"last_updated": "2026-04-22",
6+
"total": 44,
77
"categories": [
88
"Development & Workflow",
99
"Tools & Integrations"
@@ -269,6 +269,16 @@
269269
"source": "awesome-codex-plugins",
270270
"install_url": "https://raw.githubusercontent.com/avivsinai/jenkins-cli/main/.codex-plugin/plugin.json"
271271
},
272+
{
273+
"name": "Kachilu Browser",
274+
"url": "https://github.com/kachilu-inc/kachilu-browser",
275+
"owner": "kachilu-inc",
276+
"repo": "kachilu-browser",
277+
"description": "Anti-bot-aware browser automation for AI agents with MCP tools, CAPTCHA-aware workflows, and WSL2 Windows browser support.",
278+
"category": "Tools & Integrations",
279+
"source": "awesome-codex-plugins",
280+
"install_url": "https://raw.githubusercontent.com/kachilu-inc/kachilu-browser/main/.codex-plugin/plugin.json"
281+
},
272282
{
273283
"name": "KiCad Happy",
274284
"url": "https://github.com/aklofas/kicad-happy",
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"name": "kachilu-browser",
3+
"version": "0.0.5",
4+
"description": "Browser automation CLI and MCP tools for AI agents, with human-like browser control and WSL2 Windows Chrome support.",
5+
"author": {
6+
"name": "Kachilu Inc."
7+
},
8+
"homepage": "https://github.com/kachilu-inc/kachilu-browser",
9+
"repository": "https://github.com/kachilu-inc/kachilu-browser",
10+
"license": "SEE LICENSE IN LICENSE",
11+
"keywords": [
12+
"browser",
13+
"automation",
14+
"chrome",
15+
"mcp",
16+
"agent"
17+
],
18+
"skills": "./skills",
19+
"mcpServers": "./.mcp.json",
20+
"interface": {
21+
"displayName": "Kachilu Browser",
22+
"shortDescription": "Automate a real browser through OpenClaw MCP tools.",
23+
"longDescription": "Kachilu Browser gives OpenClaw agents a local browser automation control plane with accessibility snapshots, visible UI actions, CAPTCHA-aware workflows, and WSL2 Windows Chrome support.",
24+
"developerName": "Kachilu Inc.",
25+
"category": "Productivity",
26+
"capabilities": [
27+
"Browser Automation",
28+
"MCP Tools"
29+
],
30+
"websiteURL": "https://github.com/kachilu-inc/kachilu-browser"
31+
}
32+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"mcpServers": {
3+
"kachilu_browser": {
4+
"command": "node",
5+
"args": [
6+
"./scripts/mcp-server.mjs"
7+
],
8+
"connectionTimeoutMs": 60000
9+
}
10+
}
11+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
Kachilu Browser License
2+
3+
Copyright (c) 2026 Kachilu Inc.
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy of
6+
this software and associated documentation files (the "Software"), to deal in
7+
the Software without restriction, including without limitation the rights to use,
8+
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
9+
Software, and to permit persons to whom the Software is furnished to do so,
10+
subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
This license does not grant permission to use the trade names, trademarks,
16+
service marks, logos, or branding of Kachilu Inc., except as required for
17+
reasonable and customary use in describing the origin of the Software.
18+
19+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
21+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL KACHILU INC. OR
22+
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25+
SOFTWARE.
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Kachilu Browser
2+
3+
`kachilu-browser` is an anti-bot-aware browser automation CLI for AI agents such
4+
as Codex and Claude.
5+
6+
<p align="center">
7+
<img src="docs/reCAPTCHA.gif" alt="Kachilu Browser detecting a reCAPTCHA challenge" width="100%">
8+
</p>
9+
10+
> CAPTCHA in the way? The LLM detects it through the SKILL and hands off
11+
> completion automatically. Nothing complicated.
12+
13+
Human-like interaction is the default. When reCAPTCHA v2/v3 or Cloudflare
14+
Turnstile appears, `kachilu-browser` detects the challenge and routes completion
15+
through the local CLI/browser flow.
16+
17+
WSL2 is first-class: agents running in Linux can control the Windows-side
18+
browser profile you actually use, instead of a separate WSL-only browser.
19+
20+
Free to use. Local by design. No hosted relay, no telemetry, no external control
21+
plane between the agent and your browser.
22+
23+
## Install
24+
25+
```bash
26+
npm install -g kachilu-browser
27+
kachilu-browser onboard
28+
```
29+
30+
When this page appears, tick the checkbox so the agent can connect to your browser:
31+
32+
![Remote debugging permission checkbox](docs/remote-debugging.png)
33+
34+
## OpenClaw
35+
36+
```bash
37+
openclaw plugins install kachilu-browser
38+
openclaw gateway restart
39+
```
40+
41+
OpenClaw uses the same npm package bundle, so no separate package name or extra
42+
install script is needed.
43+
44+
## Onboarding targets
45+
46+
- If `--target` is omitted in an interactive terminal, `kachilu-browser onboard` prompts for the host target
47+
- In non-interactive runs, pass `--target codex`, `--target claudecode`, or `--target claudedesktop`
48+
- For Codex and Claude Code on WSL2, `onboard` persists `KACHILU_BROWSER_AUTO_CONNECT_TARGET=windows` and auto-detected `KACHILU_BROWSER_WINDOWS_LOCALAPPDATA` unless you override them
49+
- When targeting Windows browsers from WSL2, `onboard` also ensures `%USERPROFILE%\.wslconfig` has `[wsl2] networkingMode=mirrored` and reports when `wsl --shutdown` is required
50+
- `codex`: writes `~/.codex/config.toml` and links `~/.codex/skills/kachilu-browser`
51+
- `claudecode`: writes `~/.claude.json` and links `~/.claude/skills/kachilu-browser`
52+
- `claudedesktop`: writes the Claude Desktop local MCP config. Use `claude-desktop` as an equivalent alias.
53+
- Claude Desktop Skills are distributed as `kachilu-browser-skill.zip` on GitHub Releases and must be uploaded through Claude Desktop's Skills UI.
54+
55+
## MCP control plane
56+
57+
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.
58+
59+
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.
60+
61+
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.
62+
63+
## Release model
64+
65+
- Native binaries are built from the private source repo.
66+
- The npm package bundles available native binaries so `npm install -g kachilu-browser` works without exposing the private source tree.
67+
- The source repo must provide `KACHILU_BROWSER_RELEASE_TOKEN` so it can create this repo's GitHub Release and push synced tags.
68+
- This public repo publishes the npm package via npm Trusted Publishing after the package already exists on npm.
69+
- The very first npm publish for `kachilu-browser` must be done manually with `npm publish --access public`.
70+
- If the package was unpublished, npm blocks republishing the same package name for 24 hours.
71+
- This repo's publish workflow also refuses to publish if the package does not yet exist on npm.
72+
- The npm package downloads matching native binaries from GitHub Releases only when the current platform binary was not bundled in the package.
73+
74+
## Commands
75+
76+
```bash
77+
kachilu-browser --help
78+
kachilu-browser onboard --help
79+
node scripts/mcp-server.mjs
80+
```
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
{
2+
"name": "kachilu-browser",
3+
"version": "0.0.5",
4+
"description": "Browser automation CLI for AI agents",
5+
"type": "module",
6+
"files": [
7+
".codex-plugin/plugin.json",
8+
".mcp.json",
9+
"bin/kachilu-browser.js",
10+
"bin/kachilu-browser-*",
11+
"scripts",
12+
"skill-data/core",
13+
"skills/kachilu-browser",
14+
"README.md",
15+
"LICENSE",
16+
"CHANGELOG.md",
17+
"install.sh"
18+
],
19+
"bin": {
20+
"kachilu-browser": "bin/kachilu-browser.js"
21+
},
22+
"scripts": {
23+
"mcp:server": "node scripts/mcp-server.mjs",
24+
"setup:codex": "node scripts/onboard.mjs --target codex",
25+
"setup:claudecode": "node scripts/onboard.mjs --target claudecode",
26+
"setup:claudedesktop": "node scripts/onboard.mjs --target claudedesktop",
27+
"onboard": "node scripts/onboard.mjs",
28+
"postinstall": "node scripts/postinstall.js"
29+
},
30+
"keywords": [
31+
"browser",
32+
"automation",
33+
"headless",
34+
"chrome",
35+
"cdp",
36+
"cli",
37+
"agent"
38+
],
39+
"license": "SEE LICENSE IN LICENSE",
40+
"repository": {
41+
"type": "git",
42+
"url": "git+https://github.com/kachilu-inc/kachilu-browser.git"
43+
},
44+
"bugs": {
45+
"url": "https://github.com/kachilu-inc/kachilu-browser/issues"
46+
},
47+
"homepage": "https://github.com/kachilu-inc/kachilu-browser",
48+
"devDependencies": {}
49+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
name: kachilu-browser
3+
description: Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, logging in to sites, posting to social apps, handling CAPTCHA workflows, or automating browser actions. When MCP tools are available, prefer kachilu_browser_prepare_workspace plus kachilu_browser_exec over raw shell commands so host-managed sessions, WSL2 Windows-browser targeting, and profile settings are preserved.
4+
allowed-tools: Bash(npx kachilu-browser:*), Bash(kachilu-browser:*)
5+
hidden: true
6+
---
7+
8+
# kachilu-browser
9+
10+
Browser automation CLI for AI agents. Chrome/Chromium via CDP with
11+
accessibility-tree snapshots and compact `@eN` element refs.
12+
13+
Install: `npm i -g kachilu-browser && kachilu-browser install`
14+
15+
## Start Here
16+
17+
This file is a discovery stub, not the usage guide. Before running any
18+
`kachilu-browser` command, load the actual workflow content from the CLI:
19+
20+
```bash
21+
kachilu-browser skills get core # start here: workflows, MCP-first routing, CAPTCHA, troubleshooting
22+
kachilu-browser skills get core --full # include references and templates when needed
23+
```
24+
25+
The CLI serves skill content that matches the installed version, so instructions
26+
do not drift when the package is upgraded. The core guide contains the Kachilu
27+
human-like interaction defaults, MCP routing rules, rich composer safeguards,
28+
CAPTCHA workflow, and the command reference.
29+
30+
For MCP hosts such as OpenClaw, keep using the same prepared workspace session
31+
across related browser work in one user request, even when moving between sites
32+
such as LinkedIn and X. The `site` hint is for routing only. Do not close the
33+
workspace between those steps unless the user explicitly wants cleanup. If the
34+
daemon still exists but the browser connection is gone, treat that workspace as
35+
stale and reconnect instead of reusing it.
36+
37+
## Critical Fallback
38+
39+
If an element-targeted click fails but the visible cursor is already on the
40+
intended button or control, take a screenshot/capture and confirm the cursor is
41+
on target. Then click at the current cursor position:
42+
43+
```bash
44+
kachilu-browser mouse down left
45+
kachilu-browser mouse up left
46+
kachilu-browser snapshot -i
47+
```
48+
49+
Use this after visual confirmation instead of repeating the same failing ref or
50+
locator click.

0 commit comments

Comments
 (0)