Workflow-Use
Semantic browser automation with deterministic workflow generation and variables.
Quick Start
1. Test Deterministic Workflow Generation (NEW!)
python examples/scripts/deterministic/run_complete_test.py
Generate workflows without LLM for step creation - 10-100x faster, guaranteed semantic steps.
2. Create Your Own Workflow
from workflow_use.healing.service import HealingService
from browser_use.llm import ChatBrowserUse
llm = ChatBrowserUse(model_name="bu-latest")
service = HealingService(llm=llm, use_deterministic_conversion=True)
workflow = await service.generate_workflow_from_prompt(
prompt="Go to GitHub, search for browser-use, get star count",
agent_llm=llm,
extraction_llm=llm
)
3. Run a Workflow
cd /path/to/workflow-use/workflows
python cli.py run-workflow-no-ai my_workflow.json
# If the workflow has variables, the CLI will prompt you interactively:
# Enter value for repo_name (required, type: string): browser-use
Key Features
๐ Deterministic Workflow Generation
- Direct Action Mapping:
input_textโinputstep (no LLM) - Guaranteed Semantic Steps: 0 agent steps (instant execution, $0/run)
- 10-100x Faster: 5-10s vs 20-40s for LLM-based
- 90% Cheaper: Minimal LLM usage
๐ฏ Semantic-Only Multi-Strategy Element Finding
- No CSS/XPath: 100% semantic strategies (text, role, ARIA, placeholder, etc.)
- 7 Fallback Strategies: text_exact โ role_text โ aria_label โ placeholder โ title โ alt_text โ text_fuzzy
- Works WITH Browser-Use: Finds element index in DOM state, then uses browser-use's controller
- Fast & Robust: Direct index lookup when strategies match, falls back to AI when needed
- Human-Readable: Workflow YAML contains semantic strategies, not brittle selectors
๐ Variables in Workflows
- Reusable Workflows: Parameterize dynamic values
- Semantic Targeting: Use
{variable}intarget_text - Auto-Extraction: LLM suggests variables automatically
๐ Real-time Progress Tracking (NEW!)
- Step-by-Step Visibility: See each browser action as it's recorded
- Status Updates: Track workflow processing phases in real-time
- Cloud Integration Ready: Store progress in database for live UI updates
- Debug Friendly: Know exactly where workflow generation fails
- Zero Overhead: Optional callbacks, fully backward compatible
# Track workflow generation progress in real-time
workflow = await service.generate_workflow_from_prompt(
prompt="Search for Python docs",
agent_llm=llm,
extraction_llm=llm,
on_step_recorded=lambda s: print(f"Step {s['step_number']}: {s['description']}"),
on_status_update=lambda msg: print(f"Status: {msg}"),
)
Documentation
- docs/DETERMINISTIC.md - Deterministic workflow generation
- docs/VARIABLES.md - Variables guide
- docs/PROGRESS_TRACKING.md - Real-time progress tracking โญ NEW
- QUICK_START_PROGRESS_TRACKING.md - 5-minute integration guide
- examples/README.md - Example scripts
Project Structure
workflows/
โโโ workflow_use/ # Main package
โ โโโ healing/ # Workflow generation & healing
โ โ โโโ deterministic_converter.py # NEW: Deterministic conversion
โ โ โโโ variable_extractor.py # Auto variable detection
โ โ โโโ service.py # Main workflow generation
โ โโโ workflow/ # Workflow execution
โ โ โโโ semantic_executor.py # Semantic step execution
โ โโโ controller/ # Workflow controller
โ โโโ recorder/ # Workflow recording
โ โโโ storage/ # Storage logic
โ โโโ mcp/ # MCP integration
โ โโโ schema/ # Schema definitions
โ โโโ builder/ # Workflow builder
โ
โโโ backend/ # FastAPI backend service
โ โโโ api.py # API entry point
โ โโโ routers.py # API routes
โ โโโ service.py # Business logic
โ
โโโ examples/ # Examples organized by feature
โ โโโ scripts/
โ โ โโโ deterministic/ # Deterministic workflow examples
โ โ โ โโโ run_complete_test.py # โญ Test deterministic generation
โ โ โ โโโ create_deterministic_workflow.py
โ โ โโโ variables/ # Variable feature examples
โ โ โโโ demos/ # Advanced demos
โ โ โโโ runner.py # Generic workflow runner
โ โโโ progress_tracking_example.py # โญ NEW: Real-time progress tracking
โ โโโ workflows/ # Example workflow JSON files
โ โโโ basic/ # Basic workflow examples
โ โโโ form_filling/ # Form filling examples
โ โโโ parameterized/ # Parameterized workflows
โ โโโ advanced/ # Advanced workflows
โ
โโโ tests/ # Test files
โ โโโ test_button_click.py
โ โโโ test_recorded_workflow.py
โ
โโโ docs/ # Documentation
โ โโโ DETERMINISTIC.md # Deterministic workflows
โ โโโ VARIABLES.md # Variables guide
โ
โโโ data/ # Runtime & test data
โ โโโ test_data/ # Test data (tracked in git)
โ โโโ form-filling/
โ โโโ flight-test/
โ
โโโ cli.py # CLI entry point
โโโ pyproject.toml # Project configuration
โโโ README.md # This file
Comparison: Deterministic vs LLM-Based
| Feature | Deterministic | LLM-Based |
|---|---|---|
| Generation Speed | โก 5-10s | ๐ 20-40s |
| Generation Cost | ๐ฐ $0.01-0.05 | ๐ธ $0.10-0.30 |
| Agent Steps | โ 0 guaranteed | โ Variable |
| Deterministic | โ Yes | โ No |
| Execution Speed | โก Instant | ๐ 5-45s |
| Execution Cost | ๐ฐ $0/run | ๐ธ $0.03-0.30/run |
Recommendation: Use deterministic for most workflows (search, click, input, navigate).
Testing
# Test deterministic generation
python examples/scripts/deterministic/run_complete_test.py
# Test variables
python examples/scripts/variables/create_workflow_with_variables.py
# Compare approaches
python examples/scripts/deterministic/test_deterministic_workflow.py
Next Steps
- โ
Run
examples/run_complete_test.py - โ Review the generated workflow JSON
- โ Try creating your own workflow
- โ Add variables to make it reusable
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
workflow_use-0.2.11.tar.gz
(156.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
workflow_use-0.2.11-py3-none-any.whl
(181.6 kB
view details)
File details
Details for the file workflow_use-0.2.11.tar.gz.
File metadata
- Download URL: workflow_use-0.2.11.tar.gz
- Upload date:
- Size: 156.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43d6f9647905768be21f0909395fd65c374bd65001425c13a956de7660f3c5e7
|
|
| MD5 |
9f6246b6ec06912a79dd0f80ac2b9728
|
|
| BLAKE2b-256 |
3fa56d677abe9955720087ab07a289a530b0cd03e5fd3e0a33bbd376ec419fd4
|
File details
Details for the file workflow_use-0.2.11-py3-none-any.whl.
File metadata
- Download URL: workflow_use-0.2.11-py3-none-any.whl
- Upload date:
- Size: 181.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e805310450ac3d340733c26830274296b1e5ee4d2c6c1b699569e85e49f652b
|
|
| MD5 |
ea450565f3b3d96b53966c742a3c5f1c
|
|
| BLAKE2b-256 |
59573b99f6811e9b23c273935eaf6a99ee90e172261ce494a511ac33c1209c13
|