<div align="center">
<img src="https://raw.githubusercontent.com/kalil0321/reverse-api-engineer/main/assets/reverse-api-banner.png" alt="Reverse API Engineer Banner"><br><br>
<a href="https://pypi.org/project/reverse-api-engineer/"><img src="https://img.shields.io/pypi/v/reverse-api-engineer?style=flat&color=e50d75&labelColor=1f1f1f" alt="PyPI"></a>
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.11+-e50d75?style=flat&labelColor=1f1f1f" alt="Python"></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-e50d75?style=flat&labelColor=1f1f1f" alt="License"></a>
<a href="https://github.com/kalil0321/reverse-api-engineer/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/kalil0321/reverse-api-engineer/ci.yml?branch=main&style=flat&labelColor=1f1f1f&label=CI" alt="CI"></a>
<br>
Greptile: The War on Bugs
</div>
Reverse API Engineer
웹사이트를 API로 변환합니다. 사이트를 탐색하거나(또는 에이전트가 탐색하도록 하여) 해당 사이트가 실제로 사용하는 엔드포인트에 대한 깨끗하고 타입 지정된 클라이언트를 얻을 수 있습니다.
<p align="center">
<img src="https://raw.githubusercontent.com/kalil0321/reverse-api-engineer/main/assets/rae-autoscout.gif" alt="Agent Mode Demo">
<br>
<em>에이전트 모드 (Agent mode)</em>
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/kalil0321/reverse-api-engineer/main/assets/reverse-api-engineer.gif" alt="Manual Mode Demo">
<br>
<em>수동 모드 (Manual mode)</em>
</p>
작동 방식 (How it works)
- 웹사이트와 목표(
더 이상 수동으로 DevTools를 열고, cURL 명령어를 복사하고, 클라이언트를 조립할 필요가 없습니다.
설치 (Install)
uv tool install reverse-api-engineer
보안 암호화(cryptography) 의존성은 더 이상 Intel macOS 또는 32비트 Windows를 지원하지 않습니다. Linux (Intel 하드웨어 포함), Apple Silicon macOS, 또는 64비트 Windows를 사용하십시오. 단종된 플랫폼에 설치할 경우 Rust 및 OpenSSL 개발 도구가 필요한 지원되지 않는 소스 빌드를 시도할 수 있습니다. 이는 지원되는 설치 경로가 아닙니다. 이전 wheel을 복원하기 위해 cryptography 버전을 다운그레이드하지 마십시오. 상위 플랫폼 변경 사항을 참조하십시오.
에이전트 모드(Agent mode, 기본값)는 npx으로 실행된 브라우저 도구 — 브라우저 MCP 서버(Playwright 또는 Chrome DevTools) 또는 Vercel의 agent-browser CLI — 를 통해 캡처하며 추가 Python 패키지가 필요하지 않습니다. **수동 모드(Manual mode)**는 선택적 [manual] 추가 기능에 포함된 로컬 Playwright 브라우저를 구동합니다:
uv tool install "reverse-api-engineer[manual]"
playwright install chromium
빠른 시작 (Quick start)
reverse-api-engineer
> fetch all apple jobs from their careers page
...
모드는 Shift+Tab 키로 전환합니다:
| Mode | 기능 설명 |
|---|
manual | 사용자가 브라우저를 제어하며, AI가 캡처된 트래픽으로부터 클라이언트를 생성합니다. |
| ... | |
| Agent 모드 제공자: | |
- auto (기본값): Playwright MCP이며, 브라우징 및 역공학(reverse engineering)을 위한 단일 워크플로우입니다.
- chrome-mcp: 실제 Chrome을 구동하여 기존 세션/쿠키를 유지합니다. Chrome 146 이상 및 Node.js 20.19 이상이 필요합니다.
- agent-browser: Vercel agent-browser CLI (Reverse API Engineer 브라우저 MCP 서버가 아닙니다). 세션 시작 시 RAE는 이미
PATH에 있는 agent-browser를 사용하며, 그렇지 않으면 **npm install -g <pin>**을 실행합니다(설정의 pin / RAE_AGENT_BROWSER_PACKAGE와 동일). 노란색 알림을 출력하고, **--help**로 유효성을 검사한 후에만 npm이 설치할 수 없는 경우 **npx -y <pin>**으로 폴백합니다. 프롬프트는 해결된 셸 접두사를 skills get core --full, skills list, HAR 단계, agent_browser_notes의 클라우드 노트와 함께 포함합니다. agent_browser_npx_package(선택 사항) 또는 환경 변수 RAE_AGENT_BROWSER_*로 조정할 수 있습니다. 첫 Chromium 가져오기: agent-browser install (최적화된 Linux에서는 --with-deps 추가).
선택적 무결성 검사:
agent-browser doctor --offline --quick || true
agent-browser skills list >/dev/null
설정(Configuration)
설정은 ~/.reverse-api/config.json에 저장되며, CLI의 /settings를 통해 편집할 수 있습니다:
{
"agent_provider": "auto",
"agent_browser_npx_package": "agent-browser@0",
...
- 모델(Models): Sonnet 4.6 (기본값), Opus 4.6 (가장 강력함), Haiku 4.5 (가장 빠름). OpenCode는 models.dev를 참조하세요.
- SDK:
claude (기본값), opencode, cursor, 또는 copilot (GitHub Copilot).
- OpenCode 설정:
sdk: "opencode"를 사용하면, RAE는 기존 서버를 재사용하거나 npx를 통해 opencode-ai@latest를 다운로드/시작합니다. 전역 OpenCode 설치는 필요하지 않습니다. 새로 구성된 환경은 기본적으로 무료 모델인 opencode/big-pickle을 사용합니다. /settings에서 로딩 스피너가 표시된 후, 서버에 연결된 도구 사용 가능 카탈로그에서 채워진 검색 가능한 OpenCode 제공자/모델(OpenCode Provider / Model) 선택기가 나타나며 무료 OpenCode 옵션을 표시합니다. 세션을 생성하기 전에 RAE는 저장된 쌍을 다시 검증하고 구성이 유효하지 않을 경우 현재 사용 가능한 무료 모델을 제안합니다. 호환되는 구형 서버는 버전 경고와 함께 재사용됩니다. 자동 시작을 위해서는 Node.js 20 이상이 필요합니다. 비밀번호로 보호된 서버는 OPENCODE_SERVER_PASSWORD 및 선택적 OPENCODE_SERVER_USERNAME을 사용합니다. OPENCODE_BASE_URL, RAE_OPENCODE_PACKAGE, 또는 RAE_OPENCODE_AUTO_START=0으로 시작을 재정의할 수 있습니다.
- OpenCode를 통한 Ollama:
/settings에서 제공자(provider)로 ollama를 선택하세요. RAE는 필요한 경우 설치된 Ollama 데몬(daemon)을 시작하고, 도구 호출(tool calling) 및 64k+ 컨텍스트가 있는 설치된 모델만 나열하며, OpenCode의 제공자 구성을 인라인으로 제공합니다. 모델은 절대 조용히 다운로드되지 않습니다. RAE_OLLAMA_BASE_URL 또는 RAE_OLLAMA_AUTO_START=0으로 재정의할 수 있습니다.
- 출력 언어:
python, javascript, typescript, go, java, csharp, php, ruby, c, 또는 powershell. C는 POSIX 툴체인(cc, libcurl 헤더)이 필요합니다 — macOS/Linux, 또는 Windows의 WSL/MSYS2. PowerShell은 pwsh 7+ (Windows PowerShell 5.1이 아닌 PowerShell Core)가 필요합니다. 그 러너(runner)는 api_client.psm1 옆에 생성된 Example.ps1을 실행하며, 인자 재정의는 지원되지 않습니다. 예제를 편집하거나 모듈을 가져와 자체 인자로 내보낸 함수를 호출하세요.
CLI
CLI 내 슬래시 명령어:
/settings: 모델, SDK, 에이전트 제공업체 및 동기화 설정을 구성합니다.
/history: 타임스탬프, 비용 및 상태와 함께 과거 실행 목록을 표시합니다.
/messages <run_id>: 특정 실행에 대한 상세 메시지 로그를 확인합니다.
/help (별칭: /commands): 명령어 목록을 보여줍니다.
/exit (별칭: /quit): CLI를 종료합니다.
스크립트 가능한 하위 명령어 (jq로 파이프):
reverse-api-engineer agent --prompt "capture the public jobs api" \
--url https://example.com/jobs --json | jq
...
프롬프트 건너뛰기를 위해 --no-interactive (및/또는 --json)을 전달합니다. --json의 경우, stdout은 하나의 JSON 문서이며 로그는 stderr로 전송됩니다.
agent --json 스키마
| 필드 | 타입 | 설명 |
|---|
schema_version | int | 현재 버전은 1입니다. |
| ... | | |
종료 코드
| 코드 | 의미 |
|---|
0 | 성공입니다. |
| ... | |
run의 경우, 종료 코드는 성공 시 기본 스크립트의 반환 코드이며, 스크립트를 찾지 못한 경우 1, --no-interactive가 프롬프트를 요청해야 했을 경우 0이 아닌 값이 됩니다. | |
에이전트 실패 디버깅
예기치 않은 에이전트 캡처 실패에 대한 Python traceback을 stderr로 인쇄하려면 환경 변수 RAE_DEBUG를 1로 설정하십시오. 일반 오류 메시지는 기본적으로 간결하게 유지되며, --json / --json-stream의 stdout은 기계가 읽을 수 있는 형태로 유지됩니다.
출력 위치
~/.reverse-api/runs/scripts/{run_id}/: 영구 저장소
./scripts/{descriptive_name}/: 사람이 읽기 쉬운 이름으로 된 로컬 복사본
- Collector:
./collected/{folder_name}/ (items.json, items.csv, README.md)
주의사항 (Caveats)
- 생성된 코드는 Claude Code를 통해 로컬에서 실행되므로, 실행하기 전에 검토해야 합니다.
- 공격적인 봇 감지 기능을 가진 사이트는 캡처를 차단하거나 수동 상호 작용을 요구할 수 있습니다.
개발
git clone https://github.com/kalil0321/reverse-api-engineer.git
cd reverse-api-engineer
uv sync
...
빌드(Build): ./scripts/clean_build.sh를 사용합니다. 에이전트 모드(agent mode)의 경우 Python 3.11 이상 버전과 API 키가 필요하며, 수동 모드(Manual mode)는 추가적으로 [manual] 옵션과 playwright install chromium이 필요합니다.
라이선스 (License)
MIT 라이선스입니다. 자세한 내용은 [LICENSE]를 참조하십시오.