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.
2. LLM Link CLI Command Group (pirlo link)
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
C. Show Link Details
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.