REA connects your coding agent to reverse engineering tools to investigate how an application works. With this workflow, you can build a screen recorder for macOS with automatic zoom, using a Cursorful feature as a reference. You’ll need Node.js, a compatible agent, and the application installed so you can analyze it. (github.com)
I tried it with Cursorful, the app I use to record my videos. I managed to generate a recorder that applied zoom effects, but the movement needed quite a bit of work to get close to the original: understanding part of a feature and recreating it with a polished result are two different tasks.
What REA analyzes and what you need for this test
REA is an MCP that connects the agent to analysis tools. The agent requests an inspection, receives the results, and uses them to investigate a feature or write its own implementation. You don’t need a native application decompiler for static JavaScript analysis. (github.com)
The material available varies by application. In an Electron app, you may find bundled JavaScript; in a native application, you’re working with a compiled binary. A feature that runs on a server needs a different approach, because downloading the client doesn’t give you that code.
To repeat my test, get the following ready:
- A Mac that can run the recorder you’re going to build.
- Cursorful installed so you can locate its package.
- Node.js and npm.
- Claude Code, the agent I used for the analysis and implementation.
In the video, I was running Node.js 22.19. Check your version before you start with this command:
node -v
You should see the version number in the terminal. If you’re going to use another editor as your workspace, I’ve also shared my tips for working with Cursor; for this tutorial, stick with the same agent throughout the investigation so it retains its findings.
How to install REA and connect it to the agent
- Run the installer from a trusted folder, outside the project you want to analyze. The entry point published in the official REA repository is shown below. (github.com)

npx rea-agents setup
A setup wizard will appear so you can choose your agents and review the configuration changes. Select Claude Code if you want to follow the same workflow I used.
-
Review and approve the proposed configuration. The installer registers the MCP server and adds working instructions for the agent; then restart the agent so it loads the integration. (github.com)
In my test, I selected Claude Code and OpenCode. To repeat the exercise with Claude Code, you only need to configure that client.
-
Decide whether you need Hopper. The wizard may offer to install it for analyzing native binaries, but you don’t need Hopper for the static JavaScript inspection in this exercise. (github.com)
I agreed to install it, and the license or demo mode dialog opened. I closed it because I was going to analyze an Electron application.
How to locate Cursorful’s app.asar file
-
Find Cursorful in Finder and open the application’s context menu. Select “Show Package Contents” and go into
Contents, thenResources.In my test, I found the app.asar file there. That was the target I gave the agent to investigate the feature.
The distinction between the package and the running application matters: you need to point the agent to the file it should inspect. Asking it to analyze “Cursorful” leaves the location of the working material unspecified.
Keep in mind: finding JavaScript inside the package doesn’t mean finding the original project with clear names and comments. In the video, I explained that the code could be obfuscated, which is why I asked for file references and locations so I could check the conclusions.
What to ask the agent to understand automatic zoom
-
Open Claude Code and ask it to use REA on the
app.asarfile. Include the path and a request focused on automatic zoom, like the one I used:Quiero entender cómo funciona el zoom automático. Qué datos se graban durante la grabación: posición del ratón, clics, teclado, etcétera. Cómo decide cuándo hacer zoom, dónde centrarlo, cuánto dura y cómo se suaviza el movimiento del cursor. Para cada conclusión dame el archivo y la posición donde lo has visto y separa lo confirmado de lo deducido.The response should describe the findings and point to the evidence supporting them. Pay particular attention to which parts it presents as confirmed and which it infers.
In my analysis, the agent found information about mouse events and could explain part of how they worked. However, it didn’t locate the decision that triggered the zoom; it replied that the word “zoom” didn’t appear.
That limits what you can carry over into the implementation. If the agent identifies how mouse activity is recorded, you already have a useful piece. The zoom behavior still needs more investigation or decisions of your own.
Asking for evidence for each conclusion helps separate the two. Save that analysis alongside the project so you can return to the files when a decision in the new application doesn’t match the reference. If you already organize technical documentation with AI, you can add those findings to a second brain for retrieving what you learn.
How to build a minimal version from scratch
-
Ask the agent for a small application that matches the scope of the test. My request was to build a macOS recorder from scratch, without reusing Cursorful’s code, that would save a JSON file with timestamped mouse positions and clicks, and generate a video.
Keep automatic zoom as the feature you want to recreate, but retain the input data too. That way, you can distinguish a capture issue from a problem with movement in the video.
Keeping the scope minimal avoids mixing the analysis with a full copy of the product. For this test, I needed to select a screen, record a session, and review the result with zoom effects. Adding an editor or more options before checking that would have made the review more complicated.
After working on it, the agent delivered an application with a screen selection interface. I had two screens available, chose one, and was able to start recording from that interface.
The instruction to write its own implementation also makes it clear what you’re asking the agent to do. Its job is to use the findings to build the behavior you need, without directly copying code from the application being analyzed.
How to check the recording and zoom effects
-
Record a short session that includes typing, clicks, and switching windows. In my test, I typed some text, opened another application, minimized a window, and returned to the recorder to stop it.
Open the generated video and check when the zoom appears, where it moves, and how it returns to the previous framing.
The result applied zoom effects while typing and during some interactions. It also moved the framing toward the mouse area. The movement needed adjustments: the basic feature was there, but it still wasn’t close to Cursorful’s level of polish.
To assess your version, check these behaviors separately:
- The selected screen matches the one shown in the video.
- The JSON file saves timestamped positions and clicks.
- The zoom highlights the interaction you want to show.
- The movement and duration let you follow the action without distracting motion.
A recording can work correctly and still have bad zoom effects. If capture works, focus the next iteration on when to trigger the effect, where to center it, and how to smooth it out.
Common issues and what to fix next
If the agent can’t access REA after installation, restart it before repeating the analysis. That restart is part of the setup specified by the project. (github.com)
If the Hopper dialog appears during this exercise, remember that I was able to close it and continue with the Electron package. Installing more tools didn’t improve the zoom investigation on its own.
If the agent can’t find the logic you’re looking for, don’t treat its next proposal as a confirmed reproduction. In my case, the generated application implemented a similar feature, even though the earlier analysis hadn’t located how Cursorful decided to trigger the effect.
When a feature depends on a server, the local package doesn’t contain the entire implementation either. Limit the investigation to what you can observe and the behavior you need to build, rather than asking for a complete copy of the service.
Repeat the recording with the same interactions and point out the first zoom that looks wrong. Ask the agent to fix that specific behavior and generate the video again before adding more features.



What do you think?
Leave your opinion, question or suggestion. Comments are synced with GitHub Discussions .