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