Skip to main content

Automate AI chat workflows through browser automation

Project description

PlayPi

Automate AI chat workflows through browser automation.

PlayPi provides simple, high-level functions for automating browser-based AI chat workflows, starting with Google Gemini Deep Research. The package delegates all browser lifecycle management to the playwrightauthor library, so Chrome for Testing installation and profile handling happen automatically.

Installation

pip install playpi

Or for development:

git clone https://github.com/twardoch/playpi
cd playpi
uv sync

Quick Start

Google Deep Research

import asyncio
from playpi import google_gemini_deep_research

async def main():
    # Perform deep research on a topic
    result = await google_gemini_deep_research(
        "Analyze the impact of quantum computing on cryptography",
        headless=True,  # Retained for compatibility; playwrightauthor runs headed
        timeout=600,    # 10 minute timeout
        verbose=True    # Enable detailed logging
    )

    print(result)  # Markdown-formatted research results

asyncio.run(main())

Command Line Interface

# Deep research helper (legacy command, prompt argument required)
playpi google "What are the latest developments in renewable energy?" --output research.md

# Standard Gemini prompt with optional file prompt + Deep Think toggle
playpi gemi --file_prompt prompt.md --prompt "Add a concise summary" --deep --output_file response.md

# Multi-job Deep Research via JSON piped on stdin
cat jobs.json | playpi gemi_dr

# Test browser session
playpi test

Headless flags are currently ignored because playwrightauthor always operates Chrome in headed mode.

Prerequisites

Authentication

Before using Google Deep Research, you need to:

  1. Login to Google: Open https://gemini.google.com in your browser and sign in
  2. Browser profiles: PlayPi relies on playwrightauthor-managed profiles, so you only need to login once in the selected profile

System Requirements

  • Python 3.12+
  • Chrome for Testing (downloaded automatically by playwrightauthor)
  • 2GB+ RAM for browser automation
  • Internet connection

Features

  • Google Gemini Deep Research - Automated research with source compilation
  • Session Management - Persistent authentication across multiple queries
  • Cross-Platform - Works on Windows, macOS, and Linux
  • Concurrent Processing - Run up to 3 research tasks simultaneously
  • Rich Output - Clean Markdown formatting with links and structure
  • Error Handling - Graceful handling of timeouts and UI changes

API Reference

google_gemini_deep_research(prompt, **options)

Perform Google Gemini Deep Research on a given prompt.

Parameters:

  • prompt (str): Research query or question
  • headless (bool): Retained for compatibility; playwrightauthor currently launches Chrome in headed mode (default: True)
  • timeout (int): Maximum wait time in seconds (default: 600)
  • verbose (bool): Enable detailed logging (default: False)
  • profile (str): Browser profile name managed by playwrightauthor (default: "default")

Returns:

  • str: Research results formatted as Markdown

Raises:

  • AuthenticationError: Not logged in to Google/Gemini
  • PlayPiTimeoutError: Research exceeded timeout limit
  • ProviderError: UI elements not found or changed

Development

Running Tests

# Run all tests without hitting live Gemini login
PLAYPI_FORCE_AUTH_FAILURE=1 uvx hatch run test:python -m pytest

# Run with coverage (same auth guard applies)
PLAYPI_FORCE_AUTH_FAILURE=1 uvx hatch run test:python -m pytest --cov=src/playpi --cov-report=html

# Run specific test categories
PLAYPI_FORCE_AUTH_FAILURE=1 uvx hatch run test:python -m pytest tests/test_session.py -v

PLAYPI_FORCE_AUTH_FAILURE=1 short-circuits the authentication check during testing so suites do not wait for manual Google sign-in.

Code Quality

# Format code
uv run ruff format

# Lint code
uv run ruff check

# Type checking
uv run mypy src/playpi

License

MIT License. See LICENSE for details.

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

playpi-1.0.10.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

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

playpi-1.0.10-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file playpi-1.0.10.tar.gz.

File metadata

  • Download URL: playpi-1.0.10.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.15

File hashes

Hashes for playpi-1.0.10.tar.gz
Algorithm Hash digest
SHA256 792e5089be7098ec558f678394b58af1a37c7a5e698a1560506a9a4fd5ebbf51
MD5 7669e9496bc86e28b893f1ced6a81c7f
BLAKE2b-256 f6823da6069fa7a2852b4e1c2e81c0ca23ec5fd7d66d2362c7c2c03c93fdb046

See more details on using hashes here.

File details

Details for the file playpi-1.0.10-py3-none-any.whl.

File metadata

  • Download URL: playpi-1.0.10-py3-none-any.whl
  • Upload date:
  • Size: 21.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.15

File hashes

Hashes for playpi-1.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 6cc438d9c1d2e774dfff0b81662618eb793ce97c4dbc89e4d8ee91674d05d159
MD5 54e2260b7d51a1e347e92c6c93a4399a
BLAKE2b-256 234a659f7132b6b47dd870df5e9082b825c7f50f57e167990380ab2a8c07b29a

See more details on using hashes here.

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