{"id":43382614,"url":"https://github.com/alexandriashai/cbrowser","last_synced_at":"2026-08-27T16:43:30.205Z","repository":{"id":335988490,"uuid":"1147741306","full_name":"alexandriashai/cbrowser","owner":"alexandriashai","description":"Cognitive Browser: The browser automation that thinks. Constitutional safety • Persona UX testing • Natural language interface • Self-healing selectors • Built for AI agents","archived":false,"fork":false,"pushed_at":"2026-08-11T23:50:35.000Z","size":5158,"stargazers_count":19,"open_issues_count":26,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-08-11T23:58:59.847Z","etag":null,"topics":["accessibility","ai","ai-testing","browser-automation","claude","e2e-testing","mcp","playwright","testing","typescript","ux-testing","visual-testing","web-scraping"],"latest_commit_sha":null,"homepage":"https://cbrowser.ai","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexandriashai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2026-02-02T06:35:02.000Z","updated_at":"2026-08-11T23:50:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/alexandriashai/cbrowser","commit_stats":null,"previous_names":["alexandriashai/cbrowser"],"tags_count":351,"template":false,"template_full_name":null,"purl":"pkg:github/alexandriashai/cbrowser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandriashai%2Fcbrowser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandriashai%2Fcbrowser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandriashai%2Fcbrowser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandriashai%2Fcbrowser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexandriashai","download_url":"https://codeload.github.com/alexandriashai/cbrowser/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandriashai%2Fcbrowser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36944920,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-08-27T02:00:07.166Z","response_time":96,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","ai","ai-testing","browser-automation","claude","e2e-testing","mcp","playwright","testing","typescript","ux-testing","visual-testing","web-scraping"],"created_at":"2026-02-02T08:53:05.408Z","updated_at":"2026-08-27T16:43:30.197Z","avatar_url":"https://github.com/alexandriashai.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CBrowser — Cognitive Browser Automation\n\n\u003e **The browser automation that thinks like your users.** 122 MCP tools. 25 cognitive traits. 11 disability personas. The only framework that predicts when users give up.\n\n[![npm version](https://img.shields.io/npm/v/cbrowser.svg)](https://www.npmjs.com/package/cbrowser)\n[![Documentation](https://img.shields.io/badge/Docs-cbrowser.ai-blue.svg)](https://cbrowser.ai/docs)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n[![MCP Ready](https://img.shields.io/badge/MCP-122%20Tools-blue)](https://modelcontextprotocol.io)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue.svg)](https://www.typescriptlang.org/)\n[![Node](https://img.shields.io/badge/Node-%3E%3D18-green.svg)](https://nodejs.org/)\n\n```bash\nnpm install cbrowser\nnpx cbrowser cognitive-effort --url \"https://your-site.com\" --persona first-timer\n```\n\n---\n\n## 5-Minute Quickstart\n\nGet from zero to your first cognitive insight in 3 commands:\n\n```bash\n# 1. Install CBrowser\nnpm install cbrowser\n\n# 2. Install the browser engine (~150MB)\nnpx playwright install chromium\n\n# 3. Run your first cognitive audit\nnpx cbrowser cognitive-effort --url \"https://your-site.com\" --persona first-timer\n```\n\n**What you get:** A cognitive transport score (0-1), abandonment risk percentage, and the UX bottleneck — in under 30 seconds.\n\n**No API key needed** for basic commands (navigate, screenshot, click, extract, explore). Cognitive journeys require an Anthropic API key:\n\n```bash\nnpx cbrowser config set-api-key \u003cyour-anthropic-key\u003e\n```\n\n**Check your environment:** Run `npx cbrowser doctor` to verify everything is set up correctly.\n\n**Accessibility:** CBrowser supports `--no-color` (or `NO_COLOR` env var), `--plain` (no emoji/decorations), and `--json-output` (structured JSON) for screen readers, CI pipelines, and scripting.\n\n---\n\n## Table of Contents\n\n- [5-Minute Quickstart](#5-minute-quickstart)\n- [Cognitive Transport Chain](#cognitive-transport-chain)\n- [Visual Overlays \u0026 Attention Analysis](#visual-overlays--attention-analysis)\n- [AI Friendliness Suite](#ai-friendliness-suite)\n- [Cognitive User Simulation](#cognitive-user-simulation)\n- [Accessibility Empathy Testing](#accessibility-empathy-testing)\n- [Constitutional AI Safety](#constitutional-ai-safety)\n- [Site Knowledge System](#site-knowledge-system)\n- [Natural Language Testing](#natural-language-testing)\n- [Visual Testing](#visual-testing)\n- [Competitive UX Benchmark](#competitive-ux-benchmark)\n- [Geo Proxy](#geo-proxy)\n- [MCP Server Integration](#mcp-server-integration)\n- [CI/CD Integration](#cicd-integration)\n- [API Reference](#api-reference)\n- [Configuration](#configuration)\n- [Enterprise Edition](#enterprise-edition)\n- [Contributing](#contributing)\n- [License](#license)\n\n---\n\n## Cognitive Transport Chain\n\nThe eight-layer Sequential Transport Chain computes exactly how hard your page is for any persona - and predicts whether they'll abandon. Each layer answers one question about the visitor:\n\n| Layer | The Question It Answers | Research Basis |\n|-------|------------------------|----------------|\n| **Saliency** | Can they find the thing they came for? | CIE-Lab W₂ perceptual model |\n| **Cognitive Load** | Is there more on this page than they can hold at once? | Sweller (1988) CLT |\n| **Decision** | Are there too many choices to pick between? | Hick-Hyman Law |\n| **Motor** | Can they physically hit the target? | Grossman \u0026 Balakrishnan (2005) |\n| **Motor Procedure** | Can they get through the whole sequence, not just one click? | Procedural fluency (split from Motor) |\n| **Frustration** | How close are they to giving up? | Ceaparu et al. (2004) |\n| **Readability** | Can they decode the words on the page? | Perry \u0026 Zorzi (2013) reading model |\n| **Reading Attention** | Can they hold the line long enough to finish? | Sustained attention (split from Readability) |\n\nThe chain is *sequential* because attention is a budget, not a checklist. Each layer's cost is paid from whatever the layers before it left behind: a visitor who burned working memory just finding the button has less left for the form, and a persona who arrives at your pricing table already frustrated reads it differently than one who got there clean. That's why a page that exhausts people early scores differently from one that is uniformly hard, and why the bottleneck layer matters more than the average.\n\nTwo layers were split out of their neighbors because they fail for different reasons. **Motor Procedure** is separate from **Motor** because hitting a target and completing a sequence are different failures - you can land every click and still lose your place halfway through a form. **Reading Attention** is separate from **Readability** because decoding text and holding your place in it are different abilities - an ADHD reader typically decodes fine and loses the thread, and a single \"reading\" score can't say that.\n\n```bash\nnpx cbrowser cognitive-effort --url \"https://your-site.com\" --persona first-timer\n# → CTC: 0.76, abandonment risk: 42%, bottleneck: decision\n```\n\nReturns: total CTC score, per-layer breakdown, bottleneck identification, abandonment risk percentage, and motor accessibility overlay.\n\n---\n\n## Visual Overlays \u0026 Attention Analysis\n\nSee where users look, what they miss, and whether your CTAs capture attention — per persona:\n\n```bash\n# Full visual cognitive story — 4 annotated images + narrative\nnpx cbrowser visual-cognitive-story --url \"https://your-site.com\" --persona cognitive-adhd\n\n# Attention heatmap — where does this persona look?\nnpx cbrowser attention-analysis --url \"https://your-site.com\" --persona first-timer\n\n# Compare how two personas experience the same page\nnpx cbrowser attention-compare --url \"https://your-site.com\" --persona-a first-timer --persona-b power-user\n```\n\n**Overlays generated:**\n- **Attention heatmap** — CIE-Lab saliency on grayscale base (red = high attention)\n- **Motor accessibility** — Green/yellow/red per element by P(hit)\n- **Attention quality** — CTAs green, distractors red, headings blue\n- **Comparison diff** — Blue = persona A attention, red = persona B\n\n**Metrics:** CTA capture rate, value prop salience, distractor ratio, quality score (0-100), entropy.\n\n---\n\n## AI Friendliness Suite\n\nFive tools to make your site ready for the AI agent era:\n\n| Tool | What It Does |\n|------|-------------|\n| `agent_ready_audit` | Score site on findability, stability, agent-perceivability, semantics (A-F grade) |\n| `ai_benchmark` | Compare AI-friendliness across competitor URLs |\n| `webmcp_ready_audit` | Audit MCP server for WebMCP compatibility |\n| `remediation_patches` | Generate actionable code fixes for audit findings |\n| `llms_txt_generate` | Generate AI-readable llms.txt site description |\n\n```bash\nnpx cbrowser agent-ready-audit \"https://your-site.com\" --html\nnpx cbrowser ai-benchmark \"https://site-a.com,https://site-b.com\"\n```\n\n---\n\n## Cognitive User Simulation\n\n**26 research-backed cognitive traits + 10 motivational values** model how real users think, struggle, and give up:\n\n| Trait | Research Basis | What It Models |\n|-------|---------------|----------------|\n| **Patience** | Nah (2004); Nielsen (1993) | Tolerance for delays; abandonment at 8+ seconds |\n| **Working Memory** | Miller (1956) | 7±2 item capacity; affects form complexity tolerance |\n| **Comprehension** | Card, Moran \u0026 Newell (1983) | UI convention understanding; GOMS model timing |\n| **Risk Tolerance** | Kahneman \u0026 Tversky (1979) | Prospect theory; loss aversion affects CTA clicks |\n| **Self-Efficacy** | Bandura (1977) | Belief in ability to solve problems; low = faster abandonment |\n| **Satisficing** | Simon (1956) | Accept \"good enough\" vs. optimize; 50% faster decisions |\n| **Trust Calibration** | Fogg (2003) | 8 trust signals; affects click-through by 40% |\n| **Information Foraging** | Pirolli \u0026 Card (1999) | \"Scent\" following behavior; predicts navigation patterns |\n| **Social Proof** | Cialdini (2001) | Influence of reviews, ratings, popularity indicators |\n| **FOMO** | Przybylski et al. (2013) | Fear of missing out; urgency and scarcity responses |\n\n*See [Trait Index](https://cbrowser.ai/docs/Trait-Index) for all 25 traits including: Persistence, Resilience, Curiosity, Change Blindness, Anchoring Bias, Time Horizon, Attribution Style, Metacognitive Planning, Procedural Fluency, Transfer Learning, Authority Sensitivity, Emotional Contagion, Mental Model Rigidity, Interrupt Recovery, Reading Tendency, and Site Familiarity.*\n\n**Full documentation:** [Research Methodology](https://cbrowser.ai/docs/Research-Methodology) · [Trait Index](https://cbrowser.ai/docs/Trait-Index) · [Bibliography](https://cbrowser.ai/docs/Bibliography)\n\n### 17 Built-in Personas\n\n**6 general:** first-timer, power-user, mobile-user, screen-reader-user, elderly-user, impatient-user\n\n**11 accessibility:** motor-impairment-tremor, low-vision-magnified, cognitive-adhd, dyslexic-user, deaf-user, elderly-low-vision, color-blind-deuteranopia, autism-spectrum, intellectual-disability, aphasia-receptive, dyscalculia\n\n### Values System\n\nBeyond cognitive traits, CBrowser models **10 motivational values** from three psychological frameworks:\n\n| Framework | Research Basis |\n|-----------|---------------|\n| **Schwartz's Universal Values** | Schwartz (1992) — 10 core values: Power, Achievement, Hedonism, Stimulation, Self-Direction, Universalism, Benevolence, Tradition, Conformity, Security |\n| **Self-Determination Theory** | Deci \u0026 Ryan (1985) — Autonomy, Competence, Relatedness |\n| **Maslow's Hierarchy** | Maslow (1943) — 5 need levels |\n\nSee [Values Framework](https://cbrowser.ai/docs/Values-Framework) for full documentation.\n\n### Custom Persona Builder\n\n```bash\n# Interactive questionnaire (8 core traits)\nnpx cbrowser persona-questionnaire start\n\n# Comprehensive questionnaire (all 25 traits)\nnpx cbrowser persona-questionnaire start --comprehensive --name \"my-tester\"\n\n# From a description — AI generates trait values\nnpx cbrowser persona-create \"A 68-year-old retiree who just got their first smartphone\"\n```\n\n### Abandonment Detection\n\nThe simulation stops when a realistic user would give up:\n\n```bash\n⚠️ ABANDONED after 8 steps\nReason: Patience depleted (0.08) - \"This is taking too long...\"\nFriction points:\n  1. Password requirements unclear (step 4)\n  2. Form validation error not visible (step 6)\n```\n\n---\n\n## Accessibility Empathy Testing\n\nSimulate how users with disabilities experience your site:\n\n```bash\nnpx cbrowser empathy-audit \"https://your-site.com\" \\\n  --goal \"complete signup\" \\\n  --disabilities \"motor-impairment-tremor\" \\\n  --html\n```\n\n---\n\n## Constitutional AI Safety\n\nAI agents need boundaries. CBrowser classifies every action by risk level:\n\n| Zone | Examples | Behavior |\n|------|----------|----------|\n| 🟢 **Green** | Navigate, read, screenshot | Auto-execute |\n| 🟡 **Yellow** | Click buttons, fill forms | Log and proceed |\n| 🔴 **Red** | Submit, delete, purchase | Requires verification |\n| ⬛ **Black** | Bypass auth, inject scripts | Never executes |\n\n---\n\n## Site Knowledge System\n\nCBrowser learns your site over time:\n\n- **Page Understanding** — DOM analysis, page type classification, available affordances\n- **Site Model Learning** — Persistent knowledge graph across sessions\n- **Cross-Session Profiles** — AES-256-GCM encrypted cookie/state profiles\n- **Goal Decomposition** — Sub-goal trees with fallback strategies\n\n---\n\n## Natural Language Testing\n\n```txt\n# Test: Checkout Flow\ngo to https://your-site.com/products\nclick \"Add to Cart\" button\nverify page contains \"1 item in cart\"\nclick checkout\nfill email with \"test@example.com\"\nclick \"Place Order\"\nverify url contains \"/confirmation\"\n```\n\n```bash\nnpx cbrowser test-suite checkout-test.txt --html\n\n# Auto-repair broken tests\nnpx cbrowser repair-tests broken-test.txt --auto-apply --verify\n```\n\n---\n\n## Visual Testing\n\n```bash\n# AI visual regression\nnpx cbrowser ai-visual capture \"https://your-site.com\" --name homepage\nnpx cbrowser ai-visual test \"https://staging.your-site.com\" homepage --html\n\n# Cross-browser (Chrome, Firefox, Safari)\nnpx cbrowser cross-browser \"https://your-site.com\" --html\n\n# Responsive (mobile, tablet, desktop)\nnpx cbrowser responsive \"https://your-site.com\" --html\n\n# A/B comparison (staging vs production)\nnpx cbrowser ab \"https://staging.your-site.com\" \"https://your-site.com\" --html\n```\n\n---\n\n## Competitive UX Benchmark\n\nRun identical cognitive journeys across your site and competitors:\n\n```bash\nnpx cbrowser competitive-benchmark \\\n  --sites \"https://your-site.com,https://competitor-a.com,https://competitor-b.com\" \\\n  --goal \"sign up for free trial\" \\\n  --persona first-timer \\\n  --html\n```\n\n---\n\n## Upgrading to 19.0.0\n\nOne breaking change: the agent-ready **accessibility** axis is now\n**agentPerceivability**, and three deprecated aliases are removed.\n\n| removed | use instead |\n|---|---|\n| `score.accessibility` | `score.agentPerceivability` |\n| `summary.dynamicContentCount` | `summary.deferredLoadingPatterns` |\n| `comparison.bestAccessibility` | `comparison.bestAgentPerceivability` |\n| issue `category: \"accessibility\"` | `category: \"agentPerceivability\"` |\n\nAll three replacements have carried identical values since 18.82.0, so if you\nupgraded within that range you can switch keys before upgrading and take this\nrelease with no further change.\n\nThe rename is not cosmetic. That axis measures whether a *machine* can perceive\nyour elements — ARIA present, elements carry text. It is **not** a WCAG\nconformance score, and it returned 100 on a page where `empathy_audit` found two\nWCAG violations. Both numbers were right; calling one of them \"accessibility\" was\nnot. Run `empathy_audit` for conformance, and expect the two to differ.\n\nOn input, `category: \"accessibility\"` is still accepted and scores identically, so\ntools that *send* issues need not change immediately. Tools that *read* scores do.\n\n---\n\n## Geo Proxy\n\nTest from 10 global regions via residential proxies:\n\n```bash\nnpx cbrowser cognitive-journey \\\n  --start \"https://your-site.com\" \\\n  --persona first-timer \\\n  --goal \"sign up\" \\\n  --geo-region uk\n```\n\n**Regions:** `us-west`, `us-east`, `us-central`, `uk`, `germany`, `france`, `japan`, `australia`, `canada`, `brazil`\n\nGeo routing needs your own residential-proxy credentials — the package ships the\nmechanism and no keys. Set `IPROYAL_USERNAME` / `IPROYAL_PASSWORD`, or place a\n`geo-proxy.json` at `~/.cbrowser/`. Without either, `--geo-region` fails loudly\nrather than silently running from your own IP.\n\nA `geo-proxy.json` may define additional regions; they merge over the ten above.\n\n\u003e **Corrected 2026-08-11.** This section previously advertised 12 regions\n\u003e including `india` and `singapore`. Those are not in the shipped defaults and\n\u003e resolve to nothing on a clean install — they existed only in a local config\n\u003e file on one machine. Advertising them was a claim the package could not keep.\n\n---\n\n## MCP Server Integration\n\nCBrowser runs as an MCP server for Claude.ai, Claude Desktop, and Claude Code.\n\n### Claude.ai (Easiest — No Install)\n\nAdd the MCP connector and optionally install the Claude.ai Skill:\n\n1. Go to [Customize → Connectors](https://claude.ai/customize/connectors) → \"Add custom connector\"\n2. Paste: `https://demo.cbrowser.ai/mcp`\n3. Download the [Claude.ai Skill (.zip)](https://cbrowser.ai/downloads/cbrowser-claudeai.skill) — gives Claude context about tools, pricing, and workflows\n4. Go to Customize → Skills → Upload the zip\n\n\u003e **Note:** The Claude.ai Skill is a lightweight knowledge file for the web interface. It is NOT the same as the Claude Code Skill (see below).\n\n### Claude Code Skill (CLI — Not for Claude.ai)\n\nFor [Claude Code](https://claude.ai/claude-code) terminal users:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/alexandriashai/cbrowser/main/scripts/install-skill.sh | bash\nnpm install -g cbrowser \u0026\u0026 npx playwright install\n```\n\nThe Claude Code Skill is a full CLI integration with workflow routing, TypeScript tools, persistent memory, and constitutional safety. See [Skill Installation Guide](https://cbrowser.ai/docs/claude-skill-installation) for details.\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"cbrowser\": {\n      \"url\": \"https://demo.cbrowser.ai/mcp\"\n    }\n  }\n}\n```\n\n### Local MCP Server\n\n```json\n{\n  \"mcpServers\": {\n    \"cbrowser\": {\n      \"command\": \"npx\",\n      \"args\": [\"cbrowser\", \"mcp-server\"]\n    }\n  }\n}\n```\n\n### 122 MCP Tools\n\n| Category | Tools | Count |\n|----------|-------|-------|\n| **Navigation** | `navigate`, `screenshot`, `scroll`, `extract`, `analyze_page`, `find_element_by_intent` | 6 |\n| **Interaction** | `click`, `smart_click`, `fill`, `dismiss_overlay` | 4 |\n| **Cognitive Core** | `cognitive_journey_init`, `cognitive_journey_update_state`, `cognitive_journey_autonomous`, `cognitive_effort`, `cognitive_load_estimate`, `site_cognitive_assessment` | 6 |\n| **Cognitive Transport** | `cognitive_distance`, `cognitive_interpolate`, `cognitive_coverage`, `transport_map` | 4 |\n| **Attention \u0026 Visual Story** | `attention_analysis`, `attention_compare`, `visual_cognitive_story` | 3 |\n| **Persona** | `list_cognitive_personas`, `compare_personas`, `persona_create_*`, `persona_questionnaire_*`, `persona_trait_lookup`, `persona_values_*` | 15 |\n| **Testing** | `nl_test_inline`, `nl_test_file`, `generate_tests`, `repair_test`, `detect_flaky_tests`, `coverage_map` | 6 |\n| **Visual Testing** | `visual_baseline`, `visual_regression`, `responsive_test`, `cross_browser_test`, `cross_browser_diff`, `ab_comparison` | 6 |\n| **Site Intelligence** | `page_understand`, `site_model_query`, `site_model_status`, `site_profile_*` | 6 |\n| **AI Friendliness** | `agent_ready_audit`, `ai_benchmark`, `webmcp_ready_audit`, `remediation_patches`, `llms_txt_generate`, `llms_txt_validate`, `llms_txt_diff`, `structured_data_suggest` | 8 |\n| **Analysis** | `hunt_bugs`, `chaos_test`, `competitive_benchmark`, `empathy_audit` | 4 |\n| **Performance** | `perf_baseline`, `perf_regression` | 2 |\n| **Marketing** *(Enterprise)* | `marketing_campaign_*`, `marketing_audience_discover`, `marketing_compete`, `marketing_funnel_analyze`, `marketing_influence_matrix`, `marketing_lever_analysis`, `marketing_personas_list`, `list_influence_patterns` | 11 |\n| **Security** | `security_audit`, `web_security_scan` | 2 |\n| **Stealth** *(Enterprise)* | `stealth_enable`, `stealth_disable`, `stealth_status`, `stealth_check`, `stealth_diagnose`, `cloudflare_detect`, `cloudflare_wait` | 7 |\n| **Session \u0026 Browser** | `save_session`, `load_session`, `delete_session`, `list_sessions`, `list_baselines`, `browser_health`, `browser_recover`, `reset_browser`, `heal_stats`, `status` | 10 |\n| **Utility** | `assert`, `ask_user`, `set_api_key`, `api_key_status`, `clear_api_key`, `get_api_key_prompt` | 6 |\n\n### Token Cost \u0026 Selective Loading\n\n122 MCP tools consume ~45,000 tokens in LLM context. For cost-sensitive use, load selectively:\n\n```typescript\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport {\n  registerNavigationTools,\n  registerInteractionTools,\n  registerExtractionTools,\n} from \"cbrowser/mcp-tools\";\n\nconst server = new McpServer({ name: \"my-app\", version: \"1.0.0\" });\nconst context = { getBrowser: () =\u003e browser };\n\n// ~5,000 tokens instead of ~45,000\nregisterNavigationTools(server, context);\nregisterInteractionTools(server, context);\nregisterExtractionTools(server, context);\n```\n\n**Categories:** `navigation`, `interaction`, `extraction`, `assertion`, `analysis`, `session`, `healing`, `visualTesting`, `testing`, `bugAnalysis`, `personaComparison`, `cognitive`, `cognitiveTransport`, `attention`, `siteKnowledge`, `values`, `performance`, `audit`, `browserManagement`, `security`, `marketing`, `remediation`, `llmsTxt`.\n\n---\n\n## CI/CD Integration\n\n### GitHub Actions\n\n```yaml\nname: CBrowser Tests\non: [pull_request]\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: alexandriashai/cbrowser@v18\n        with:\n          test-file: tests/e2e/checkout.txt\n          sensitivity: strict\n```\n\n### Docker\n\n```bash\ndocker run --rm -v $(pwd)/tests:/work/tests ghcr.io/alexandriashai/cbrowser:latest \\\n  test-suite tests/checkout.txt --html\n```\n\n---\n\n## API Reference\n\n```typescript\nimport { CBrowser } from 'cbrowser';\n\nconst browser = new CBrowser({\n  headless: true,\n  persistent: true,\n});\n\nawait browser.navigate('https://example.com');\n\nconst result = await browser.smartClick('Sign In', {\n  maxRetries: 3,\n  minConfidence: 0.8,\n});\n\nconst assertion = await browser.assert(\"page contains 'Welcome'\");\nif (!assertion.passed) {\n  console.error(assertion.message);\n}\n\nawait browser.close();\n```\n\n### Modular Imports\n\n```typescript\nimport { runVisualRegression, runCrossBrowserTest } from 'cbrowser/visual';\nimport { runNLTestSuite, detectFlakyTests, repairTest } from 'cbrowser/testing';\nimport { huntBugs, runChaosTest, findElementByIntent } from 'cbrowser/analysis';\nimport { capturePerformanceBaseline, detectPerformanceRegression } from 'cbrowser/performance';\n```\n\n---\n\n## Configuration\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `CBROWSER_DATA_DIR` | `~/.cbrowser` | Data storage directory |\n| `CBROWSER_HEADLESS` | `true` | Run headless |\n| `CBROWSER_BROWSER` | `chromium` | Browser engine |\n| `CBROWSER_TIMEOUT` | `30000` | Default timeout (ms) |\n| `CBROWSER_PROXY` | — | Proxy URL |\n\n```bash\nnpx cbrowser config set-api-key  # Required for cognitive journeys\n```\n\n---\n\n## Enterprise Edition\n\n[CBrowser Enterprise](https://cbrowser.ai/enterprise) adds:\n\n| Feature | Description |\n|---------|-------------|\n| **Marketing Suite** | Test which design/copy/UX patterns influence which buyer segments |\n| **8 Marketing Personas** | B2B (enterprise-buyer, startup-founder, procurement-manager, technical-evaluator) + Consumer (impulse-shopper, price-researcher, loyal-customer, skeptical-first-timer) |\n| **Influence Matrix** | Conversion effectiveness for variant × persona combinations |\n| **Lever Analysis** | Which psychological persuasion patterns work for each persona |\n| **Constitutional Stealth** | Full stealth measures for authorized penetration testing |\n| **Web Security Scan** | OWASP-based security scanning |\n\nAll 125 MCP tools included with no rate limits.\n\n---\n\n## License\n\n**MIT License** — Free and open source. See [LICENSE](LICENSE).\n\n---\n\n© 2026 Alexandria Eden · [cbrowser.ai](https://cbrowser.ai) · [alexandria.shai.eden@gmail.com](mailto:alexandria.shai.eden@gmail.com)\n\n---\n\n## Links\n\n- **[Documentation](https://cbrowser.ai/docs)** — Full docs, guides, API reference\n- [NPM Package](https://www.npmjs.com/package/cbrowser)\n- [GitHub](https://github.com/alexandriashai/cbrowser)\n- [Issue Tracker](https://github.com/alexandriashai/cbrowser/issues)\n- [Roadmap](https://cbrowser.ai/docs/Roadmap)\n\n### Research\n\n- [Research Methodology](https://cbrowser.ai/docs/Research-Methodology) — How the 25 traits were selected and validated\n- [Trait Index](https://cbrowser.ai/docs/Trait-Index) — All cognitive traits with citations\n- [Bibliography](https://cbrowser.ai/docs/Bibliography) — Academic references\n- [Persona Index](https://cbrowser.ai/docs/Persona-Index) — All 17 cognitive + 8 marketing personas\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandriashai%2Fcbrowser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexandriashai%2Fcbrowser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandriashai%2Fcbrowser/lists"}