Cognitive User Simulation
v16.7.0 | Autonomous, goal-driven user simulation. AI acts as a realistic persona with 26 research-backed cognitive traits.
New in v16.x: 26 cognitive traits (expanded from 12), 21 personas (expanded from 6), persona questionnaire for custom profiles, and full research documentation. See Trait-Index and Persona-Index for full reference.
Overview
Cognitive User Simulation tests how real users think and behave. It does not just test if buttons click. It tests whether an elderly first-timer can complete your signup flow.
npx cbrowser cognitive-journey \
--persona first-timer \
--start "https://example.com" \
--goal "sign up for an account" \
--vision --verbose
How It Works
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β COGNITIVE JOURNEY LOOP β
β β
β PERCEIVE β COMPREHEND β DECIDE β EXECUTE β EVALUATE β (loop) β
β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β Snapshot β β AI thinks β β Execute β β
β β the page ββββΆβ as persona ββββΆβ action β β
β β (a11y tree)β β (Claude) β β (click/fill)β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β² β β
β ββββββββββββββββββββββββββββββββββββββ β
β (until goal or abandon) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The 25 Cognitive Traits
Each persona has traits organized into 6 tiers that affect how they interact with your site. See Trait-Index for complete documentation with research citations.
Tier 1: Core Processing (7 traits)
| Trait | Range | What It Measures |
|---|---|---|
| patience | 0-1 | How quickly they give up |
| comprehension | 0-1 | Ability to understand UI conventions |
| workingMemory | 0-1 | Remembers what they've already tried |
| readingTendency | 0-1 | Scans for CTAs vs. reads everything |
| attentionSpan | 0-1 | Duration of focused attention |
| processingSpeed | 0-1 | Speed of information processing |
| cognitiveLoad | 0-1 | Current mental burden capacity |
Tier 2: Emotional Response (4 traits)
| Trait | Range | What It Measures |
|---|---|---|
| frustrationTolerance | 0-1 | Ability to handle obstacles |
| resilience | 0-1 | Emotional recovery from setbacks |
| anxietyLevel | 0-1 | Baseline anxiety affecting behavior |
| motivationLevel | 0-1 | Drive to complete tasks |
Tier 3: Decision Making (4 traits)
| Trait | Range | What It Measures |
|---|---|---|
| riskTolerance | 0-1 | Willingness to click unfamiliar elements |
| satisficing | 0-1 | Accept "good enough" vs. optimize |
| decisionSpeed | 0-1 | Speed of making choices |
| confirmationBias | 0-1 | Tendency to seek confirming evidence |
Tier 4: Goal & Planning (4 traits)
| Trait | Range | What It Measures |
|---|---|---|
| persistence | 0-1 | Tendency to retry vs. try something else |
| curiosity | 0-1 | Focused path vs. exploratory behavior |
| goalClarity | 0-1 | How well-defined their objective is |
| planningAbility | 0-1 | Capacity for strategic thinking |
Tier 5: Perception (3 traits)
| Trait | Range | What It Measures |
|---|---|---|
| visualAcuity | 0-1 | Ability to perceive visual details |
| changeBlindness | 0-1 | Failure to notice page changes |
| bannerBlindness | 0-1 | Ignoring ad-like content |
Tier 6: Social & Trust (3 traits)
| Trait | Range | What It Measures |
|---|---|---|
| selfEfficacy | 0-1 | Belief in ability to solve problems |
| trustCalibration | 0-1 | Baseline trust toward websites |
| socialProofSensitivity | 0-1 | Influenced by others' behavior |
Trait Examples
elderly-user (patience: 0.9, comprehension: 0.2):
- Very patient, keeps trying
- Struggles with modern UI conventions
- Reads everything thoroughly
impatient-user (patience: 0.2, riskTolerance: 0.6):
- Gives up quickly
- Clicks things without reading
- Expects instant results
Built-in Personas (21)
CBrowser includes 21 research-backed personas. See Persona-Index for complete profiles with trait mappings.
General Personas (6)
| Persona | Description | Key Traits |
|---|---|---|
power-user |
Tech-savvy expert | High comprehension, low patience |
first-timer |
New user exploring | Low comprehension, high curiosity |
mobile-user |
Touch interface user | Low patience, high satisficing |
screen-reader-user |
Keyboard navigation | High persistence, sequential attention |
elderly-user |
Older adult (65+) | High patience, low working memory |
impatient-user |
Quick to abandon | Very low patience, high FOMO |
Accessibility Personas (11)
| Persona | Description | Key Traits |
|---|---|---|
motor-tremor |
Motor impairment | Low risk tolerance, high patience |
low-vision |
Vision impairment (magnified) | High reading tendency, low change blindness |
adhd |
Attention differences | Low working memory, high curiosity, low patience |
dyslexic-user |
Reading/text processing | High patience, low reading speed |
deaf-user |
Hearing impairment | Relies on visual cues, captions |
elderly-low-vision |
Combined age + vision | High patience, needs large text |
color-blind |
Red-green color blindness | Cannot distinguish red/green UI cues |
autism-spectrum |
Autistic adult user | Needs predictability, literal interpretation, low risk tolerance |
intellectual-disability |
Mild-moderate ID | Needs plain language, image support, simple navigation |
aphasia-receptive |
Language comprehension impairment | Relies on icons and visual cues, avoids text-heavy pages |
dyscalculia |
Numerical processing difficulty | Struggles with pricing, quantities, dates, percentages |
Emotional Personas (4)
| Persona | Description | Key Traits |
|---|---|---|
anxious-user |
High risk aversion | Needs reassurance, reads warnings carefully |
confident-user |
High self-efficacy | Quick decisions, doesn't read help |
emotional-user |
High emotional contagion | Mood-driven decisions, responds to tone |
stoic-user |
Low emotional response | Methodical, unaffected by urgency cues |
Attention Patterns
How different personas scan pages:
| Pattern | Behavior | Typical Persona |
|---|---|---|
| targeted | Looks for specific elements | power-user |
| f-pattern | Top β left side β content | general users |
| exploratory | Random exploration | first-timer |
| sequential | Tab order, keyboard nav | screen-reader-user |
| thorough | Reads everything | elderly-user |
| skim | Only large/bold elements | impatient-user |
Cognitive Science Foundations (v9.9.0-v10.2.0)
CBrowser's simulation is grounded in established cognitive science research:
Decision Fatigue (v9.9.0)
Based on decision fatigue research. Fatigue accumulates logarithmically with each decision.
Note: The ego depletion model (Baumeister et al., 1998) has faced replication challenges (Hagger et al., 2016 multi-lab replication). CBrowser uses a decision fatigue model focused on observable choice degradation. It does not use the contested resource depletion mechanism.
| Metric | Description |
|---|---|
decisionsMade |
Count of choices made during journey |
finalDecisionFatigue |
0-1 fatigue level at end |
wasChoosingDefaults |
True when fatigue exceeded threshold |
When fatigue exceeds threshold (based on persistence trait), users start choosing defaults instead of optimal options.
Fitts' Law Mouse Timing (v9.9.0)
Classic motor control research: MT = a + b Γ logβ(D/W + 1)
- D = distance to target
- W = target width
- Age/tremor modifiers from persona traits
- Elderly personas show 2x+ slower mouse movements
Dual-Process Theory (v10.0.0)
Based on Kahneman (2011) System 1/2 thinking research:
| System | Mode | When Used |
|---|---|---|
| System 1 | Automatic, fast, intuitive | Experts, familiar tasks |
| System 2 | Deliberate, slow, analytical | Novices, confusion, errors |
Automatic switching:
- β System 2 when confusion exceeds threshold OR after 3+ errors
- β System 1 when confusion drops AND recent action succeeded
GOMS/KLM Timing (v10.0.0)
Foundational HCI research from Card, Moran & Newell:
| Operator | Time (ms) | Description |
|---|---|---|
| K (keystroke) | 120-500 | Expert to novice typing |
| P (pointing) | 1100 | Standard mouse movement |
| H (homing) | 400 | Hand movement keyboardβmouse |
| M (mental) | 600-1350 | Familiar to unfamiliar task prep |
F-Pattern Degradation (v10.1.0)
Eye-tracking research shows scan patterns narrow under cognitive load:
| Cognitive Load | Effective Scan Width | Visual Field |
|---|---|---|
| 0.0-0.5 | 100% | Full viewport |
| 0.5-0.7 | 60% | Narrowed to left side |
| 0.7-0.8 | 30% | Tunnel vision |
| 0.8-1.0 | 20% | Severe tunnel vision |
Prospect Theory Loss Aversion (v10.1.0)
Based on Kahneman & Tversky (1979) behavioral economics research:
| Frame Type | Keywords | Click Modifier |
|---|---|---|
| Loss | "don't miss", "limited time", "last chance" | +50% (risk-seeking) |
| Gain | "get", "save", "earn", "free" | -30% (risk-averse) |
WebGazer Saliency (v10.2.0)
Visual attention priority based on eye-tracking research:
| Factor | Weight | Description |
|---|---|---|
| Semantic | 40% | Goal relevance |
| Position | 25% | Center = high, edges = low |
| Contrast | 20% | Color contrast with background |
| Size | 10% | Size relative to viewport |
| Motion | 5% | Animation/movement |
Gaze-Mouse Lag (v10.2.0)
Eyes lead mouse movements by 200-500ms depending on age:
- Age 20: ~200ms lag
- Age 40: ~300ms lag
- Age 60+: ~400-500ms lag
Stress-Induced Tunnel Vision (v10.2.0)
Based on the Yerkes-Dodson Law. High arousal narrows peripheral vision:
| Arousal Level | Peripheral Width | Peripheral Height |
|---|---|---|
| 0.0-0.4 | 100% | 100% |
| 0.4-0.6 | 75% | 80% |
| 0.6-0.8 | 50% | 60% |
| 0.8-1.0 | 30% | 40% |
Banner Blindness & Habituation (v10.2.0)
Users develop blindness to repeated UI patterns:
| Pattern | Typical Blind After |
|---|---|
| Cookie banners | 2-3 exposures |
| Newsletter popups | 2-3 exposures |
| Consent dialogs | 3 exposures |
| Promotional banners | 3-4 exposures |
Low comprehension users develop blindness faster (lower threshold).
Resilience & Emotional Recovery (v10.7.0)
Based on Smith et al. (2008) Brief Resilience Scale β measures ability to bounce back from setbacks:
| Resilience Level | Frustration Decay | Recovery Speed |
|---|---|---|
| Low (0.0-0.3) | 10% per success | Frustration lingers |
| Medium (0.3-0.7) | 20% per success | Normal recovery |
| High (0.7-1.0) | 30% per success | Rapid bounce-back |
Self-Efficacy Theory (v11.5.0)
Based on Bandura (1977) β belief in one's ability to solve problems:
| Self-Efficacy | Behavior Impact |
|---|---|
| Low (< 0.4) | Abandons 40% faster on first error, blames self |
| Medium (0.4-0.7) | Tries a few solutions, moderate confidence |
| High (> 0.7) | Tries 3x more solution paths, persists through errors |
State tracking: SelfEfficacyState with currentEfficacy, recentSuccesses, recentFailures, domainConfidence
Satisficing / Bounded Rationality (v11.5.0)
Based on Simon (1956) β accept "good enough" vs. seek optimal:
| Tendency | Decision Style | Speed Impact |
|---|---|---|
| Maximizer (< 0.4) | Examines all options, seeks best | Slower decisions |
| Balanced (0.4-0.7) | Evaluates key options | Normal speed |
| Satisficer (> 0.7) | Picks first acceptable option | 50% faster decisions |
State tracking: SatisficingState with aspirationLevel, optionsExamined, searchFatigue
Trust Calibration (v11.5.0)
Based on Fogg (2003) Stanford Persuasive Tech Lab β baseline trust toward websites:
| Trust Level | Behavior Impact |
|---|---|
| Low/Skeptical (< 0.4) | Scrutinizes security, reads policies, 3-10x longer on CTAs |
| Medium (0.4-0.7) | Evaluates trust signals normally |
| High/Trusting (> 0.7) | Clicks through without reading |
8 Trust Signals Detected:
https,security_badge,brand_recognition,professional_designreviews_visible,contact_info,privacy_policy,social_proof
State tracking: TrustState with currentTrust, signalsDetected, betrayalHistory
Interrupt Recovery (v11.5.0)
Based on Mark et al. (2005) "No Task Left Behind?" β average recovery time is 23 minutes:
| Recovery Ability | Resumption Outcome |
|---|---|
| Low (< 0.4) | Restarts from beginning, loses context |
| Medium (0.4-0.7) | Resumes with some lost progress (10-30%) |
| High (> 0.7) | Seamless recovery using environmental cues |
Interruption Types: external, system, self_initiated, timeout
State tracking: InterruptRecoveryState with currentTaskContext, environmentalCues, interruptionLog
Abandonment Detection
The simulation automatically ends when a real user would give up:
| Trigger | Threshold | Example |
|---|---|---|
| Patience depleted | < 0.1 | "This is taking too long" |
| Too confused | > 0.8 for 30s | "I have no idea what to do" |
| Too frustrated | > 0.85 | "This is so frustrating!" |
| No progress | 10+ steps, < 0.1 progress | "I'm not getting anywhere" |
| Stuck in loop | Same page 3x | "I keep ending up here" |
| Decision fatigue | > threshold (v9.9.0) | "I'll just pick the first option" |
Vision Mode (v8.4.0)
Enable --vision to send actual screenshots to Claude:
npx cbrowser cognitive-journey \
--persona elderly-user \
--start "https://example.com" \
--goal "find help page" \
--vision
Vision mode dramatically improves accuracy for:
- Complex layouts with multiple similar elements
- Dropdown menus that need hover to reveal items
- Visual cues not captured in element text
- Pages with dynamic content
Hover-Before-Click (v8.4.0)
All clicks automatically hover parent menu triggers first:
User wants to click "International Admissions" in dropdown:
WITHOUT hover-before-click:
β Click fails (item hidden)
β Frustration increases
β May abandon
WITH hover-before-click:
β Auto-detects "Admissions" is parent
β Hovers "Admissions" to reveal dropdown
β Clicks "International Admissions"
β Success!
CLI Usage
Basic Journey
npx cbrowser cognitive-journey \
--persona first-timer \
--start "https://example.com" \
--goal "create an account"
With All Options
npx cbrowser cognitive-journey \
--persona elderly-user \
--start "https://example.com" \
--goal "find the help page" \
--max-steps 50 \
--max-time 180 \
--vision \
--headless \
--verbose
Options
| Option | Description |
|---|---|
--persona |
Persona name (see built-in list) |
--start |
Starting URL |
--goal |
Natural language goal description |
--max-steps |
Maximum steps before stopping (default: 30) |
--max-time |
Maximum seconds (default: 120) |
--vision |
Send screenshots to Claude (v8.4.0) |
--headless |
Run without visible browser |
--verbose |
Show detailed step-by-step output |
MCP Tools
Three MCP tools for integration with Claude Desktop:
cognitive_journey_init
Initialize a journey with persona and goal:
{
"persona": "first-timer",
"startUrl": "https://example.com",
"goal": "sign up for an account"
}
Returns: Cognitive profile, initial state, abandonment thresholds
cognitive_journey_update_state
Update state after taking actions:
{
"journeyId": "journey-123",
"actionSuccess": true,
"currentUrl": "https://example.com/signup"
}
Returns: Updated state, abandonment check
list_cognitive_personas
List all personas with their cognitive traits.
Output Example
π COGNITIVE JOURNEY
Persona: elderly-user
Goal: Find the help page
Starting: https://example.com
βββ Step 1 βββ
PERCEIVE: Looking at the page carefully...
I see a lot of things. There's a menu at the top...
COMPREHEND:
- Dashboard β Not sure what this means (0.2 confidence)
- "?" icon β Maybe that's help? (0.4 confidence)
DECIDE: Let me look for the word "Help" first...
[Inner monologue: "I wish they would just write 'Help' somewhere.
Why do they make everything so small?"]
βββ Step 2 βββ
...
βββ JOURNEY COMPLETE βββ
Result: SUCCESS
Time: 28.4 seconds
Steps: 3
Friction points: 1 (small "?" icon, missed on first scan)
Recommendation: Add visible "Help" text link in main navigation
Daemon Mode (v8.4.0)
For manual cognitive journeys, use daemon mode to maintain browser state:
# Start persistent session
npx cbrowser daemon start
# Run journey steps manually
npx cbrowser navigate "https://example.com"
npx cbrowser hover "Menu" # Reveal dropdown
npx cbrowser click "Submenu Item" # Click revealed item
# Stop when done
npx cbrowser daemon stop
Best Practices
- Test multiple personas - What works for power-users may fail for first-timers
- Use vision mode - Especially for complex UIs
- Check abandonment reasons - They reveal UX friction
- Review inner monologue - Understand user confusion
- Compare personas -
npx cbrowser compare-personasfor side-by-side
Related
- Trait-Index - All 26 cognitive traits with research citations
- Persona-Index - 21 pre-configured user personas
- Values-Index - Schwartz's 10 universal values
- Bibliography - 60+ peer-reviewed academic sources
- Persona-Testing - Traditional persona-based journeys
- Multi-Persona-Comparison - Compare across personas
- Persona-Questionnaire - Create custom personas via questionnaire
- Examples - More code examples
Copyright: (c) 2026 Alexa Eden.
License: MIT License
Contact: [email protected]