# CursorFlow
**The measurement tool for web testing - we capture reality, not fiction**
CursorFlow is a pure data collection engine that captures comprehensive web application intelligence. Unlike simulation tools that let you control reality, CursorFlow measures actual reality - giving you complete trust in your test results.
## ๐ฏ The CursorFlow Philosophy
### **๐ We Collect Reality, Not Fiction**
**Other tools are simulation tools** - they let you control reality:
- Mock network responses
- Simulate user interactions
- Create test environments
**CursorFlow is a measurement tool** - we capture reality as-is:
- Real API response times
- Actual network failures
- Genuine browser behavior
- Complete page intelligence
### **๐ฌ Pure Observation Principle**
**CursorFlow is like a scientific instrument:**
- **Microscopes** don't create the cells they observe
- **Telescopes** don't generate the stars they capture
- **CursorFlow** doesn't mock the web it measures
When CursorFlow reports `"average_response_time": 416.58ms`, you can tell stakeholders: **"This is what actually happened"** - not "this is what happened in our test simulation."
### **๐ The Trust Factor**
**Complete Reliability:** Every data point reflects real application behavior
- No mocked responses hiding slow APIs
- No simulated interactions missing real edge cases
- No test environments different from production
**Documentary vs Movie:** Both are valuable, but if you're trying to understand reality, you watch the documentary. CursorFlow is the documentary of web testing.
## ๐ฏ Pass-Through Architecture
CursorFlow doesn't limit you - it exposes the full power of Playwright:
**94+ Playwright actions available:**
```bash
# Any Playwright Page method works
cursorflow test --actions '[
{"hover": ".menu"},
{"dblclick": ".editable"},
{"press": "Enter"},
{"drag_and_drop": {"source": ".item", "target": ".zone"}},
{"check": "#checkbox"},
{"evaluate": "window.scrollTo(0, 500)"}
]'
```
**Full configuration pass-through:**
```json
{
"browser_config": {
"browser_launch_options": {"devtools": true, "channel": "chrome"}
},
"context_options": {
"color_scheme": "dark",
"geolocation": {"latitude": 40.7128, "longitude": -74.0060},
"timezone_id": "America/Los_Angeles"
}
}
```
**Forward-compatible:** New Playwright features work immediately without CursorFlow updates.
**See:** [Playwright API Documentation](https://playwright.dev/python/docs/api/class-page)
---
## ๐งน Artifact Management
CursorFlow generates valuable debugging data (screenshots, traces, sessions). Manage disk space:
```bash
# Clean old artifacts (>7 days)
cursorflow cleanup --artifacts --old-only
# Clean all artifacts
cursorflow cleanup --artifacts
# Clean saved sessions
cursorflow cleanup --sessions
# Clean everything
cursorflow cleanup --all
# Preview before deleting
cursorflow cleanup --all --dry-run
```
**See:** [Complete Usage Guide](docs/user/USAGE_GUIDE.md#artifact-management)
---
## ๐ Complete Page Intelligence
Every test captures everything needed for debugging:
### **๐ Comprehensive Data Collection**
- **DOM**: All elements with 7 selector strategies + event handlers
- **Network**: Requests, responses, and complete request/response bodies
- **Console**: All logs, errors, warnings - displayed prominently
- **JavaScript**: Global functions, variables, specific window objects
- **Storage**: localStorage, sessionStorage, cookies (sensitive data masked)
- **Forms**: All field values at capture time (passwords masked)
- **Performance**: Load times, memory usage, reliability indicators
- **Visual**: Screenshots with comprehensive page analysis
- **Sessions**: Save/restore authenticated browser state (requires auth_config)
### **๐ Hot Reload Intelligence**
- **Framework auto-detection** (Vite, Webpack, Next.js, Parcel, Laravel Mix)
- **Perfect timing** for CSS change detection
- **HMR event correlation** for understanding change impact
- **Persistent sessions** that survive code changes
### **๐ฏ Enhanced Screenshot Options**
```python
# Clip to specific components
{"screenshot": {"name": "header", "options": {"clip": {"selector": "#header"}}}}
# Hide sensitive information
{"screenshot": {"name": "profile", "options": {"mask": [".user-email", ".api-key"]}}}
# Full page with quality control
{"screenshot": {"name": "page", "options": {"full_page": True, "quality": 90}}}
```
### **๐ฑ Parallel Viewport Testing**
```python
# Test across multiple viewports simultaneously
await flow.test_responsive([
{"width": 375, "height": 667, "name": "mobile"},
{"width": 768, "height": 1024, "name": "tablet"},
{"width": 1440, "height": 900, "name": "desktop"}
], [
{"navigate": "/dashboard"},
{"screenshot": "responsive-test"}
])
```
### **๐ค AI-First Design**
All data structured for AI consumption:
- Consistent JSON format across all features
- **Multi-selector element identification** for robust automation
- **Accessibility-aware** element analysis
- Error correlation with **smart screenshot deduplication**
- Performance insights with **reliability metadata**
## ๐ Quick Start
### Step 1: Install CursorFlow Package
```bash
pip install cursorflow
playwright install chromium
```
### Step 2: Initialize Your Project (One-Time Setup)
```bash
cd /path/to/your/project
cursorflow install-rules
# Or skip prompts for automation/CI
cursorflow install-rules --yes
```
This creates:
- `.cursor/rules/` - Cursor AI integration rules
- `.cursorflow/config.json` - Project-specific configuration
- `.cursorflow/` - Artifacts and session storage
- `.gitignore` entries for CursorFlow artifacts
### Step 3: Start Testing
**Simple page capture:**
```bash
cursorflow test --base-url http://localhost:3000 --path /dashboard
```
**Interactive testing with inline actions:**
```bash
cursorflow test --base-url http://localhost:3000 \
--path /messages \
--wait-for ".message-item" \
--hover ".message-item:first-child" \
--click ".message-item:first-child" \
--screenshot "clicked" \
--show-console \
--open-trace
```
**Custom actions with JSON:**
```bash
cursorflow test --base-url http://localhost:3000 --actions '[
{"navigate": "/login"},
{"fill": {"selector": "#email", "value": "test@example.com"}},
{"click": "#login-btn"},
{"screenshot": {"name": "result", "options": {"mask": [".sensitive-data"]}}}
]'
```
## ๐ป Python API Examples
### **Complete Page Intelligence**
```python
from cursorflow import CursorFlow
async def capture_reality():
flow = CursorFlow("http://localhost:3000", {"source": "local", "paths": ["logs/app.log"]})
# Capture everything
results = await flow.execute_and_collect([
{"navigate": "/dashboard"},
{"screenshot": "complete-analysis"}
])
# Access comprehensive data
screenshot = results['artifacts']['screenshots'][0]
print(f"Real load time: {screenshot['performance_data']['page_load_time']}ms")
print(f"Actual memory usage: {screenshot['performance_data']['memory_usage_mb']}MB")
print(f"Elements found: {len(screenshot['dom_analysis']['elements'])}")
```
### **Enhanced Screenshot Options**
```python
# Component-focused testing
await flow.execute_and_collect([
{"navigate": "/components"},
{"screenshot": {
"name": "button-component",
"options": {"clip": {"selector": ".component-demo"}}
}}
])
# Privacy-aware testing
await flow.execute_and_collect([
{"navigate": "/admin"},
{"screenshot": {
"name": "admin-safe",
"options": {
"full_page": True,
"mask": [".api-key", ".user-data", ".sensitive-info"]
}
}}
])
```
### **Hot Reload Intelligence**
```python
# Perfect CSS iteration timing
async def hmr_workflow():
flow = CursorFlow("http://localhost:5173", {"headless": False})
# Auto-detect and monitor HMR
await flow.browser.start_hmr_monitoring()
# Baseline capture
await flow.execute_and_collect([{"screenshot": "baseline"}])
# Wait for real CSS changes with perfect timing
hmr_event = await flow.browser.wait_for_css_update()
print(f"๐ฅ {hmr_event['framework']} detected real change!")
# Capture immediately after actual change
await flow.execute_and_collect([{"screenshot": "updated"}])
```
### **Parallel Viewport Testing**
```python
# Test responsive design across multiple viewports
async def test_responsive_design():
flow = CursorFlow("http://localhost:3000", {"source": "local", "paths": ["logs/app.log"]})
# Define viewports
viewports = [
{"width": 375, "height": 667, "name": "mobile"},
{"width": 768, "height": 1024, "name": "tablet"},
{"width": 1440, "height": 900, "name": "desktop"}
]
# Test same actions across all viewports
results = await flow.test_responsive(viewports, [
{"navigate": "/dashboard"},
{"click": "#menu-toggle"},
{"screenshot": {"name": "navigation", "options": {"clip": {"selector": "#nav"}}}}
])
# Analyze responsive behavior
print(f"Tested {results['execution_summary']['successful_viewports']} viewports")
print(f"Fastest: {results['responsive_analysis']['performance_analysis']['fastest_viewport']}")
```
## ๐ง CLI Commands
### **Universal Testing**
```bash
# Simple page test with complete intelligence
cursorflow test --base-url http://localhost:3000 --path "/dashboard"
# Responsive testing across multiple viewports
cursorflow test --base-url http://localhost:3000 --path "/dashboard" --responsive
# Complex interaction testing
cursorflow test --base-url http://localhost:3000 --actions '[
{"navigate": "/form"},
{"fill": {"selector": "#name", "value": "Test User"}},
{"click": "#submit"},
{"screenshot": {"name": "result", "options": {"clip": {"selector": ".result-area"}}}}
]'
# Responsive testing with custom actions
cursorflow test --base-url http://localhost:3000 --responsive --actions '[
{"navigate": "/products"},
{"fill": {"selector": "#search", "value": "laptop"}},
{"screenshot": "search-results"}
]'
# Custom output location
cursorflow test --base-url http://localhost:3000 --path "/api" --output "api-test-results.json"
```
### **Design Comparison**
```bash
# Compare mockup to implementation
cursorflow compare-mockup https://mockup.com/design \
--base-url http://localhost:3000 \
--mockup-actions '[{"navigate": "/"}]' \
--implementation-actions '[{"navigate": "/dashboard"}]'
# CSS iteration with HMR intelligence
cursorflow iterate-mockup https://mockup.com/design \
--base-url http://localhost:5173 \
--css-improvements '[
{"name": "fix-spacing", "css": ".container { gap: 2rem; }"}
]'
```
### **AI Integration**
```bash
# Install Cursor AI rules
cursorflow install-rules
# Update to latest version and rules
cursorflow update
```
## ๐ง Why This Matters
### **For Job Board v4 Testing:**
โ
**Real API response times** from `/ajax_rq.smpl?fn=gjapi_typeahead`
โ
**Actual network failures** when they occur
โ
**Real browser console errors** from production code
โ
**Genuine performance metrics** under real load
โ **With mocking:** You'd never know the typeahead is slow in production!
### **For Any Web Application:**
- **Trust your test results** - they reflect actual behavior
- **Find real performance bottlenecks** - no artificial speed boosts
- **Discover actual edge cases** - no simulation gaps
- **Debug genuine issues** - real errors, real timing, real context
## ๐ Framework Support
**Universal Compatibility:**
- Works with **any web application** regardless of technology
- **Framework-agnostic** core operations
- **Smart adaptation** to different environments
**HMR Auto-Detection:**
- โ
**Vite** (port 5173)
- โ
**Webpack Dev Server** (port 3000)
- โ
**Next.js** (port 3000)
- โ
**Parcel** (port 1234)
- โ
**Laravel Mix** (port 3000)
## ๐ Documentation
- **[Complete User Manual](docs/USER_MANUAL.md)** - Full feature guide
- **[Examples](examples/)** - Practical usage examples
- **[API Reference](docs/api/)** - Complete Python API documentation
## ๐ช The CursorFlow Advantage
### **Other Tools Say:**
*"We let you mock and simulate"*
### **CursorFlow Says:**
*"We tell you the truth"*
**When you need to understand reality, choose the measurement tool - not the simulation tool.**
---
**Complete page intelligence โข Real behavior measurement โข AI-first design โข Pure observation**
Raw data
{
"_id": null,
"home_page": null,
"name": "cursorflow",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "ui-testing, automation, cursor, ai, web-testing, css-iteration, hot-reload, hmr, element-intelligence, page-analysis, error-context",
"author": null,
"author_email": "GeekWarrior Development <rbush@cooltheory.com>",
"download_url": "https://files.pythonhosted.org/packages/f7/1b/a423fd0fa6f1b9612fbc9cbc6e15b9ba42d0d8f592a9e3a563dfb71f4363/cursorflow-2.2.8.tar.gz",
"platform": null,
"description": "# CursorFlow\n\n**The measurement tool for web testing - we capture reality, not fiction**\n\nCursorFlow is a pure data collection engine that captures comprehensive web application intelligence. Unlike simulation tools that let you control reality, CursorFlow measures actual reality - giving you complete trust in your test results.\n\n## \ud83c\udfaf The CursorFlow Philosophy\n\n### **\ud83d\udcca We Collect Reality, Not Fiction**\n\n**Other tools are simulation tools** - they let you control reality:\n- Mock network responses\n- Simulate user interactions \n- Create test environments\n\n**CursorFlow is a measurement tool** - we capture reality as-is:\n- Real API response times\n- Actual network failures\n- Genuine browser behavior\n- Complete page intelligence\n\n### **\ud83d\udd2c Pure Observation Principle**\n\n**CursorFlow is like a scientific instrument:**\n- **Microscopes** don't create the cells they observe\n- **Telescopes** don't generate the stars they capture \n- **CursorFlow** doesn't mock the web it measures\n\nWhen CursorFlow reports `\"average_response_time\": 416.58ms`, you can tell stakeholders: **\"This is what actually happened\"** - not \"this is what happened in our test simulation.\"\n\n### **\ud83c\udf1f The Trust Factor**\n\n**Complete Reliability:** Every data point reflects real application behavior\n- No mocked responses hiding slow APIs\n- No simulated interactions missing real edge cases\n- No test environments different from production\n\n**Documentary vs Movie:** Both are valuable, but if you're trying to understand reality, you watch the documentary. CursorFlow is the documentary of web testing.\n\n## \ud83c\udfaf Pass-Through Architecture\n\nCursorFlow doesn't limit you - it exposes the full power of Playwright:\n\n**94+ Playwright actions available:**\n```bash\n# Any Playwright Page method works\ncursorflow test --actions '[\n {\"hover\": \".menu\"},\n {\"dblclick\": \".editable\"},\n {\"press\": \"Enter\"},\n {\"drag_and_drop\": {\"source\": \".item\", \"target\": \".zone\"}},\n {\"check\": \"#checkbox\"},\n {\"evaluate\": \"window.scrollTo(0, 500)\"}\n]'\n```\n\n**Full configuration pass-through:**\n```json\n{\n \"browser_config\": {\n \"browser_launch_options\": {\"devtools\": true, \"channel\": \"chrome\"}\n },\n \"context_options\": {\n \"color_scheme\": \"dark\",\n \"geolocation\": {\"latitude\": 40.7128, \"longitude\": -74.0060},\n \"timezone_id\": \"America/Los_Angeles\"\n }\n}\n```\n\n**Forward-compatible:** New Playwright features work immediately without CursorFlow updates.\n\n**See:** [Playwright API Documentation](https://playwright.dev/python/docs/api/class-page)\n\n---\n\n## \ud83e\uddf9 Artifact Management\n\nCursorFlow generates valuable debugging data (screenshots, traces, sessions). Manage disk space:\n\n```bash\n# Clean old artifacts (>7 days)\ncursorflow cleanup --artifacts --old-only\n\n# Clean all artifacts\ncursorflow cleanup --artifacts\n\n# Clean saved sessions\ncursorflow cleanup --sessions\n\n# Clean everything\ncursorflow cleanup --all\n\n# Preview before deleting\ncursorflow cleanup --all --dry-run\n```\n\n**See:** [Complete Usage Guide](docs/user/USAGE_GUIDE.md#artifact-management)\n\n---\n\n## \ud83d\ude80 Complete Page Intelligence\n\nEvery test captures everything needed for debugging:\n\n### **\ud83d\udcca Comprehensive Data Collection**\n- **DOM**: All elements with 7 selector strategies + event handlers\n- **Network**: Requests, responses, and complete request/response bodies \n- **Console**: All logs, errors, warnings - displayed prominently\n- **JavaScript**: Global functions, variables, specific window objects\n- **Storage**: localStorage, sessionStorage, cookies (sensitive data masked)\n- **Forms**: All field values at capture time (passwords masked)\n- **Performance**: Load times, memory usage, reliability indicators\n- **Visual**: Screenshots with comprehensive page analysis\n- **Sessions**: Save/restore authenticated browser state (requires auth_config)\n\n### **\ud83d\udd04 Hot Reload Intelligence**\n- **Framework auto-detection** (Vite, Webpack, Next.js, Parcel, Laravel Mix)\n- **Perfect timing** for CSS change detection\n- **HMR event correlation** for understanding change impact\n- **Persistent sessions** that survive code changes\n\n### **\ud83c\udfaf Enhanced Screenshot Options**\n```python\n# Clip to specific components\n{\"screenshot\": {\"name\": \"header\", \"options\": {\"clip\": {\"selector\": \"#header\"}}}}\n\n# Hide sensitive information\n{\"screenshot\": {\"name\": \"profile\", \"options\": {\"mask\": [\".user-email\", \".api-key\"]}}}\n\n# Full page with quality control\n{\"screenshot\": {\"name\": \"page\", \"options\": {\"full_page\": True, \"quality\": 90}}}\n```\n\n### **\ud83d\udcf1 Parallel Viewport Testing**\n```python\n# Test across multiple viewports simultaneously\nawait flow.test_responsive([\n {\"width\": 375, \"height\": 667, \"name\": \"mobile\"},\n {\"width\": 768, \"height\": 1024, \"name\": \"tablet\"},\n {\"width\": 1440, \"height\": 900, \"name\": \"desktop\"}\n], [\n {\"navigate\": \"/dashboard\"},\n {\"screenshot\": \"responsive-test\"}\n])\n```\n\n### **\ud83e\udd16 AI-First Design**\nAll data structured for AI consumption:\n- Consistent JSON format across all features\n- **Multi-selector element identification** for robust automation\n- **Accessibility-aware** element analysis \n- Error correlation with **smart screenshot deduplication**\n- Performance insights with **reliability metadata**\n\n## \ud83d\ude80 Quick Start\n\n### Step 1: Install CursorFlow Package\n```bash\npip install cursorflow\nplaywright install chromium\n```\n\n### Step 2: Initialize Your Project (One-Time Setup)\n```bash\ncd /path/to/your/project\ncursorflow install-rules\n\n# Or skip prompts for automation/CI\ncursorflow install-rules --yes\n```\n\nThis creates:\n- `.cursor/rules/` - Cursor AI integration rules\n- `.cursorflow/config.json` - Project-specific configuration\n- `.cursorflow/` - Artifacts and session storage\n- `.gitignore` entries for CursorFlow artifacts\n\n### Step 3: Start Testing\n\n**Simple page capture:**\n```bash\ncursorflow test --base-url http://localhost:3000 --path /dashboard\n```\n\n**Interactive testing with inline actions:**\n```bash\ncursorflow test --base-url http://localhost:3000 \\\n --path /messages \\\n --wait-for \".message-item\" \\\n --hover \".message-item:first-child\" \\\n --click \".message-item:first-child\" \\\n --screenshot \"clicked\" \\\n --show-console \\\n --open-trace\n```\n\n**Custom actions with JSON:**\n```bash\ncursorflow test --base-url http://localhost:3000 --actions '[\n {\"navigate\": \"/login\"},\n {\"fill\": {\"selector\": \"#email\", \"value\": \"test@example.com\"}},\n {\"click\": \"#login-btn\"},\n {\"screenshot\": {\"name\": \"result\", \"options\": {\"mask\": [\".sensitive-data\"]}}}\n]'\n```\n\n## \ud83d\udcbb Python API Examples\n\n### **Complete Page Intelligence**\n```python\nfrom cursorflow import CursorFlow\n\nasync def capture_reality():\n flow = CursorFlow(\"http://localhost:3000\", {\"source\": \"local\", \"paths\": [\"logs/app.log\"]})\n \n # Capture everything\n results = await flow.execute_and_collect([\n {\"navigate\": \"/dashboard\"},\n {\"screenshot\": \"complete-analysis\"}\n ])\n \n # Access comprehensive data\n screenshot = results['artifacts']['screenshots'][0]\n print(f\"Real load time: {screenshot['performance_data']['page_load_time']}ms\")\n print(f\"Actual memory usage: {screenshot['performance_data']['memory_usage_mb']}MB\")\n print(f\"Elements found: {len(screenshot['dom_analysis']['elements'])}\")\n```\n\n### **Enhanced Screenshot Options**\n```python\n# Component-focused testing\nawait flow.execute_and_collect([\n {\"navigate\": \"/components\"},\n {\"screenshot\": {\n \"name\": \"button-component\",\n \"options\": {\"clip\": {\"selector\": \".component-demo\"}}\n }}\n])\n\n# Privacy-aware testing\nawait flow.execute_and_collect([\n {\"navigate\": \"/admin\"},\n {\"screenshot\": {\n \"name\": \"admin-safe\",\n \"options\": {\n \"full_page\": True,\n \"mask\": [\".api-key\", \".user-data\", \".sensitive-info\"]\n }\n }}\n])\n```\n\n### **Hot Reload Intelligence**\n```python\n# Perfect CSS iteration timing\nasync def hmr_workflow():\n flow = CursorFlow(\"http://localhost:5173\", {\"headless\": False})\n \n # Auto-detect and monitor HMR\n await flow.browser.start_hmr_monitoring()\n \n # Baseline capture\n await flow.execute_and_collect([{\"screenshot\": \"baseline\"}])\n \n # Wait for real CSS changes with perfect timing\n hmr_event = await flow.browser.wait_for_css_update()\n print(f\"\ud83d\udd25 {hmr_event['framework']} detected real change!\")\n \n # Capture immediately after actual change\n await flow.execute_and_collect([{\"screenshot\": \"updated\"}])\n```\n\n### **Parallel Viewport Testing**\n```python\n# Test responsive design across multiple viewports\nasync def test_responsive_design():\n flow = CursorFlow(\"http://localhost:3000\", {\"source\": \"local\", \"paths\": [\"logs/app.log\"]})\n \n # Define viewports\n viewports = [\n {\"width\": 375, \"height\": 667, \"name\": \"mobile\"},\n {\"width\": 768, \"height\": 1024, \"name\": \"tablet\"},\n {\"width\": 1440, \"height\": 900, \"name\": \"desktop\"}\n ]\n \n # Test same actions across all viewports\n results = await flow.test_responsive(viewports, [\n {\"navigate\": \"/dashboard\"},\n {\"click\": \"#menu-toggle\"},\n {\"screenshot\": {\"name\": \"navigation\", \"options\": {\"clip\": {\"selector\": \"#nav\"}}}}\n ])\n \n # Analyze responsive behavior\n print(f\"Tested {results['execution_summary']['successful_viewports']} viewports\")\n print(f\"Fastest: {results['responsive_analysis']['performance_analysis']['fastest_viewport']}\")\n```\n\n## \ud83d\udd27 CLI Commands\n\n### **Universal Testing**\n```bash\n# Simple page test with complete intelligence\ncursorflow test --base-url http://localhost:3000 --path \"/dashboard\"\n\n# Responsive testing across multiple viewports\ncursorflow test --base-url http://localhost:3000 --path \"/dashboard\" --responsive\n\n# Complex interaction testing\ncursorflow test --base-url http://localhost:3000 --actions '[\n {\"navigate\": \"/form\"},\n {\"fill\": {\"selector\": \"#name\", \"value\": \"Test User\"}},\n {\"click\": \"#submit\"},\n {\"screenshot\": {\"name\": \"result\", \"options\": {\"clip\": {\"selector\": \".result-area\"}}}}\n]'\n\n# Responsive testing with custom actions\ncursorflow test --base-url http://localhost:3000 --responsive --actions '[\n {\"navigate\": \"/products\"},\n {\"fill\": {\"selector\": \"#search\", \"value\": \"laptop\"}},\n {\"screenshot\": \"search-results\"}\n]'\n\n# Custom output location\ncursorflow test --base-url http://localhost:3000 --path \"/api\" --output \"api-test-results.json\"\n```\n\n### **Design Comparison**\n```bash\n# Compare mockup to implementation\ncursorflow compare-mockup https://mockup.com/design \\\n --base-url http://localhost:3000 \\\n --mockup-actions '[{\"navigate\": \"/\"}]' \\\n --implementation-actions '[{\"navigate\": \"/dashboard\"}]'\n\n# CSS iteration with HMR intelligence\ncursorflow iterate-mockup https://mockup.com/design \\\n --base-url http://localhost:5173 \\\n --css-improvements '[\n {\"name\": \"fix-spacing\", \"css\": \".container { gap: 2rem; }\"}\n ]'\n```\n\n### **AI Integration**\n```bash\n# Install Cursor AI rules\ncursorflow install-rules\n\n# Update to latest version and rules\ncursorflow update\n```\n\n## \ud83e\udde0 Why This Matters\n\n### **For Job Board v4 Testing:**\n\u2705 **Real API response times** from `/ajax_rq.smpl?fn=gjapi_typeahead` \n\u2705 **Actual network failures** when they occur \n\u2705 **Real browser console errors** from production code \n\u2705 **Genuine performance metrics** under real load \n\n\u274c **With mocking:** You'd never know the typeahead is slow in production!\n\n### **For Any Web Application:**\n- **Trust your test results** - they reflect actual behavior\n- **Find real performance bottlenecks** - no artificial speed boosts\n- **Discover actual edge cases** - no simulation gaps\n- **Debug genuine issues** - real errors, real timing, real context\n\n## \ud83c\udf1f Framework Support\n\n**Universal Compatibility:**\n- Works with **any web application** regardless of technology\n- **Framework-agnostic** core operations \n- **Smart adaptation** to different environments\n\n**HMR Auto-Detection:**\n- \u2705 **Vite** (port 5173)\n- \u2705 **Webpack Dev Server** (port 3000) \n- \u2705 **Next.js** (port 3000)\n- \u2705 **Parcel** (port 1234)\n- \u2705 **Laravel Mix** (port 3000)\n\n## \ud83d\udcd6 Documentation\n\n- **[Complete User Manual](docs/USER_MANUAL.md)** - Full feature guide\n- **[Examples](examples/)** - Practical usage examples \n- **[API Reference](docs/api/)** - Complete Python API documentation\n\n## \ud83c\udfaa The CursorFlow Advantage\n\n### **Other Tools Say:**\n*\"We let you mock and simulate\"*\n\n### **CursorFlow Says:** \n*\"We tell you the truth\"*\n\n**When you need to understand reality, choose the measurement tool - not the simulation tool.**\n\n---\n\n**Complete page intelligence \u2022 Real behavior measurement \u2022 AI-first design \u2022 Pure observation**\n",
"bugtrack_url": null,
"license": null,
"summary": "\ud83d\udd25 Complete page intelligence for AI-driven development with Hot Reload Intelligence - captures DOM, network, console, performance, HMR events, and comprehensive page analysis",
"version": "2.2.8",
"project_urls": {
"Documentation": "https://cursorflow.readthedocs.io",
"Homepage": "https://github.com/haley-marketing-group/cursorflow",
"Repository": "https://github.com/haley-marketing-group/cursorflow"
},
"split_keywords": [
"ui-testing",
" automation",
" cursor",
" ai",
" web-testing",
" css-iteration",
" hot-reload",
" hmr",
" element-intelligence",
" page-analysis",
" error-context"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b257369742ab13f9a074d9011e64add09b9752c15fac87319e03cdac87481ed2",
"md5": "a6083b18d9a296abbe691115266c1192",
"sha256": "b35834444a678f3de6d19a07e3470eae3d2785583a8eee1a079978ceaeefe46a"
},
"downloads": -1,
"filename": "cursorflow-2.2.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a6083b18d9a296abbe691115266c1192",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 167248,
"upload_time": "2025-10-07T14:49:25",
"upload_time_iso_8601": "2025-10-07T14:49:25.171207Z",
"url": "https://files.pythonhosted.org/packages/b2/57/369742ab13f9a074d9011e64add09b9752c15fac87319e03cdac87481ed2/cursorflow-2.2.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f71ba423fd0fa6f1b9612fbc9cbc6e15b9ba42d0d8f592a9e3a563dfb71f4363",
"md5": "303e660103844285627d1f5c3dbcb101",
"sha256": "ac666b2e2ecbdd0881914575b236332ac33540a8217b46b36c78d0ae733d5db5"
},
"downloads": -1,
"filename": "cursorflow-2.2.8.tar.gz",
"has_sig": false,
"md5_digest": "303e660103844285627d1f5c3dbcb101",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 179306,
"upload_time": "2025-10-07T14:49:26",
"upload_time_iso_8601": "2025-10-07T14:49:26.293428Z",
"url": "https://files.pythonhosted.org/packages/f7/1b/a423fd0fa6f1b9612fbc9cbc6e15b9ba42d0d8f592a9e3a563dfb71f4363/cursorflow-2.2.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-07 14:49:26",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "haley-marketing-group",
"github_project": "cursorflow",
"github_not_found": true,
"lcname": "cursorflow"
}