Have you ever encountered this frustrating scenario:
You want to automate a certain website, but it doesn't offer an API.
So you have to choose one of two options:
- Either manually capture packets, study a bunch of Tokens, signatures, and refresh logic, which is a huge headache
- Or use Selenium / Puppeteer to simulate clicks, and the whole thing collapses if the page structure changes slightly
Both of these methods are either tiring or fragile, and neither is stable.
I recently came across a very interesting project called Neo, which offers a third approach:
👉 Don't use the official API, and don't simulate the UI, but directly "reuse the website's own internal interfaces."
🧠 Neo's Core Idea: Let the Webpage Become its Own API
Neo is a combination of a Chrome extension + CLI tool.
What it does is actually very simple, but very clever:
👉 "Observe" the actual requests made by the webpage in the browser, and then reuse these requests.
When you normally use a webpage (clicking, typing, submitting), the frontend actually sends requests (fetch / XHR / WebSocket).
Neo sits on the side and records all these requests.
The key points are:
- Requests are made in the real browser context
- All Cookies, login status, and CSRF are automatically included
- You don't need to understand complex authentication mechanisms
In other words:
👉 The way you use the webpage is how it learns "API call methods"
⚙️ How Does it Specifically Work?
The entire process can be broken down into three steps:
1️⃣ Passive Listening
Once the Neo extension is loaded, it automatically records:
- Request URL
- Headers
- Request body / Response
- DOM element that triggered the request
- Trigger timing
This data is stored locally in the browser (IndexedDB).
2️⃣ CLI for Secondary Use
The accompanying CLI (neo) can directly use this data to perform actions:
- Generate API documentation (even OpenAPI)
- Replay historical requests
- Construct new requests (automatically including authentication information)
For example:
neo replay
neo api
neo exec--auto-headers