reverse-api-engineer 0.2.10__tar.gz → 0.3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/.claude/settings.local.json +13 -1
  2. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/.gitignore +7 -0
  3. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/CHANGELOG.md +44 -0
  4. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/PKG-INFO +198 -42
  5. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/README.md +193 -41
  6. reverse_api_engineer-0.3.1/TEST_UI_README.md +194 -0
  7. reverse_api_engineer-0.3.1/chrome-extension/.claude/settings.local.json +7 -0
  8. reverse_api_engineer-0.3.1/chrome-extension/package-lock.json +4703 -0
  9. reverse_api_engineer-0.3.1/chrome-extension/package.json +33 -0
  10. reverse_api_engineer-0.3.1/chrome-extension/postcss.config.js +6 -0
  11. reverse_api_engineer-0.3.1/chrome-extension/public/_locales/en/messages.json +10 -0
  12. reverse_api_engineer-0.3.1/chrome-extension/public/icons/icon-128.png +0 -0
  13. reverse_api_engineer-0.3.1/chrome-extension/public/icons/icon-16.png +0 -0
  14. reverse_api_engineer-0.3.1/chrome-extension/public/icons/icon-32.png +0 -0
  15. reverse_api_engineer-0.3.1/chrome-extension/public/icons/icon-48.png +0 -0
  16. reverse_api_engineer-0.3.1/chrome-extension/public/manifest.json +39 -0
  17. reverse_api_engineer-0.3.1/chrome-extension/src/background/service-worker.ts +197 -0
  18. reverse_api_engineer-0.3.1/chrome-extension/src/components/agent-action.tsx +123 -0
  19. reverse_api_engineer-0.3.1/chrome-extension/src/components/chat-input.tsx +76 -0
  20. reverse_api_engineer-0.3.1/chrome-extension/src/components/markdown-renderer.tsx +88 -0
  21. reverse_api_engineer-0.3.1/chrome-extension/src/components/plan.tsx +92 -0
  22. reverse_api_engineer-0.3.1/chrome-extension/src/components/terminal.tsx +63 -0
  23. reverse_api_engineer-0.3.1/chrome-extension/src/index.css +96 -0
  24. reverse_api_engineer-0.3.1/chrome-extension/src/shared/capture.ts +445 -0
  25. reverse_api_engineer-0.3.1/chrome-extension/src/shared/native-host.ts +163 -0
  26. reverse_api_engineer-0.3.1/chrome-extension/src/shared/storage.ts +75 -0
  27. reverse_api_engineer-0.3.1/chrome-extension/src/shared/types.ts +41 -0
  28. reverse_api_engineer-0.3.1/chrome-extension/src/sidepanel/index.html +12 -0
  29. reverse_api_engineer-0.3.1/chrome-extension/src/sidepanel/main.tsx +10 -0
  30. reverse_api_engineer-0.3.1/chrome-extension/src/sidepanel/side-panel.tsx +371 -0
  31. reverse_api_engineer-0.3.1/chrome-extension/src/vite-env.d.ts +1 -0
  32. reverse_api_engineer-0.3.1/chrome-extension/tailwind.config.js +28 -0
  33. reverse_api_engineer-0.3.1/chrome-extension/tsconfig.json +20 -0
  34. reverse_api_engineer-0.3.1/chrome-extension/vite.config.ts +83 -0
  35. reverse_api_engineer-0.3.1/examples/autoscout24/README.md +336 -0
  36. reverse_api_engineer-0.3.1/examples/autoscout24/SUMMARY.md +192 -0
  37. reverse_api_engineer-0.3.1/examples/autoscout24/api_client.py +509 -0
  38. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/commands/agent.md +120 -17
  39. reverse_api_engineer-0.3.1/plugins/reverse-api-engineer/commands/capture.md +191 -0
  40. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/commands/engineer.md +115 -23
  41. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/commands/manual.md +119 -21
  42. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/skills/reverse-engineering-api/SKILL.md +76 -0
  43. reverse_api_engineer-0.3.1/plugins/reverse-api-engineer/skills/reverse-engineering-api/scripts/har_analyze.py +554 -0
  44. reverse_api_engineer-0.3.1/plugins/reverse-api-engineer/skills/reverse-engineering-api/scripts/har_filter.py +438 -0
  45. reverse_api_engineer-0.3.1/plugins/reverse-api-engineer/skills/reverse-engineering-api/scripts/har_utils.py +405 -0
  46. reverse_api_engineer-0.3.1/plugins/reverse-api-engineer/skills/reverse-engineering-api/scripts/har_validate.py +457 -0
  47. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/pyproject.toml +6 -1
  48. reverse_api_engineer-0.3.1/src/reverse_api/action_recorder.py +51 -0
  49. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/auto_engineer.py +163 -138
  50. reverse_api_engineer-0.3.1/src/reverse_api/base_engineer.py +429 -0
  51. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/browser.py +217 -35
  52. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/cli.py +365 -48
  53. reverse_api_engineer-0.3.1/src/reverse_api/collector.py +318 -0
  54. reverse_api_engineer-0.3.1/src/reverse_api/collector_ui.py +106 -0
  55. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/config.py +6 -4
  56. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/engineer.py +149 -34
  57. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/messages.py +1 -3
  58. reverse_api_engineer-0.3.1/src/reverse_api/native_host.py +771 -0
  59. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/opencode_engineer.py +142 -76
  60. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/opencode_ui.py +10 -8
  61. reverse_api_engineer-0.3.1/src/reverse_api/playwright_codegen.py +130 -0
  62. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/pricing.py +1 -2
  63. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/session.py +1 -0
  64. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/sync.py +2 -6
  65. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/tui.py +8 -18
  66. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/utils.py +242 -13
  67. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/uv.lock +125 -2
  68. reverse_api_engineer-0.2.10/llm-docs/building-skill/OVERVIEW.md +0 -130
  69. reverse_api_engineer-0.2.10/llm-docs/building-skill/SPECS.md +0 -262
  70. reverse_api_engineer-0.2.10/llm-docs/building-skill/WHAT-ARE-SKILLS.md +0 -82
  71. reverse_api_engineer-0.2.10/llm-docs/crawler/DOCS.md +0 -6
  72. reverse_api_engineer-0.2.10/src/reverse_api/base_engineer.py +0 -229
  73. reverse_api_engineer-0.2.10/src/reverse_api/tools/crawler.py +0 -417
  74. reverse_api_engineer-0.2.10/src/reverse_api/tools/firecrawl_out_join_com.json +0 -4908
  75. reverse_api_engineer-0.2.10/src/reverse_api/tools/mapper.py +0 -407
  76. reverse_api_engineer-0.2.10/src/reverse_api/tools/mapping_.json +0 -160
  77. reverse_api_engineer-0.2.10/src/reverse_api/tools/sitemap.py +0 -301
  78. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/.claude-plugin/marketplace.json +0 -0
  79. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/.python-version +0 -0
  80. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/CLAUDE.md +0 -0
  81. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/CONTRIBUTING.md +0 -0
  82. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/INTERVIEW.md +0 -0
  83. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/LICENSE +0 -0
  84. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/RELEASING.md +0 -0
  85. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/assets/reverse-api-banner.svg +0 -0
  86. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/assets/reverse-api-engineer.gif +0 -0
  87. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/assets/reverse-api-logo.svg +0 -0
  88. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/apple/INDEX.md +0 -0
  89. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/apple/QUICKSTART.md +0 -0
  90. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/apple/README.md +0 -0
  91. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/apple/SUMMARY.md +0 -0
  92. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/apple/api_client.py +0 -0
  93. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/apple/extract_job_fields.py +0 -0
  94. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/apple/main.py +0 -0
  95. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/apple/quick_example.py +0 -0
  96. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/apple/requirements.txt +0 -0
  97. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/ashby/API_SUMMARY.txt +0 -0
  98. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/ashby/QUICKSTART.md +0 -0
  99. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/ashby/README.md +0 -0
  100. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/ashby/api_client.py +0 -0
  101. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/ashby/example_usage.py +0 -0
  102. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/ashby/requirements.txt +0 -0
  103. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/ikea/README.md +0 -0
  104. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/ikea/api_client.py +0 -0
  105. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/uber/API_ANALYSIS_SUMMARY.md +0 -0
  106. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/uber/README.md +0 -0
  107. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/uber/api_client.py +0 -0
  108. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/uber/example_fetch_all_jobs.py +0 -0
  109. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/uber/quick_start.py +0 -0
  110. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/examples/uber/requirements.txt +0 -0
  111. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/llm-docs/OPENCODE_API_SUMMARY.md +0 -0
  112. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/llm-docs/claude-agent-sdk/QUICKSTART.md +0 -0
  113. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/llm-docs/claude-agent-sdk/TODO_LIST.md +0 -0
  114. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/llm-docs/claude-agent-sdk/TOOLS.md +0 -0
  115. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/llm-docs/opencode-api.json +0 -0
  116. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/.claude-plugin/plugin.json +0 -0
  117. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/CHANGELOG.md +0 -0
  118. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/LICENSE +0 -0
  119. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/README.md +0 -0
  120. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/agents/api-reverse-engineer.md +0 -0
  121. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/skills/reverse-engineering-api/CHANGELOG.md +0 -0
  122. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/skills/reverse-engineering-api/LICENSE +0 -0
  123. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/skills/reverse-engineering-api/references/AUTH_PATTERNS.md +0 -0
  124. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/skills/reverse-engineering-api/references/HAR_ANALYSIS.md +0 -0
  125. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/plugins/reverse-api-engineer/skills/reverse-engineering-api/templates/api_client.py +0 -0
  126. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/scripts/clean_build.sh +0 -0
  127. {reverse_api_engineer-0.2.10 → reverse_api_engineer-0.3.1}/src/reverse_api/__init__.py +0 -0
@@ -70,7 +70,19 @@
70
70
  "mcp__plugin_reverse-api-engineer_rae-playwright-mcp__browser_snapshot",
71
71
  "mcp__plugin_reverse-api-engineer_rae-playwright-mcp__browser_run_code",
72
72
  "mcp__plugin_reverse-api-engineer_rae-playwright-mcp__browser_network_requests",
73
- "Skill(reverse-api-engineer:reverse-engineering-api)"
73
+ "Skill(reverse-api-engineer:reverse-engineering-api)",
74
+ "Bash(uv run python:*)",
75
+ "Bash(wc:*)",
76
+ "Bash(python har_filter.py:*)",
77
+ "Bash(python har_analyze.py:*)",
78
+ "Bash(python har_validate.py:*)",
79
+ "Bash(git checkout:*)",
80
+ "WebFetch(domain:docs.firecrawl.dev)",
81
+ "Bash(./generate-icons.sh:*)",
82
+ "Bash(uv run:*)",
83
+ "Bash(/Users/kalilbouzigues/.reverse-api/native-host.py:*)",
84
+ "Bash(timeout 2 /Users/kalilbouzigues/.reverse-api/native-host.py:*)",
85
+ "Bash(./diagnose.sh)"
74
86
  ]
75
87
  }
76
88
  }
@@ -91,3 +91,10 @@ prompt*.md
91
91
  test*
92
92
 
93
93
  FEATURES.md
94
+ docs/
95
+ collected/
96
+ collector_mode_plan.md
97
+
98
+ chrome-extension/node_modules/
99
+ chrome-extension/dist/
100
+ chrome-extension-old
@@ -5,6 +5,50 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.1] - 2026-01-15
9
+
10
+ ### Added
11
+ - **Chrome Extension (WIP)**: Beta support for capturing browser traffic via Chrome extension
12
+ - Alternative to Playwright browser for HAR capture
13
+ - Works with existing browser sessions
14
+ - Note: This feature is work in progress and may have limitations
15
+
16
+ ### Fixed
17
+ - **OpenCode Server**: Fixed error formatting and connection handling
18
+ - **Process Title**: Added process title for better identification in system monitors
19
+ - **Auth Error Handling**: Improved handling of authentication failures
20
+
21
+ ## [0.3.0] - 2026-01-10
22
+
23
+ ### Added
24
+ - **Collector Mode**: New AI-powered web data collection mode using Claude Agent SDK
25
+ - Natural language prompts to collect structured data from any website
26
+ - Automatic export to JSON and CSV formats
27
+ - Generates README with collection metadata and schema
28
+ - Uses WebFetch, WebSearch, and file tools for autonomous collection
29
+ - **Playwright Codegen**: Generate automation scripts from recorded browser actions
30
+ - Captures clicks, fills, key presses, and navigations
31
+ - Produces stealth-enabled Playwright scripts with proper escaping
32
+ - Deduplicates redundant fill actions and navigations
33
+ - **@docs Tag**: Generate OpenAPI specifications from HAR files
34
+ - Standalone usage: `@docs` to generate from latest run
35
+ - With run ID: `@docs run_id` to generate from specific run
36
+ - **@record-only Tag**: Record HAR files without reverse engineering step
37
+ - **AskUserQuestion Tool**: Interactive prompts during engineering sessions
38
+ - **JS/TS Client Generation**: Support for generating JavaScript/TypeScript API clients
39
+
40
+ ### Changed
41
+ - **Improved HAR Filtering**: Better path-based filtering for skip patterns
42
+ - **Enhanced Price Computation**: Fixed pricing for OpenCode provider
43
+ - **Centralized Run Resolution**: Refactored latest run parsing logic
44
+
45
+ ### Fixed
46
+ - **Selector Escaping**: Fixed attribute selector escaping for special characters in `name`, `data-testid`, `aria-label`, and `placeholder` values
47
+ - **Null Checks in Codegen**: Added validation for `action.selector` and `action.value` to prevent crashes
48
+ - **CSV Export**: Fixed DictWriter error when items have inconsistent keys
49
+ - **HAR Validation**: Validate HAR file exists when using @docs tag
50
+ - **Path Normalization**: Fixed path handling in various utilities
51
+
8
52
  ## [0.2.10] - 2026-01-03
9
53
 
10
54
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reverse-api-engineer
3
- Version: 0.2.10
3
+ Version: 0.3.1
4
4
  Summary: A tool to capture browser traffic for API reverse engineering
5
5
  Project-URL: Homepage, https://github.com/kalil0321/reverse-api-engineer
6
6
  Project-URL: Repository, https://github.com/kalil0321/reverse-api-engineer
@@ -29,9 +29,13 @@ Requires-Dist: playwright>=1.40.0
29
29
  Requires-Dist: questionary>=2.0.0
30
30
  Requires-Dist: requests>=2.32.5
31
31
  Requires-Dist: rich>=13.0.0
32
+ Requires-Dist: setproctitle>=1.3.0
32
33
  Requires-Dist: watchdog>=3.0.0
33
34
  Provides-Extra: agent
34
35
  Requires-Dist: stagehand; extra == 'agent'
36
+ Provides-Extra: collector
37
+ Requires-Dist: beautifulsoup4>=4.12.0; extra == 'collector'
38
+ Requires-Dist: markdownify>=0.12.0; extra == 'collector'
35
39
  Provides-Extra: pricing
36
40
  Requires-Dist: litellm>=1.0.0; extra == 'pricing'
37
41
  Description-Content-Type: text/markdown
@@ -41,8 +45,9 @@ Description-Content-Type: text/markdown
41
45
  </div>
42
46
 
43
47
  ![PyPI](https://img.shields.io/pypi/v/reverse-api-engineer)
44
- [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
45
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
48
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-red.svg)](https://www.python.org/downloads/)
49
+ [![License: MIT](https://img.shields.io/badge/License-MIT-red.svg)](https://opensource.org/licenses/MIT)
50
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/reverse-api-engineer?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=RED&left_text=downloads)](https://pepy.tech/projects/reverse-api-engineer)
46
51
 
47
52
  CLI tool that captures browser traffic and automatically generates production-ready Python API clients. No more manual reverse engineering—just browse, capture, and get clean API code.
48
53
 
@@ -57,13 +62,15 @@ CLI tool that captures browser traffic and automatically generates production-re
57
62
  - [Manual Mode](#manual-mode)
58
63
  - [Engineer Mode](#engineer-mode)
59
64
  - [Agent Mode](#agent-mode)
65
+ - [Collector Mode](#collector-mode)
66
+ - [Tags](#tags)
60
67
  - [Configuration](#-configuration)
61
68
  - [Model Selection](#model-selection)
62
- - [💸 Free Models with Antigravity](#free-model-options-with-antigravity)
63
69
  - [Agent Configuration](#agent-configuration)
64
70
  - [SDK Selection](#sdk-selection)
65
71
  - [CLI Commands](#-cli-commands)
66
72
  - [Claude Code Plugin](#-claude-code-plugin)
73
+ - [Chrome Extension](#-chrome-extension)
67
74
  - [Examples](#-examples)
68
75
  - [Development](#-development)
69
76
  - [Contributing](#-contributing)
@@ -74,11 +81,13 @@ CLI tool that captures browser traffic and automatically generates production-re
74
81
  - 🤖 **Autonomous Agent Mode**: Fully automated browser interaction using AI agents (auto mode with MCP, browser-use, stagehand)
75
82
  - 📊 **HAR Recording**: Captures all network traffic in HTTP Archive format
76
83
  - 🧠 **AI-Powered Generation**: Uses Claude 4.5 to analyze traffic and generate clean Python code
84
+ - 🔍 **Collector Mode**: Data collection with automatic JSON/CSV export
77
85
  - 🔌 **Multi-SDK Support**: Native integration with Claude and OpenCode SDKs
78
86
  - 💻 **Interactive CLI**: Minimalist terminal interface with mode cycling (Shift+Tab)
79
87
  - 📦 **Production Ready**: Generated scripts include error handling, type hints, and documentation
80
88
  - 💾 **Session History**: All runs saved locally with full message logs
81
89
  - 💰 **Cost Tracking**: Detailed token usage and cost estimation with cache support
90
+ - 🏷️ **Tag System**: Powerful tags for fine-grained control (@record-only, @codegen, @docs, @id)
82
91
 
83
92
  ### Limitations
84
93
 
@@ -138,10 +147,11 @@ Launch the interactive CLI:
138
147
  reverse-api-engineer
139
148
  ```
140
149
 
141
- The CLI has three modes (cycle with **Shift+Tab**):
150
+ The CLI has four modes (cycle with **Shift+Tab**):
142
151
  - **manual**: Browser capture + AI generation
143
152
  - **engineer**: Re-process existing captures
144
153
  - **agent**: Autonomous AI browser agent (default: auto mode with MCP-based browser + real-time reverse engineering)
154
+ - **collector**: AI-powered web data collection (very minimalist version for now)
145
155
 
146
156
  Example workflow:
147
157
  ```bash
@@ -200,19 +210,88 @@ Fully automated browser interaction using AI agents:
200
210
 
201
211
  Change agent provider in `/settings` → "agent provider".
202
212
 
213
+ ### Collector Mode
214
+
215
+ Web data collection using Claude Agent SDK:
216
+
217
+ 1. Start CLI and switch to collector mode (Shift+Tab)
218
+ 2. Enter a natural language prompt describing the data to collect (e.g., "Find 3 JS frameworks")
219
+ 3. The agent uses WebFetch, WebSearch, and file tools to autonomously collect structured data
220
+ 4. Data is automatically exported to JSON and CSV formats
221
+
222
+ **Output locations:**
223
+ - `~/.reverse-api/runs/collected/{folder_name}/` (permanent storage)
224
+ - `./collected/{folder_name}/` (local copy with readable name)
225
+
226
+ **Output files:**
227
+ - `items.json` - Collected data in JSON format
228
+ - `items.csv` - Collected data in CSV format
229
+ - `README.md` - Collection metadata and schema documentation
230
+
231
+ **Model Configuration:**
232
+ Collector mode uses the `collector_model` setting (default: `claude-sonnet-4-5`). This can be configured in `~/.reverse-api/config.json`.
233
+
234
+ Example workflow:
235
+ ```bash
236
+ $ reverse-api-engineer
237
+ > Find 3 JS frameworks
238
+
239
+ # Agent autonomously searches and collects data
240
+ # Data saved to: ./collected/js_frameworks/
241
+ ```
242
+
243
+ ## 🏷️ Tags
244
+
245
+ Tags provide additional control and functionality within each mode:
246
+
247
+ ### Manual/Agent Mode Tags
248
+
249
+ - **`@record-only`** - Record HAR file only, skip reverse engineering step
250
+ - Example: `@record-only navigate checkout flow`
251
+ - Useful when you want to capture traffic for later analysis
252
+
253
+ - **`@codegen`** - Record browser actions and generate Playwright automation script
254
+ - Example: `@codegen navigate to google`
255
+ - Captures clicks, fills, and navigations to create a reusable Playwright script
256
+
257
+ ### Engineer Mode Tags
258
+
259
+ - **`@id <run_id>`** - Switch context to a specific run ID
260
+ - Example: `@id abc123`
261
+ - Loads a previous capture session for re-engineering
262
+
263
+ - **`@id <run_id> <prompt>`** - Run engineer on a specific run with instructions
264
+ - Example: `@id abc123 extract user profile`
265
+ - Re-processes a capture with new instructions
266
+
267
+ - **`@id <run_id> --fresh <prompt>`** - Start fresh (ignore previous scripts)
268
+ - Example: `@id abc123 --fresh restart analysis`
269
+ - Generates new code from scratch, ignoring previous implementations
270
+
271
+ - **`@docs`** - Generate API documentation (OpenAPI spec) for the latest run
272
+ - Example: `@docs`
273
+ - Creates OpenAPI specification from captured traffic
274
+
275
+ - **`@id <run_id> @docs`** - Generate API documentation for a specific run
276
+ - Example: `@id abc123 @docs`
277
+ - Creates OpenAPI specification for a specific capture session
278
+
203
279
  ## 🔧 Configuration
204
280
 
205
281
  Settings stored in `~/.reverse-api/config.json`:
206
282
  ```json
207
283
  {
284
+ "agent_provider": "auto",
285
+ "browser_use_model": "bu-llm",
208
286
  "claude_code_model": "claude-sonnet-4-5",
209
- "opencode_provider": "anthropic",
287
+ "collector_model": "claude-sonnet-4-5",
210
288
  "opencode_model": "claude-sonnet-4-5",
289
+ "opencode_provider": "anthropic",
290
+ "output_dir": null,
291
+ "output_language": "python",
292
+ "real_time_sync": true,
211
293
  "sdk": "claude",
212
- "agent_provider": "auto",
213
- "browser_use_model": "bu-llm",
214
- "stagehand_model": "openai/computer-use-preview-2025-03-11",
215
- "output_dir": null
294
+ "stagehand_model": "openai/computer-use-preview-2025-03-11"
216
295
  }
217
296
  ```
218
297
 
@@ -228,31 +307,7 @@ Change in `/settings` or via CLI:
228
307
  reverse-api-engineer manual --model claude-sonnet-4-5
229
308
  ```
230
309
 
231
- If you use Opencode, look at the [models](https://models.dev). Some are free like `opencode/grok-code`).
232
-
233
- ### Free Model Options with Antigravity
234
-
235
- You can use free models via [Antigravity](https://github.com/NoeFabris/opencode-antigravity-auth) for API generation. See [available models](https://github.com/NoeFabris/opencode-antigravity-auth#available-models) for the full list.
236
-
237
- **Setup:**
238
- 1. Follow the [Antigravity setup instructions](https://github.com/NoeFabris/opencode-antigravity-auth)
239
- 2. In `/settings`, configure:
240
- - **SDK**: Set to `opencode` (required for Antigravity)
241
- - **opencode provider**: Set to `google`
242
- - **opencode model**: Set to `gemini-3-flash` (or any available Antigravity model)
243
-
244
- **Available Antigravity Models:**
245
- - `gemini-3-pro-low` - Gemini 3 Pro Low (Antigravity)
246
- - `gemini-3-pro-high` - Gemini 3 Pro High (Antigravity)
247
- - `gemini-3-flash` - Gemini 3 Flash (Antigravity) (recommended)
248
- - `claude-sonnet-4-5` - Claude Sonnet 4.5 (Antigravity)
249
- - `claude-sonnet-4-5-thinking-low` - Claude Sonnet 4.5 Thinking Low (Antigravity)
250
- - `claude-sonnet-4-5-thinking-medium` - Claude Sonnet 4.5 Thinking Medium (Antigravity)
251
- - `claude-sonnet-4-5-thinking-high` - Claude Sonnet 4.5 Thinking High (Antigravity)
252
- - `claude-opus-4-5-thinking-low` - Claude Opus 4.5 Thinking Low (Antigravity)
253
- - `claude-opus-4-5-thinking-medium` - Claude Opus 4.5 Thinking Medium (Antigravity)
254
- - `claude-opus-4-5-thinking-high` - Claude Opus 4.5 Thinking High (Antigravity)
255
- - `gpt-oss-120b-medium` - GPT-OSS 120B Medium (Antigravity)
310
+ If you use Opencode, look at the [models](https://models.dev).
256
311
 
257
312
  ### Agent Configuration
258
313
 
@@ -293,6 +348,35 @@ Change in `/settings` → "agent provider" and "agent model"
293
348
 
294
349
  Change in `/settings` or edit `config.json` directly.
295
350
 
351
+ ### Output Language
352
+
353
+ Control the programming language of generated API clients:
354
+ - **python** (default): Generate Python API clients
355
+ - **javascript**: Generate JavaScript API clients
356
+ - **typescript**: Generate TypeScript API clients
357
+
358
+ Change in `/settings` → "Output Language" or edit `config.json`:
359
+ ```json
360
+ {
361
+ "output_language": "typescript"
362
+ }
363
+ ```
364
+
365
+ ### Real-time Sync
366
+
367
+ Enable or disable real-time file synchronization during engineering sessions:
368
+ - **Enabled** (default): Files are synced to disk as they're generated
369
+ - **Disabled**: Files are written only at the end of the session
370
+
371
+ When enabled, you can see files appear in real-time as the AI generates them. This is useful for monitoring progress and debugging.
372
+
373
+ Change in `/settings` → "Real-time Sync" or edit `config.json`:
374
+ ```json
375
+ {
376
+ "real_time_sync": false
377
+ }
378
+ ```
379
+
296
380
  ## 💻 CLI Commands
297
381
 
298
382
  Use these slash commands while in the CLI:
@@ -314,6 +398,84 @@ claude # Open REPL
314
398
 
315
399
  See [plugin documentation](plugins/reverse-api-engineer/README.md) for commands, agents, skills, and usage examples.
316
400
 
401
+ ## 🌐 Chrome Extension
402
+
403
+ **⚠️ Work in Progress**
404
+
405
+ A Chrome extension that provides browser-native integration with reverse-api-engineer. The extension allows you to capture browser traffic directly from Chrome and interact with the reverse engineering process through a side panel interface.
406
+
407
+ **Features:**
408
+ - **HAR Capture**: Record network traffic using Chrome's Debugger API
409
+ - **Side Panel UI**: Interactive interface for managing captures and chatting with the AI agent
410
+ - **Native Host Integration**: Communicates with the reverse-api-engineer CLI tool
411
+
412
+ ### Local Development Setup
413
+
414
+ To run the Chrome extension locally for development:
415
+
416
+ **Prerequisites:**
417
+ - Node.js and npm installed
418
+ - Chrome browser
419
+ - reverse-api-engineer CLI installed and native host configured
420
+
421
+ **Setup Steps:**
422
+
423
+ 1. **Clone the repository:**
424
+ ```bash
425
+ git clone https://github.com/kalil0321/reverse-api-engineer.git
426
+ cd reverse-api-engineer
427
+ ```
428
+
429
+ 2. **Navigate to the extension directory:**
430
+ ```bash
431
+ cd chrome-extension
432
+ ```
433
+
434
+ 3. **Install dependencies:**
435
+ ```bash
436
+ npm install
437
+ ```
438
+
439
+ 4. **Build the extension:**
440
+ ```bash
441
+ npm run build
442
+ ```
443
+ This creates a `dist` directory with the compiled extension.
444
+
445
+ 5. **Load the extension in Chrome:**
446
+ - Open Chrome and navigate to `chrome://extensions/`
447
+ - Enable "Developer mode" (toggle in the top-right corner)
448
+ - Click "Load unpacked"
449
+ - Select the `chrome-extension/dist` directory
450
+ - The extension should now appear in your extensions list
451
+
452
+ 6. **Configure Native Host:**
453
+ - Ensure the native host is installed:
454
+ ```bash
455
+ reverse-api-engineer install-host
456
+ ```
457
+ - The extension communicates with the CLI via native messaging
458
+
459
+ **Development Workflow:**
460
+
461
+ - **Watch mode** (auto-rebuild on changes):
462
+ ```bash
463
+ npm run dev
464
+ ```
465
+ After rebuilding, reload the extension in Chrome (`chrome://extensions/` → click the reload icon).
466
+
467
+ - **Production build:**
468
+ ```bash
469
+ npm run build
470
+ ```
471
+
472
+ - **Type checking:**
473
+ ```bash
474
+ npm run typecheck
475
+ ```
476
+
477
+ **Status:** The extension is currently under active development. Some features may be incomplete or subject to change.
478
+
317
479
  ## 💡 Examples
318
480
 
319
481
  ### Example: Reverse Engineering a Job Board API
@@ -349,7 +511,7 @@ cd reverse-api-engineer
349
511
  uv sync
350
512
  ```
351
513
 
352
- ### Run locally
514
+ ### Run
353
515
  ```bash
354
516
  uv run reverse-api-engineer
355
517
  ```
@@ -359,12 +521,6 @@ uv run reverse-api-engineer
359
521
  ./scripts/clean_build.sh
360
522
  ```
361
523
 
362
- ## 🗺️ Roadmap
363
-
364
- - ✅ **Claude SDK** - Integration with Claude Code
365
- - ✅ **OpenCode SDK** - Integration with OpenCode
366
- - 🔄 **Codex SDK** - Codex SDK support
367
-
368
524
  ## 🔐 Requirements
369
525
 
370
526
  - Python 3.11+