how to use engineer Anything from the terminal, your code, or as an agent tool.
git clone https://github.com/engineer-anything/engineer-anything cd engineer-anything npm install
you also need rea and chrome with remote debugging:
npm install -g rea-agents chromium --headless --remote-debugging-port=9222 &
# full scan node src/cli.js https://stripe.com # api surface only node src/cli.js https://api.example.com --scope api # deep scan, save to file node src/cli.js https://linear.app --depth deep --out reconstruction.md # json output for piping node src/cli.js https://vercel.com --json | jq '.stats' # custom chrome endpoint node src/cli.js https://example.com --cdp http://localhost:9222
| flag | default | description |
|---|---|---|
| --scope | full | full, api, ui, or bundle |
| --depth | standard | surface, standard, or deep |
| --cdp | http://127.0.0.1:9222 | chrome devtools endpoint |
| --out | stdout | write output to file |
| --json | - | output raw json instead of markdown |
| --quiet | - | suppress progress output |
const { scan } = require('./src/index');
const result = await scan('https://stripe.com', {
scope: 'full',
depth: 'standard',
cdp: 'http://127.0.0.1:9222',
});
console.log(result.markdown); // reconstruction plan
console.log(result.stats); // [{ label: 'nodes', value: 3595 }, ...]
console.log(result.elapsed); // '24.9'
console.log(result.evidence); // raw rea output
the hosted api at enganything.com is free with rate limits. use it from agents, scripts, or anywhere.
POST/api/run
start a scan
curl -X POST https://enganything.com/api/run \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com","scope":"full","depth":"standard"}'
returns: { "runId": "abc123", "status": "queued" }
GET/api/getRun?id=abc123
poll for results. check every 1-2s. typical scans take 20-180 seconds.
# when complete:
{
"status": "complete",
"elapsed": "24.9",
"stats": [{ "label": "nodes", "value": 3595 }],
"result": "# Reconstruction: example.com\n..."
}
GET/api/runs?limit=20
list recent public scans. max limit: 50.
import requests, time
# start scan
resp = requests.post('https://enganything.com/api/run', json={
'url': 'https://target-site.com',
'scope': 'full',
})
run_id = resp.json()['runId']
# poll
while True:
time.sleep(2)
r = requests.get(f'https://enganything.com/api/getRun?id={run_id}').json()
if r['status'] in ('complete', 'error'):
break
print(r['result']) # markdown reconstruction plan
const resp = await fetch('https://enganything.com/api/run', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ url: 'https://target-site.com', scope: 'full' }),
});
const { runId } = await resp.json();
let result;
do {
await new Promise(r => setTimeout(r, 2000));
result = await fetch(`https://enganything.com/api/getRun?id=${runId}`).then(r => r.json());
} while (result.status !== 'complete' && result.status !== 'error');
console.log(result.result);
git clone https://github.com/engineer-anything/engineer-anything cd engineer-anything npm install # start chrome headless chromium --headless --remote-debugging-port=9222 & # scan something node src/cli.js https://example.com
then scan something:
node src/cli.js https://stripe.com