Skip to main content

Pirlo ⚽

Pirlo (named after the legendary Italian midfielder Andrea Pirlo) is an agentic, self-healing browser automation runner built using clean architecture principles.

Like a soccer match, runs are executed on a Pitch following a pre-defined tactical routine called a Playbook. Credentials and model endpoints are managed as reusable passing routes called LLM Links.


1. Football Concept Dictionary

  • Pitch: The runtime environment executing the automation.
  • Play: An atomic tactical unit representing a single automation step (e.g. AutopassPlay).
  • LLM Link: A connection configuration representing an LLM model, credential, and base URL. Decoupled from playbooks, links allow credentials to be reused.
    • Playmaker: The active decision brain (Agent) navigating the page.
    • Analyst: The DOM summary and selector healer (Replay) analyzing the layout.

Configure and verify connection links directly via the command line.

A. List Connections

pirlo link list

Prints a formatted table of all registered links, their providers, models, and endpoints.

B. Create or Update a Connection

1. Interactive Setup Wizard

Running this command with no flags launches a dynamic step-by-step setup wizard:

pirlo link create

Prompts dynamically adjust based on the provider (e.g. standard API key/base URL or future custom keys).

2. Flag-based Creation (Automation / CI)

pirlo link create gemini-flash \
  --provider gemini \
  --model "gemini-1.5-flash" \
  --api-key "AIzaSy..." \
  --base-url "https://generativelanguage.googleapis.com/v1beta/openai/" \
  --test
pirlo link show <name>

Displays configuration details for a link. Sensitive attributes like api_key are masked automatically (e.g. AIzaSy*********).

D. Verify Connection

pirlo link test <name>

Instantiates the client and sends a minimal token prompt to verify credentials and connectivity immediately.

E. Delete Connection

pirlo link delete <name>

Removes a link configuration from the storage registry.


3. Running Autopass Playbooks

To execute a playbook, specify the playmaker link name.

Example Run:

pirlo autopass \
  --task "Navigate to booking.com, search for hotels in Munich, and filter by rating > 4" \
  --playmaker gemini-flash \
  --headless

Zero-Setup Fallback (Environment Mappings)

If you run without setting up any links, you can reference the standard provider names (e.g., gemini-default, dashscope-default). Pirlo will dynamically read standard environment variables (GEMINI_API_KEY, DASHSCOPE_API_KEY) and fallback to default endpoints out-of-the-box:

# Works without links.json configuration
export GEMINI_API_KEY="AIzaSy..."
pirlo autopass \
  --task "Search Google" \
  --playmaker gemini-default

Metadata

Release files for pirlo 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pirlo 0.1.1
File Size Uploaded Provenance Actions
pirlo-0.1.1.tar.gz 400.9 kB Without provenance Details for pirlo-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pirlo 0.1.1
File Interpreter ABI Platform Actions
pirlo-0.1.1-py3-none-any.whl Python 3 none any Details for pirlo-0.1.1-py3-none-any.whl

Total release size: 540.8 kB

Release files / pirlo-0.1.1.tar.gz

Download URL pirlo-0.1.1.tar.gz
Size 400.9 kB
Tags Source
SHA-256 checksum
How to use checksums
95383d48264e43eeca20337f1353cc399aedb42efa631c7818103a580f741136
BLAKE2b-256 checksum
How to use checksums
3f96890bf565f36e5035ff6ce6fd0eedf6d27e6bad4ec36908891928cae83695
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"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}

Release files / pirlo-0.1.1-py3-none-any.whl

Download URL pirlo-0.1.1-py3-none-any.whl
Size 140.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
93a1b85b82288e0703a9a4b76080c226d7ec853a46d06ae9b42db87a28a3e2c2
BLAKE2b-256 checksum
How to use checksums
4e5f9efaa4b8e1429e5611648d9bc5ce52789d80e940e3a297d27500e122fb8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"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}

Security for pirlo 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page