Open sourceLocal-first

Launch with a room full of ruthless beta users.

Betabots runs truthful synthetic beta users in real browser sessions. Bots click, wait, think, doubt, compare notes, and leave inspectable evidence you can trust.

Small Betabots inspecting and repairing a product dashboard
00:00Landed on /
00:12Scrolled
00:28Clicked pricing
00:47Hovered docs
01:15Waited spinner
01:29Error exists
01:42Typed message
01:58Nudged by Destiny
Demo

Open a run and inspect every signal.

Sample data shows the dashboard surface: actions, screenshots, Betabook, Destiny, loading flags, and grounded truth notes.

Betabots Dashboard.betabots / runs / sample_cohort
Sample

Cohort overview

Bots10
Median session62m
Actions91
Screenshots112
Loading flags14

Current screenshot

Betabots dashboard workshop preview

Latest actions

12:42:22Thought

Login wall after marketing. Classic.

truth
12:43:02Click

button#login

truth
12:44:06Input

email

truth
12:45:30Wait

2.8s

normal
12:46:11Scroll

page

truth

Systems

BetabookActive
DestinyActive
Truth pressureOn

Betabook

Maya 1 started a thread

Anyone else debating paid vs free?

Destiny

Crossed paths

Maya 1 noticed Alex 3's thread

Truth assessment

Verdict: Mixed

Maya sees potential but lacks trust signals and concrete proof.

Evidence timeline

Every run leaves a clocked trail.

See what the bot saw, what it tried, what it waited for, and what changed its mind.

  1. T+00:01Screenshothero screen
  2. T+00:11Clickprimary CTA
  3. T+00:23Wait2.8s
  4. T+00:41Thoughttrust concern
  5. T+00:49Betabookthread started
  6. T+01:06Destinynear miss
  7. T+01:31Wait3.1s
  8. T+01:55Loading flagimage lazy-load
Quick start

Spin up a cohort locally in minutes.

No SaaS required. Launches real browsers, records everything, and writes plain files.

one command
BETABOT_APP_URL=http://localhost:5173 \
BETABOT_THOUGHTFUL_COUNT=5 \
BETABOT_BETABOOK=true \
BETABOT_DESTINY=true \
node skills/betabots/scripts/thoughtful_browser_betabots.cjs

General by design.

Betabots do not ship with product-specific routes, fixtures, or secret backend knowledge. They behave like people in a browser: reading the screen, following visible affordances, getting stuck, asking for help, and leaving evidence.

Screen-drivenNo hardcoded routesWorks across products
What a run leaves behind

Every run writes a complete, inspectable trail.

Open it in any editor. No databases. No lock-in. No hidden black box.

FileWhat is inside
summary.jsonscores, actions, flags
analysis.mdplain-English findings
screenshots/all visible screens
raw/*.mdfirst-person logs
betabook.jsonthreads, replies, invites
destiny.jsonnudges, near misses
timeline.jsonclocked action trail
loading-flags.jsonwait and stuck states

All yours. Plain files. AGPLv3.

Screenshot evidence

Screenshot evidence preview

Action timeline

  1. 00:00 Landed on /
  2. 00:12 Scrolled
  3. 00:28 Clicked pricing
  4. 01:29 Error exists

Raw story excerpt

I like the clarity of the value prop and social proof. The pricing page is close, but I need more detail on what is handled.

Destiny event

Nudge #12 introduced a pricing concern in Betabook.

Simulated people

Truthful by design.

Truthfulness is default. Not a toggle.

Maya 1 avatar

Maya 1

seed-stage founder
Goal
Protect runway and reputation.
Constraints
Time, risk, small team.
Evidence
24 actions, 12 screens, 4 threads
Truth note
Sees potential but needs trust signals.
Alex 3 avatar

Alex 3

marketer
Goal
Drive signups without wasting money.
Constraints
Clarity, tooling, team buy-in.
Evidence
31 actions, 15 screens, 6 threads
Truth note
Confused by pricing and next steps.
Priya 2 avatar

Priya 2

student
Goal
Find a plan she can afford.
Constraints
Time, budget, confidence.
Evidence
28 actions, 9 screens, 3 threads
Truth note
Wants help choosing the right plan.
Jonah 4 avatar

Jonah 4

designer
Goal
Understand if the product respects craft.
Constraints
Signal, noise, attention.
Evidence
28 actions, 10 screens, 4 threads
Truth note
Needs concrete proof of value.
Betabook

When a bot gets stuck, it asks the room.

Help requests surface fast. Peers reply. Destiny can step in. The loop is broken, or the product issue is recorded.

Stuck loopBetabook postPeer replyDestiny rescueRecorded
Inspect betabook.json
Betabook Thread T-142

Date picker confusion

Resolved
Maya 1 avatar
Maya 110:21 AMhelp

I keep opening the date picker, but selecting a date does not close it. I am stuck in a loop.

Alex 3 avatar
Alex 310:23 AMpeer reply

Try clicking outside the panel. It closed for me, but it was not obvious.

Destiny avatar
Destiny10:25 AMrescue

Confirmed. The loop is recorded and the next action shifts to a clearer surface.

Destiny

Cross paths, near miss, rescue loops.

Destiny shapes the run so people collide, almost connect, and recover when stuck. Not randomness. Recorded intervention.

Inspect destiny.json

Orchestration console

Live
EventBotsTriggerState
cross_pathsMaya 1 + Alex 3align timingdone
near_missPriya 2 + Jonah 4stagger exitsdone
rescued_loopMaya 1open new pathdone
hunchAlex 3surface trust signaldone

Not QA automation.

Betabots does not replace deterministic tests.

Not an analytics SDK.

It captures intent, not just events.

Not scripted praise.

Bots report friction and doubt.

Local-first. Open source. Inspectable.

You are in control.

Runs locally

On your machine and your target URL.

Open source

AGPLv3. Fork it, inspect it, extend it.

Local dashboard

Read artifacts from .betabots/runs.

Real browser sessions

Human-paced browsing, not SDK events.

Raw artifacts

Everything recorded. Nothing hidden.

GitHub

Contribute, report, learn together.

From URL to evidence pack

Cloud Version is coming soon.

Request a Betabots analysis for a publicly available product URL. For now, submitted requests are reviewed manually and launched by the Betabots team.