Release Notes - v0.6.0¶
AI Agent Ergonomics release with page inspection, selector validation, workflow recipes, and named state snapshots.
Highlights¶
Purpose-built features for AI agents.
This release adds features designed to help AI agents interact with web pages more effectively:
- Page Inspection - Discover interactive elements without prior knowledge
- Selector Validation - Verify selectors and get suggestions for alternatives
- Workflow Recipes - High-level operations for common tasks (login, table extraction)
- Named State Snapshots - Save and restore browser state across sessions
- JSON Output Mode - Machine-parseable output for all CLI commands
New Features¶
Page Inspection¶
Scan pages to discover interactive elements:
result, err := pilot.Inspect(ctx, nil)
// Discover all buttons
for _, btn := range result.Buttons {
fmt.Printf("Button: %s - %s\n", btn.Selector, btn.Text)
}
// Discover inputs
for _, input := range result.Inputs {
fmt.Printf("Input: %s (%s) - %s\n",
input.Selector, input.Type, input.Label)
}
MCP tool: page_inspect
CLI: w3pilot page inspect
Selector Validation¶
Validate selectors before use and get suggestions for alternatives:
results, err := pilot.ValidateSelectors(ctx, []string{
"#login-button",
"#nonexistent",
})
for _, v := range results {
if !v.Found && len(v.Suggestions) > 0 {
fmt.Printf("Try: %s\n", v.Suggestions[0])
}
}
MCP tool: test_validate_selectors
CLI: w3pilot test validate-selectors
Workflow Recipes¶
High-level operations for common tasks:
Login Workflow:
result, err := pilot.Login(ctx, &w3pilot.LoginOptions{
UsernameSelector: "#email",
PasswordSelector: "#password",
SubmitSelector: "button[type=submit]",
Username: "user@example.com",
Password: "secret123",
SuccessIndicator: "/dashboard",
})
MCP tool: workflow_login
Table Extraction:
table, err := pilot.ExtractTable(ctx, "table.data", nil)
for _, row := range table.RowsJSON {
fmt.Printf("Name: %s\n", row["Name"])
}
MCP tool: workflow_extract_table
Named State Snapshots¶
Save and restore browser state with named snapshots:
# Save current state
w3pilot state save my-session
# List saved states
w3pilot state list
# Load a saved state
w3pilot state load my-session
# Delete a state
w3pilot state delete my-session
MCP tools: state_save, state_load, state_list, state_delete
Storage location: ~/.w3pilot/states/{name}.json
JSON Output Mode¶
All data-returning CLI commands support --format json:
w3pilot page title --format json
# {"title":"Example Domain"}
w3pilot element text "h1" --format json
# {"selector":"h1","text":"Example Domain"}
w3pilot page inspect --format json
# Full structured JSON output
Enhanced Error Context¶
Error types now include page context and suggestions:
type ElementNotFoundError struct {
Selector string
PageContext *PageContext // URL, Title, VisibleText
Suggestions []string // Alternative selectors
}
New MCP Tools¶
| Tool | Description |
|---|---|
page_inspect |
Discover buttons, links, inputs, selects, headings, images |
test_validate_selectors |
Validate selectors and get suggestions |
workflow_login |
Automated login with credentials |
workflow_extract_table |
Extract HTML table to JSON |
state_save |
Save browser state to named snapshot |
state_load |
Load browser state from named snapshot |
state_list |
List all saved state snapshots |
state_delete |
Delete a saved state snapshot |
New CLI Commands¶
| Command | Description |
|---|---|
w3pilot page inspect |
Inspect page elements |
w3pilot test validate-selectors |
Validate CSS selectors |
w3pilot state save <name> |
Save browser state |
w3pilot state load <name> |
Load browser state |
w3pilot state list |
List saved states |
w3pilot state delete <name> |
Delete saved state |
New SDK Methods¶
| Method | Description |
|---|---|
Pilot.Inspect() |
Inspect page for interactive elements |
Pilot.ValidateSelectors() |
Validate multiple selectors |
Pilot.ValidateSelector() |
Validate single selector |
Pilot.Login() |
Automated login workflow |
Pilot.ExtractTable() |
Extract table data |