Skip to content

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

Installation

go get github.com/plexusone/w3pilot@v0.6.0

Documentation