docs

how to use engineer Anything from the terminal, your code, or as an agent tool.

setup

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 &

cli

# 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

flags

flagdefaultdescription
--scopefullfull, api, ui, or bundle
--depthstandardsurface, standard, or deep
--cdphttp://127.0.0.1:9222chrome devtools endpoint
--outstdoutwrite output to file
--json-output raw json instead of markdown
--quiet-suppress progress output

as a library

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

api

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.

rate limits

  • 3 scans per 10 minutes per ip
  • 10 scans per hour per ip
  • internal/private urls are blocked

agent example (python)

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

agent example (javascript)

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);

run it yourself

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