Skip to content

Quickstart

Fresh

Source: bible/getting-started.md

Your first 10 minutes. Follow these steps in order and you will have a ghost-mode browser running by the end.

Prerequisites

  • Windows 11 with Chrome installed
  • Node.js 18+
  • The browser-sender repo cloned
  • A terminal (PowerShell, cmd, or Git Bash)

Step 1: Start the engine (1 minute)

bash
cd C:\Users\jennb\browser-sender\lib\dna-engine\mini-engine-v2
node server.mjs

You will see:

[ghost-engine] Listening on http://localhost:4700
[ghost-engine] Loaded 109 plugins, 704 routes
[ghost-engine] Account store: 50 accounts loaded

Leave this terminal open. The engine runs as long as this process is alive.

Step 2: Open the dashboard (30 seconds)

Open your browser to http://localhost:4700/.

You will see the Ghost Engine dashboard: dark theme, 13 tabs across the top, quick action buttons in the middle.

The top bar shows: Accounts (50), Browsers (0), Cookies Valid, Fingerprints, Campaigns, Health. These update every 10 seconds.

Step 3: Verify detection scores (2 minutes)

Launch a browser and check detection sites see a real human:

bash
curl -s -X POST http://localhost:4700/browser/launch \
  -H "Content-Type: application/json" \
  -H "x-api-key: ghost-engine-key" \
  -d '{"headless":false}'

A Chrome window opens. Navigate to these sites and verify:

CreepJS

Go to https://abrahamjuliot.github.io/creepjs/ and scroll to the Headless section:

  • 0% headless: not detected as headless
  • 0% stealth: no stealth plugins detected
  • 6% like headless: minor (ContentIndex and ContactsManager stubs cover most)

BrowserScan

Go to https://www.browserscan.net/:

  • Browser fingerprint authenticity: 100%

Sannysoft Bot Detection

Go to https://bot.sannysoft.com/:

  • All rows green
  • WebDriver: missing (passed)

Step 4: Launch a ghost-mode browser (1 minute)

This is the real thing: OS-level input, zero CDP traces.

bash
curl -s -X POST http://localhost:4700/browser/launch \
  -H "Content-Type: application/json" \
  -H "x-api-key: ghost-engine-key" \
  -d '{"email":"someone@gmail.com","mode":"ghost","platform":"reddit","headless":false}'

Replace someone@gmail.com with a real account email from the account store.

Ghost mode means:

  • Mouse clicks go through Windows SendInput (isTrusted: true)
  • Keyboard goes through Windows SendInput (isTrusted: true)
  • Navigation uses vision (screenshot, then AI, then coordinates)
  • Zero CDP interaction traces

Important. Ghost mode requires window focus. Only one ghost session at a time on desktop.

Step 5: Run your first CTR round (2 minutes)

bash
node cli.mjs ctr \
  --keyword "junk removal dallas" \
  --domain "journeyjunkremoval.com" \
  --city "Dallas" \
  --state "TX"

This will:

  1. Pick a random active account
  2. Launch a browser with that account's fingerprint and proxy
  3. Search Google for the keyword (from Dallas via UULE)
  4. Do warmup searches first
  5. Find and click the target domain
  6. Deep dwell: scroll, click internal links, read
  7. Close and save cookies

Or via the dashboard: click Fire CTR in Quick Actions.

Step 6: Check what happened (1 minute)

bash
# Active browsers
curl -s http://localhost:4700/browser

# Account status
curl -s http://localhost:4700/accounts/army-status

# All routes
curl -s http://localhost:4700/routes

Or just look at the dashboard, it auto-refreshes every 10 seconds.

Quick reference

ActionCommand
Start enginenode server.mjs
Open dashboardhttp://localhost:4700/
Health checkcurl http://localhost:4700/health
Launch browsercurl -X POST http://localhost:4700/browser/launch -H "Content-Type: application/json" -H "x-api-key: ghost-engine-key" -d '{"email":"...","headless":false}'
Ghost modeAdd "mode":"ghost","platform":"reddit" to launch body
Fire CTRnode cli.mjs ctr --keyword "..." --domain "..." --city "..." --state "..."
List accountsnode cli.mjs accounts list
Army statuscurl http://localhost:4700/accounts/army-status
All routescurl http://localhost:4700/routes
Autopilot oncurl -X POST http://localhost:4700/schedules/autopilot -H "x-api-key: ghost-engine-key"
Autopilot offcurl -X DELETE http://localhost:4700/schedules/autopilot -H "x-api-key: ghost-engine-key"

What's next

  • Schedule ongoing CTR: set up daily campaigns with natural-spread timing
  • Warm accounts: run warmup batches to build account history
  • Post to platforms: use the 18-platform social posting system
  • Run cascades: deploy one article to 9 platforms in sequence
  • Engage autopilot: 3 daemon schedules that run continuously

See Runbook for every command. See Concepts for how the whole system works.