Skip to main content

LLM-powered web automation library with autonomous agents

Project description

webtask

PyPI version Tests License: MIT Documentation

Easy to use LLM-powered web automation.

Installation

pip install pywebtask
playwright install chromium

Quick Start

from webtask import Webtask
from webtask.integrations.llm import Gemini
import os

wt = Webtask()

llm = Gemini(model="gemini-2.5-flash", api_key=os.getenv("GEMINI_API_KEY"))
agent = await wt.create_agent(llm=llm)

await agent.goto("https://practicesoftwaretesting.com/")

await agent.do("Add 2 Flat-Head Wood Screws to the cart")

verdict = await agent.verify("the cart contains 2 items")
if verdict:
    print("Success!")

Features

Simple or complex tasks - From single actions to multi-step workflows:

# Simple action
await agent.do("Click the login button")

# Complex multi-step task
await agent.do("Go to the product page, find the blue shirt, add it to cart, and proceed to checkout")

Stateful agents - Remember context across multiple tasks:

await agent.do("Go to https://practicesoftwaretesting.com/ and add 2 Flat-Head Wood Screws to the cart")
await agent.do("Add 5 Cross-head screws to the cart")
await agent.do("Go to the cart page and verify the items")

Verification - Simple boolean checks with natural language:

verdict = await agent.verify("the cart contains 7 items")
if verdict:
    print("Success!")

Structured output - Extract data with Pydantic schemas:

from pydantic import BaseModel

class ProductInfo(BaseModel):
    name: str
    price: float
    in_stock: bool

result = await agent.do("Extract product information", output_schema=ProductInfo)

print(f"{result.output.name}: ${result.output.price}")

Easy integration - Multiple ways to create agents:

# Create with new browser
agent = await wt.create_agent(llm=llm)

# Use existing browser
agent = await wt.create_agent_with_browser(llm=llm, browser=browser)

# Use existing context
agent = wt.create_agent_with_context(llm=llm, context=context)

# Use existing page
agent = wt.create_agent_with_page(llm=llm, page=page)

TODO

  • Unlimited context - Compact conversation history with LLM for extended sessions
  • Computer Use model integration - Pixel-based interaction with Claude Computer Use
  • Mind2Web benchmark - Evaluation on Mind2Web dataset

Links

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pywebtask-0.18.0.tar.gz (65.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pywebtask-0.18.0-py3-none-any.whl (96.8 kB view details)

Uploaded Python 3

File details

Details for the file pywebtask-0.18.0.tar.gz.

File metadata

  • Download URL: pywebtask-0.18.0.tar.gz
  • Upload date:
  • Size: 65.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pywebtask-0.18.0.tar.gz
Algorithm Hash digest
SHA256 6b4eea895f030f123769e0fe132c5a1499a50ff7e74263e8a1aa3c7f27c53259
MD5 3d2ccbefd32a1c065ae64e3718e02e9b
BLAKE2b-256 630f0c022a96aeef14faa535513aa44f3e1f9af5b9473cadb8f6ad9ad2f62894

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywebtask-0.18.0.tar.gz:

Publisher: publish.yml on steve-z-wang/webtask

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pywebtask-0.18.0-py3-none-any.whl.

File metadata

  • Download URL: pywebtask-0.18.0-py3-none-any.whl
  • Upload date:
  • Size: 96.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pywebtask-0.18.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1db364fff7f6694e03f7cbf77d5aeedb8b27bff68afa0dcdfe34ebacf20db59c
MD5 2f535e60ea61a6d45c4f0b949b5239e6
BLAKE2b-256 d8cac597c5fe9f36af2ecfe020c2b1eb321901776e02cd23be30be22b29f7534

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywebtask-0.18.0-py3-none-any.whl:

Publisher: publish.yml on steve-z-wang/webtask

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page