๐ธ๏ธ Hand the whole browser to an LLM โ it gets in, reverses the protocol, and writes a crawler that runs without a browser.
It just beat Akamai Bot Manager, hands-off, end-to-end. See the run โ
ไธญๆ ยท English ยท Three walls ยท Full power ยท Quick start ยท Capabilities
One prompt โ "write me a price crawler for this site" โ on a target behind Akamai Bot Manager.
โ Detects that a missing bm-telemetry header returns 403. Breakpoints bmak.get_telemetry(), dumps akamai_bmak_bootstrap.js + akamai_bmak_runtime.js straight off the page.
โก Reproduces the sensor in the Node sandbox โ no browser โ and ships a standalone Python crawler: HTTP 200 ยท 64 price records ยท 5/5 cold-start replays. Done.
๐งฑ Scraping has three walls. reverseloom tears through all of them.
| The wall | The usual way | reverseloom | |
|---|---|---|---|
| ๐งฑ Wall 1 | Can't get in โ bot detection blocks you | patched fingerprints, still leaking navigator.webdriver + CDP traces |
pair with kc-browser: C++ kernel-level fingerprint, grows from inside the engine โ no script to unwrap |
| ๐งฑ Wall 2 | Can't reverse it โ data is signed / tokenized / encrypted | hand-reading obfuscated JS, a full day per algorithm | observer full-exposure + CDP breakpoints: model traces the generator, reproduces it in a sandbox โ 5/5 cold-start replays required |
| ๐งฑ Wall 3 | Can't run it โ crawler still needs a browser attached | headless browser resident forever | ships a browser-free, cold-start-ready pure-code crawler |
Other tools stop at one wall. reverseloom welds get in โ reverse โ ship a standalone crawler into one chain.
๐ vs. ordinary browser agents
| Ordinary browser agent | reverseloom | |
|---|---|---|
| What the model sees | screenshot + clickable elements | โ fully exposed: DOM + screenshot + network + JS debugger |
| Signed / encrypted params | gets stuck or hallucinates | โ traces the generator โ reproduces it in a sandbox |
| Context | screenshots pile into history, blows up fast | โ observer overwrite-injection; history keeps only reasoning |
| Deliverable | one-off action result | โ a crawler that runs cold, browser-free |
| Runs | mostly cloud SaaS | โ fully local, data never leaves |
Why observer, not tool-return-into-history? Browser state changes every turn and is huge โ piling it into history blows the context window. reverseloom injects only the current snapshot per turn (overwrite, never stored), so long reverse-engineering sessions stay lean.
๐ Quick start
Prerequisite: a Chromium-based browser installed (Chrome / Edge / Chromium / Brave). reverseloom only drives it โ it never downloads Chromium.
Option A โ download & run (Windows)
- Download reverseloom_win.zip (v1.0.0), unzip, double-click
reverseloom.exe. - In Settings โ Model, fill
BASE_URL/API Key/MODEL, save. Chatting in 3 minutes.
The EXE ships its own Python runtime, so generated crawlers run via run_shell with zero setup.
Option B โ from source (macOS / Linux / devs)
git clone https://github.com/KuiChi-x/reverseloom.git && cd reverseloom
pip install -e . # pulls graphloom + patchright from PyPI; no `patchright install chromium`
python -m reverseloom # native desktop window
python -m reverseloom --web # or serve, open in your browser
For local development (tests, lint, agent-generated crawlers), use pip install -e ".[dev]" โ crawler dependencies are part of the core runtime. See docs/development.md.
The Node sandbox ships prebuilt (reverseloom-sandbox.bundle.js) โ works out of the box.
Configure
In the UI under Settings โ Model, or via .env. The model must support image input + streaming output.
MODEL_PROTOCOL=openai # openai / anthropic / gemini / deepseek / ollama
BASE_URL=https://api.openai.com/v1
OPENAI_API_KEY=sk-...
MODEL=gpt-4o
| Env var | Purpose |
|---|---|
REVERSELOOM_BROWSER_PATH |
Force a specific browser (e.g. kc-browser). Leave empty to auto-detect Chrome โ Edge โ Chromium โ Brave. |
REVERSELOOM_PROXY_HOST/PORT/USERNAME/PASSWORD |
Optional upstream proxy; auth injected by a local tunnel |
โ ๏ธ
run_shellexecutes arbitrary commands โ only point it at paths you trust.
๐ ๏ธ Capabilities (30+ tools)
"Compare round-trip fares for me." It drives four travel sites and reports back โ even flagging where a login wall blocked it from confirming the tax-inclusive total, instead of making a number up.
๐ Browser automation
browser_navigate / browser_click (ocId or pixel) / browser_type / select_option / press_key / scroll_page / browser_drag (WindMouse humanized path for sliders) / tabs / browser_evaluate / reset_browser_state
๐ฌ JS reverse-engineering ยท CDP
- Breakpoints:
set_line_breakpoint/break_on_request/get_paused_state/evaluate_in_call_frame/step_execution - Network:
search_in_network_payloads/inspect_network_request(with initiator stack) - Scripts:
search_in_js_codes/get_script_source/dump_runtime_asset - C++ Native binding trace (kc-browser only): auto-written under
<session>/_native_trace/**.jsonlโ hash pre-images + native leaf values for sandbox environment rebuild when CDP alone is not enough. Stock Chrome/Edge ignore the flag and emit nothing.
๐๏ธ Vision + human hand-off
visual_locateโ multimodal coordinate location (captchas, canvas, non-enumerable targets)request_user_interactionโ pause for login / captcha / clarification, then resume
๐ File / shell ยท ๐งฉ Skills
read_file/write_file/edit_file/list_dir/search_code/run_shellweb-crawl/deep-reverseโ loaded on demand, never pollute context- Custom skills:
~/.reverseloom/skills/<name>/SKILL.md, auto-discovered on launch
๐งฌ Architecture
โโ๏ฟฝ๏ฟฝโโโโโโโโโโโโโโโโโโโโโโโโโโโ graphloom โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ agent loop ยท short-term memory ยท context compaction ยท observer ยท skills โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ reverseloom contributes โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
browser mgmt tool groups system prompt web shell Node sandbox
(patchright+CDP) (automation/ (reverse review) (FastAPI+WS) (jsdom repro)
reverse/vision)
- Browser: patchright auto-launches your system Chromium; each session gets its own profile, fingerprint launch args (
--fp-seed/--fp-timezone/--fp-platform), optional proxy tunnel, and a per-page CDP handler for lossless network capture + JS debugging. - Sandbox: run a dumped sign/token/encryption generator offline in Node + jsdom โ anti-detection armor + deep-Proxy monitoring. Feed it a payload, get back the result, missing-API todo list, and captured network.
- C++ Native binding trace (kc-browser only): when
REVERSELOOM_BROWSER_PATHpoints at kc-browser, each session is launched with--fp-native-trace-dir=<session>/_native_trace. The engine records native API reads/calls as JSONL keyed byline:columnโ hash inputs in plaintext (TextEncoder.encode/digest/JSON.stringifyargs) plus exact leaf values (BatteryManager.level,NetworkInformation.rtt, โฆ). When sandbox environment rebuild stalls, thedeep-reverseskill reads that trace as an oracle instead of guessing missing APIs. Stock Chrome/Edge ignore the flag; an empty_native_tracedir means the browser did not emit one.
๐ฅท Full power: pair with kc-browser
Wall 1 has a full-power answer in the sibling project kc-browser. Ordinary anti-detection patches the JS layer โ patches leave seams. kc-browser modifies Chromium's C++ kernel, so the fingerprint grows from the engine up: UA / Client Hints / WebGL / Canvas / Audio / fonts / hardware all self-consistent, no injectable script, no navigator.webdriver. One 64-bit seed = one identity; rotate without restarting.
reverseloom already speaks its flags โ just point REVERSELOOM_BROWSER_PATH at kc-browser (or set it under Settings โ Browser). Regular Chrome works too; the flags are simply ignored.
๐ Project layout
src/reverseloom/
__main__.py desktop entry (pywebview)
agent/ assembly, model adapter, prompts
runtime/ config, settings, persistence
browser/ manager ยท session ยท cdp_handler ยท proxy ยท fingerprint
observer ยท dom/ ยท sandbox_env/ (Node + jsdom)
tools/ filesystem ยท browser/{automation,investigation,visual}
web/ HTTP + WebSocket adapters
โ๏ธ Compliance
For research, testing, and authorized data integration only. Operate only on sites you own or are authorized to test; comply with each site's ToS, robots.txt, and local law. Reversing signatures, bypassing captchas, and using fingerprints/proxies may violate some sites' terms โ the risk is entirely yours. Contributors are not responsible for misuse.
๐งฉ The family โ one pipeline
| Project | Layer | One line |
|---|---|---|
| kc-browser | ๐ฅท get in | C++ kernel-level anti-detect fingerprint browser |
| reverseloom | ๐ฌ reverse | observer full-exposure + CDP + sandbox โ browser-free crawler (this repo) |
| graphloom | ๐งต drive | the agent framework underneath โ observer, compaction, skills |
โญ Star History
If it saved you hours of reverse-engineering, a Star on all three helps ๐
๐ License
Apache 2.0 ยฉ KuiChi-x ยท Issues ยท ไธญๆๆๆกฃ
Keywords ยท browser agent ยท web / JS reverse engineering ยท anti-bot ยท CDP debugging ยท sign / token / encryption cracking ยท captcha bypass ยท crawler generator ยท LLM agent
ๅ
ณ้ฎ่ฏ ยท ๆต่งๅจ Agent ยท ็ฝ้กต้ๅ ยท JS ้ๅ ยท ็ฌ่ซ ยท ๅ็ฌ ยท ้ช่ฏ็ ็ ด่งฃ ยท ็ญพๅ/ๅ ๅฏ่ฟๅ ยท ๆญ็น่ฐ่ฏ ยท ๆฐๆฎ้้ ยท ๅคงๆจกๅๆบ่ฝไฝ
Comments