bw run.
Structure
A manifest is organized around states. Each state represents a distinct page or screen on the site.States
Each state has:Views
A view reads structured data from a page. When you call a view endpoint, the execution server navigates to the state’s URL, waits for the page to settle, and runs the view’s code against the live DOM.
Views are exposed as
GET endpoints:
Actions
An action performs an interaction on a page — clicking a button, filling a form field, or submitting data. Actions can accept typed inputs.
Actions are exposed as
POST endpoints:
How execution works
When you call an endpoint on the local server (bw run):
- The server looks up the manifest for the site slug
- Finds the target state and view/action
- Opens a new browser page
- Navigates to the state’s URL (expanding any RFC 6570 template variables with your inputs)
- Waits for the DOM to settle (using a MutationObserver-based debounce)
- Executes the view or action code
- Returns the result as JSON
--max-concurrent limit (default: 3).