reverse-api-engineer README

The project's README from github.com/kalil0321/reverse-api-engineer. As one markdown file: README.md.

Reverse API Engineer Banner

PyPI Python License CI

Greptile: The War on Bugs

Reverse API Engineer

Turn websites into APIs. Browse (or let an agent browse), and get a clean, typed client for the endpoints the site actually uses.

Agent Mode Demo
Agent mode

Manual Mode Demo
Manual mode


How it works

  1. You give it a website and a goal ("fetch all Apple jobs").
  2. A browser visits the site, either driven by you or by an AI agent.
  3. Network traffic is captured to a HAR file.
  4. Your configured model reads the traffic and writes a working API client in Python, JavaScript, TypeScript, Go, Java, C#, PHP, Ruby, C, or PowerShell.

No more manually opening DevTools, copying cURL commands, and gluing together a client.

Install

uv tool install reverse-api-engineer   # or: pip install reverse-api-engineer

The secured cryptography dependency no longer supports Intel macOS or 32-bit Windows. Use Linux (including on Intel hardware), Apple Silicon macOS, or 64-bit Windows. Installing on the retired platforms may attempt an unsupported source build requiring Rust and OpenSSL development tools; this is not a supported installation path. Do not downgrade cryptography to restore old wheels. See the upstream platform changes.

Agent mode (the default) captures through npx-launched browser tooling — browser MCP servers (Playwright or Chrome DevTools) or the Vercel agent-browser CLI — and needs no extra Python packages. Manual mode drives a local Playwright browser, which ships in the optional [manual] extra:

uv tool install "reverse-api-engineer[manual]"   # or: pip install "reverse-api-engineer[manual]"
playwright install chromium

Quick start

reverse-api-engineer
> fetch all apple jobs from their careers page

# Browser opens. Navigate, interact, close when done.
# → ./scripts/apple_jobs_api/  (api_client.py, README.md, example_usage.py)

Cycle modes with Shift+Tab:

Mode What it does
manual You drive the browser; AI generates the client from captured traffic.
agent An AI agent drives capture autonomously (Playwright or Chrome MCP, or Vercel agent-browser CLI).
engineer Re-run generation on a previous capture (engineer <run_id>).
collector Agent collects structured data (JSON/CSV) using web search + fetch.

Agent mode providers:

Optional sanity checks:

agent-browser doctor --offline --quick || true
agent-browser skills list >/dev/null

Configuration

Settings live in ~/.reverse-api/config.json and can be edited via /settings in the CLI:

{
  "agent_provider": "auto",
  "agent_browser_npx_package": "agent-browser@0",
  "agent_browser_notes": "",
  "claude_code_model": "claude-sonnet-4-6",
  "collector_model": "claude-sonnet-4-6",
  "ollama_auto_start": true,
  "ollama_base_url": "http://127.0.0.1:11434",
  "opencode_auto_start": true,
  "opencode_base_url": "http://127.0.0.1:4096",
  "opencode_model": "big-pickle",
  "opencode_npx_package": "opencode-ai@latest",
  "opencode_provider": "opencode",
  "copilot_model": "gpt-5",
  "cursor_model": "composer-2.5",
  "output_dir": null,
  "output_language": "python",
  "real_time_sync": true,
  "sdk": "claude"
}

CLI

Slash commands inside the CLI:

Scriptable subcommands (pipe to jq):

reverse-api-engineer agent --prompt "capture the public jobs api" \
  --url https://example.com/jobs --json | jq

reverse-api-engineer list --json
reverse-api-engineer show <run_id> --json
reverse-api-engineer run <run_id> --file api_client.py \
  --no-interactive --auto-install -- --org acme

Pass --no-interactive (and/or --json) to skip prompts. With --json, stdout is one JSON document and logs go to stderr.

agent --json schema

Field Type Notes
schema_version int Currently 1.
status "ok" | "error" Top-level result.
run_id string | null Use with show / engineer / run.
prompt string
url string | null
mode string | null "auto", "chrome-mcp", or "agent-browser".
har_path string | null Captured HAR.
script_path string | null Generated client.
usage object {input_tokens, output_tokens, total_cost}.
error string | null When status == "error".

Exit codes

Code Meaning
0 Success.
1 Runtime error.
2 Missing required arg under --no-interactive / --json.

For run, the exit code is the underlying script's return code on success, 1 if no script was found, or non-zero if --no-interactive would have had to prompt.

Debugging agent failures

Set the RAE_DEBUG environment variable to 1 to print the Python traceback for unexpected agent capture failures to stderr. Normal error messages remain concise by default, and --json / --json-stream stdout remains machine-readable.

Output locations

Caveats

Development

git clone https://github.com/kalil0321/reverse-api-engineer.git
cd reverse-api-engineer
uv sync
uv run reverse-api-engineer

Build: ./scripts/clean_build.sh. Requires Python 3.11+ and an API key for agent mode. Manual mode additionally needs the [manual] extra plus playwright install chromium.

License

MIT. See LICENSE.

reverse-api-engineer (kalil0321/reverse-api-engineer)

Searching Database…

这是什么?Reverse API Engineer 是一个智能体:它会浏览网站(手动或通过 AI 驱动的浏览器),捕获产生的网络流量,再用 AI 模型根据实际用到的端点生成一个可用的带类型 API 客户端。
这是浏览器扩展还是独立工具?它是一个 Python 命令行应用,不是浏览器扩展也不是库;它会启动自己的交互式 CLI,可以驱动本地 Playwright 浏览器或由 AI 智能体控制的浏览器会话。
怎么把它跑起来?安装 Python 包(要求 Python 3.11+),然后启动 CLI,用 Shift+Tab 在模式间切换——manual 模式由你自己操控浏览器,agent 模式让 AI 自主驾驶。
需要 API 密钥或额外的工具吗?agent 模式需要为所配置的模型准备 API 密钥(默认为 Claude Sonnet/Opus/Haiku,也可用 OpenCode、Cursor、Ollama 或 GitHub Copilot 等 SDK),另外还需要 Node.js 来运行经 npx 启动的浏览器工具。manual 模式还需要「[manual]」extra 和「playwright install chromium」。
安装上有什么坑需要知道?底层的 cryptography 依赖已不再支持 Intel 版 macOS 和 32 位 Windows,因此只支持 Linux、Apple Silicon 版 macOS 或 64 位 Windows 安装;机器人检测严格的网站也可能阻止捕获或迫使你手动交互。
它能生成哪些编程语言的客户端?它可以在每次运行时选用 Python、JavaScript、TypeScript、Go、Java、C#、PHP、Ruby、C 或 PowerShell 来生成 API 客户端。
它能配合免费的本地模型,而不是付费 API 吗?可以,它可以通过 OpenCode 驱动已安装的 Ollama 守护进程,只列出支持工具调用和 64k 以上上下文的模型,不会静默下载。
浏览网站时它具体捕获什么?它会把浏览会话的完整网络流量录制成 HAR 文件,所选模型随后读取该文件,为实际用到的端点编写客户端代码。
它能直接抓取数据,而不只是生成代码吗?可以,「collector」模式让智能体用网页搜索和抓取来收集 JSON/CSV 格式的结构化数据,而不是生成可复用的 API 客户端。
Creator
kalil0321
Size
23 MB
Stars
1.4K
Age
9mo
Commits · 90 Days